Содержание

Альтернативная прошивка для контроллера поворотного устройства R851

Проект активно разрабатывается. На данном этапе реализовано примерно 65% запланированного. Как только прошивка будет готова - все исходные коды будут опубликованы.

Контроллер этого поворотного устройства встречается и под другими именами, но, к сожалению, всех их я не знаю.

Об оригинальной прошивке

В процессе эксплуатации был обнаружен ряд недостатков. Основными являются следующие:

  1. Односторонняя связь с компьютером при полной аппаратной поддержке двухсторонней связи.
  2. Невозможно выбрать запрещенную зону и указать её размер (overlap).

Менее важные:

  1. Нет индикации, в какую сторону можно вращать антенну (с какой стороны вошли в overlap зону).
  2. При отсутствии импульсов с датчика обратной связи продолжает подавать питание на двигатель (возможно возгорание).

Особенности альтернативной прошивки

Кроме исправления недочетов оригинальной прошивки были реализованы дополнительные возможности.

  1. Добавлен конфигуратор.
  2. Прошивка поддерживает элевацию. Может быть включена в конфигураторе.
  3. Классический пользовательский интерфейс сохранен. Может быть включен в конфигураторе.
  4. Альтернативные пользовательские интерфейсы. Для включенной элевации компактный, при управлении только азимутом используется большой шрифт для отображения текущего положения антенны.
  5. Обработка дополнительных команд протокола Yeasu GS-232 (за исключением калибровки и команд автоматического движения по заданным точкам).
  6. Интеллектуальный энкодер (увеличивает шаг при быстром вращении).
  7. Парковка. Положение по обеим осям можно указать в конфигураторе.
  8. Равномерное расходование ресурса EEPROM.

Данный список может быть расширен. Пишите Ваши предложения на почту walhi@walhi.ru.

Настройка устройства

В контроллер добавлен ряд пользовательских настроек. Для входа в режим настройки нужно отключить устройство, зажать кнопки экнкодеров азимута и элевации (или кнопку mode для варианта без энкодера элевации). Далее на экране будут последовательно отображаться параметры, значение которых можно изменять энкодером азимута. Для подтверждения используется кнопка энкодера элевации (или кнопка mode для варианта без энкодера элевации).

Список настроек:

Интерфейс пользователя

Классический интерфейс

Классический интерфейс с оригинальной прошивки сохранен. Так как у меня есть только фотографии контроллера поворотного устройства с поддержкой управления элевацией, то возможны некоторые отклонения от оригинала.

Обновленный интерфейс

Обновленный интерфейс отображает информацию в более удобном виде и поддерживает сообщения об ошибках. Список ошибок следующий:

Замена родной прошивки

Экземпляр контроллера поворотного устройства, используемого на коллективной радиостанции RK3MXT, реализован на микроконтроллере AT89S52. Однако, судя по размеру считанной прошивки и схеме устройства, взятой с сайта RT3F, встречаются варианты, построенные на AT89C51. Эти микроконтроллеры полностью совместимы друг с другом, хоть и имеют отличия.

В данный момент прошивка не помещается в AT89C51, однако это планируется исправить.

Бонус

Так как во время разработки требуется часто прошивать микроконтроллер и при этом частично блокировать работу коллективной радиостанции, разработка начиналась на совершенно другом аппаратном обеспечении. Использовалась отладочная плата Pinboard II с микроконтроллером ATMega16. Несмотря на то, что у чипов AT89S52 и ATMega16 один производитель, архитектура у них разная и используются разные компиляторы. Но это не проблема и код написан так, чтобы собирался под оба этих чипа одновременно. Все части кода, взаимодействующие с железом, вынесены в отдельные файлы. Теоретически можно портировать прошивку и под что-нибудь другое, вроде PIC или же MSP430.