Цифровая шкала с CAT интерфейсом на PIC16F876A

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

    Пришлось делать свою версию, благо уже были некоторые наработки в виде умершего проекта, в котором был код реализации частотомера на PIC микроконтроллере. Трудоёмкость написания прошивки получилась весьма внушительной - все новогодние праздники 2011 плюс еще 3 недели, сейчас уже всё установлено в транссивер.

    Документация и прошивка в приложениях к странице внизу, схемы и платы уже в окончательном виде.

    Актуальность плат не гарантирована.

Текущая версия 1.1.0

Сразу скажу:

1. Я делал шкалу для встраивания в TRCVR  "Дружба-М", как замену цифровой шкале "Макеевская", поэтому все логические уровни кнопок ON\OFF взяты от ЦШ "Макеевская", плата также делалась для встраивания как замена "Макеевской" и отверстия тоже. Единственно что не хочу менять, так это индикатор, у него такие большие и яркие цифирьки :) Я использую LED режим.

2. Я не делал частотомер, т.к. для него нужен другой период измерения и точность, а для цифровой шкалы она избыточна. Режим частотомера введен для удобства калибровки, что бы сделать ПЧ=0.

3. Если кому нужна схема LED индикатора от шкалы "Макеевская", то она есть в нете. Но по опыту скажу - лучше ищите разводку платы (может кто сфотает), создатель был наверное либо слишком мудрым либо в неадеквате, т.к. вывод идет не посимвольный, а по два символа и все сегменты просто перемешаны и логики нет (может программу подстроил под разводку).

4. Сам работаю с Logger32, поэтому все испытания делаю в нем, если проблемы с другими программами, пишите. Лучше сразу посмотреть протокол и сообщить проблемную команду, которая не обрабатывается по CAT.

5. Пока вы не подключили шкалу к компьютеру, то настроится и откалиброваться не получится, т.к все работает через UART (используется интерфейс USB-UART, схема прилагается).

Фотографии установки в TRX Дружба-М

Параметры и возможности

- Частотный диапазон измерения до 30мГц на входе 200-250 мв. Если надо больше, то если поставить буфер  после транзистора на ЛА3 с Тзр менее 10нс, то работает до 50 мГц и выше, при входном напряжении 100 - 150 мв. Дальше планирую сделать схему для версии до 50мГц;

- Период измерения 200мс, что позволяет получать точность измерения +/- 5Гц, но это последний разряд, а он прыгает, поэтому в режиме цировой шкалы делается округление значений;

- Точность программной калибровки периода измерения, один машинный такт, а он 4 * 0,05 мкс = 0,2мкс, что на 20мГц, дает возможность калиброваться с шагом 20Гц (меньше машинного такта в PIC нет периода, а если надо точнее, подстраивайте частоту кварца);

- Общение с компьютером происходит по протоколу CAT трансиверов KENWOOD. Поддерживаются команды IF; FA; TX;RX; Т.е. компьютер может получить информацию о частоте, режиме работы, а также включить трансивер в режим передачи и вернуть на прием (если будут подключены соотв. выводы интерфейса "USB to CAT");

- Реализована работа с двумя ПЧ (ПЧ1 для SSB и ПЧ2 для CW);

- Есть возможность прибавить ПЧ и вычесть ПЧ (в SSB режиме на LCD отображается либо USB или LSB);

- Все настройки и калибровки шкалы производятся по последовательному интерфейсу с компьютера через терминальную программу и нет необходимости вскрывать аппарат и подпаивать перемычки и кнопки;

- Шкала работает с двумя индикаторами: двухстрочный LCD 2х16 на контроллере HD4478 и/или LED матрица от цифровой шкалы Макеевская (возможна работа хоть с двумя индикаторами одновременно, глупость, но работает);

- На экран LCD отображается: режим работы USB,LSB,CW; режим ATT, Tx|Rx. А в момент загрузки можно вывести свой позывной, опция  :)

- Включение режима частотомера выведено на отдельный пин и опрашивается только после сброса или передёргивания питания. При этом ПЧ становится равной нулю, время измерения не меняется и составляет 200мс. Этот режим удобен при калибровке. В режиме частотомера отображение частоты (округление) на LCD - 5Hz на LED - 10 Hz

- Точность вывода данных в режиме шкалы: на LCD  - 10 Hz, на CAT интерфейс - 5 Гц, на индикатор LED - 80 Hz, по факту отображаются сотни Hz  (у Макеевского индикатора больше нет разрядности, но если кто поставит еще пару цифр, то вывести дополнительные разряды нет проблем. Пишите, сделаю еще один режим отображения).

- Шкала потребляет с LCD индикатором всего 12 мА без подсветки и 110 мА с подсветкой индикатора, версия с LED потребляет до 300мА в зависимости от количества светящихся сегментов.

- Планировалось сделать автоподстройку частоты, но поработав PSK в Logger32 пока не вижу смысла, стабильности частоты и так хватает. Выводы в запасе есть и если люди попросят сделать, постараюсь сделать.

Описание конструкции

    При отработке концепции конструкции было понятно что лучше двух ядерный вариант, одно ядро измеряет частоту, а второе отвечает за CAT, но несколько идей и современные микроконтроллеры со встроенными USART позволили сделать очень достойный вариант шкалы.

    Опрос кнопок в главном цикле не происходит, что бы уменьшить наводки и шум. Все кнопки подключены к порту B, на котором реализована обработка прерывания по портам PIN_B4 - PIN_B7, что позволило опрашивать кнопки буквально несколько раз при установке нового режима работы. Дребезг всё равно надо устранять, поэтому debounce в 30 циклов я вставил.

   Вывод показаний на LCD и LED на данный момент происходит только при изменении частоты на две единицы младшего разряда и если округленное значение изменилось выше заложенных границ, т.к. одна единица это погрешность измерения.  Переключатели  ATT, FA, Tx на данный момент ни чего не делают, а отвечают только за отображение на LCD (в общем чистый понт). Переключение ПЧ1/ПЧ2 изменяет отображение на LCD -> USB|LSB|CW

    Настройки всех параметров просходят через USART и хранятся в EPPROM, поэтому без подключения к компу настроить шкалу не получится. Сразу хочу предостеречь всех от использования терминала HyperTerm, который идет вместе с Windows, у меня на WinXP он не работал на передачу данных, я пользовался RealTerm с SourceForge.

 Вот как это начиналось

Схема

См. приложения - формат SPlan 6.0 Всё сделано весьма стандартно и ни чего нового. ЦАПЧ И S-Meter нарисованы как первичный вариант и еще не реализованы. Сделана только кнопка FA (Frequency adjust) и от нее отображение на экран. Что бы FA не отображалась, подключите вывод на землю.

Почему-то FT232RL отказалась программно правильно инвертировать сигналы Rx and Tx и пришлось их переворачивать аппаратно, но я еще за это поборюсь. Полностью проверенная и рабочая схема прилагается.

Если вы используете FT232RL, то драйвера и утилиты можно взять здесь http://www.ftdichip.com/Drivers/VCP.htm, после инсталяции драйверов и подключения платы сопряжения у вас появится новый виртуальный COM порт. Кстати.... если у вас расплодилось много лишних COM-USB или Bluetooth портов, то можно добавить переменную среды DevMgr_Show_NonPresent_Devices=1, и у вас появится возможность в диспетчере оборудования включить отображение неактивных устройств. Для это поставьте в меню пункт "Вид/Показать скрытые устройства".

Интерфейс прошивки

После подключения UART и включения шкалы вы увидите:

Выводится установленный позывной и значения констант:

IRF1 - Первая ПЧ

IRF2 - Вторая ПЧ

CALL - позывной

FQ ADJ - значение константы калибровки

USART MODE - скорость USART 

SHOW MODE - режим отображения результата

Если набрать #HELP, то можно увидеть список всех поддерживаемых команд:

#HELP 

#VR - version

# - echo enable

#I1XXX - set IRF1

#I2XXX - set IRF2   

#CSXXX - set CALL

#SMX - set show mode   

  0-COM ONLY FQ ON REQUEST, 1-LCD, 2-LED,

  3-LCD+LED, 4-COM ONLY FQ ALWAYS

#UBX - 0-9600, 1-19200, 2-38400   

#FC - frequency calibrate

#CR - constants read

#HE - HELP

HE  - HELP   

KENWOOD CMD - IF;FA;TX;RX;

Правила ввода команд:

1. Все команды вводятся ЗАГЛАВНЫМИ буквами;

2. После первого ввода символа "#" USART переходит в режим эхо ответа и вы будете видеть все вводимые команды, что нельзя сказать про обычный режим команд KENWOOD, в обычном режиме вы не увидите вводимые команды, а только ответ.

3. Выйти из режима эхо ответа можно только перезагрузив микроконтроллер (шкалу).

4. После программирования USART настроен на скорость 9600 бод 8N1.

5. Символ "X" обозначет цифру или букву.

6. Все команды KENWOOD не имеют префикса "#" , команды шкалы начинаются с символа "#"

7. Завершать ввод команды можно либо введя символ ";" либо нажав ENTER

8. Если команда непринята либо неправильная, то  будет возвращено ";?"

Примеры и описания команд:

#I18623000 - установить ПЧ1 8623000 Гц

#I28623800 - установить ПЧ2 8623800 Гц

#CSAE3409F25E0A8D67 - установить позывной для вывода на LCD, код 16 символов. Код предоставляется  совершенно бесплатно для всех бывших xUSSR, просто хочется знать статистику пользования. В общем пишите на почту.

#UB1 - установить скорость 19200 бод

#FC - вход в режим калибровки, после ввода команды вы увидите текст ->

#FC  

FREQUENCY CALIBRATE

+|- for SET   

*  for FA

ENTER for SAVE

Что означает... нажимайте "+" или "-"  и установите нужное значение частоты на индикаторе, а затем нажмите ENTER для сохранения константы калибровки. После каждого нажатия "+" или "-" вы будете получать значение  измеренной частоты в виде ответа для KENWOOD в виде команды FAXXXXXXXXXX, где  после FA будет выведена частота в герцах и занчение костант калибровки. На данный момент частота выводится в момент ввода константы, если после ввода константы хотите получить новое измеренное значение, то нажмите " * ".

Для калибровки надо естественно на вход подать эталонную частоту порядка 5-20 мГц и установить ПЧ1=0 либо делать калибровку в режиме частотомера.

#SM0 - установить режим вывода данных только на CAT интерфейс по запросам по протоколу KENWOOD (вывод на индикатор не происходит) Вывода на индикаторы не производтся, можно их не подключать.  DEFAULT

#SM1 - установить режим вывода данных на LCD индикатор и CAT (на CAT интерфейс шкала откликается всегда)

#SM2 - установить режим вывода данных только на LED индикатор и CAT 

#SM3 - установить режим вывода данных на LED индикатор и LCD одновременно и CAT

#SM4 - установить режим вывода данныхпо протоколу KENWOOD при любом изменении частоты, без ввода команды  и CAT команды по запросу.  Вывода на индикаторы не производтся, можно их не подключать.

Описание команд KENWOOD можно прочитать в описании к любому трансиверу, см приложение внизу для TS-2000.

Настройка

1. Сначала необходимо убедится в работоспособности переходника USB<->USART или подключиться к шкале через другое устройство сопряжения. Если используете переходник опубликованный на данном сайте, то при подключении к USB порту компьютера должны моргать светодиоды на плате и система должна опознать новое устройство, далее необходимо установить драйвера. После этого у вас появится новый виртуальный COM порт.

2. Попробуйте открыть новый COM порт любой терминальной программой в режиме 9600 8N1, если он открывается значит со стороны PC переходник работает.

3. Подключите основную плату ЦШ к переходнику USB<->USART. При включении шкалы или после сброса вы должны увидеть текст, см выше. Набирите слово HELP or #HELP, для того что бы увидеть список всех комманд.

4. Теперь вы можете проводить настройку:

    - Установите режим отображения в зависимости от используемого индикатора, выполнив команду #SM. Если у Вас нет LCD, то не включайте режим LCD, тк. придется перешивать контроллер, сброса типа индикатора нет, а контроллер будет ждать ответа от LCD и не дождется.

    - Проведите калибровку ЦШ подав эталонную частоту, и выполнив команду #FC.

    - Введите ПЧ1/ПЧ2 #I1 #I2.

5. Если Ваш переходник не будет работать на скорости 38400, то можно уменьшить резисторы  R7, R9. Для оптронов в данном режиме скорость 38400 предельная. Если вы увеличите скорость, а соединения с ЦШ не сможете установить, то сбросить скорость на 9600 опять можно только перепрошивкой контроллера (позже поправлю).

6. Если вы хотите обновить прошивку на новую  версию, то запишите все константы калибровки и ПЧ на листок, чтобы второй раз не калиброваться и не измерять частоты гетеродинов для ввода ПЧ. Затем вы их просто сможете ввести или установить.

7. Сам я настроил шкалу с точностью единиц герц по приему радиостанции РБМ в Москве, если кто захочет, то опишу. Но это я делал это в режиме цифровых видов связи, на водопаде.

Как это выглядит

LCD индикатор в режиме цифровой шкалы

LCD индикатор в режиме частотомера

Работают два индикатора одновременно

Внешний вид платы ver1.0.1

Плата интерфейса USB to USART

Фотографии установки в TRX Дружба-М

Лицензия

1. Для личного пользования всё БЕСПЛАТНО.

2. Для коммерческого использования обращайтесь к автору.

3. Ограничения: На версии с LCD при загрузке выводится мой позывной, если вы не зарегистрировались (регистрация бесплатна для бывших xUSSR). Других ограничений нет. Для всех пользователей с LED индикатором от ЦШ Макеевская ни каких рекламных роликов нет даже в текущей прошивке :))))

4. Копирование материалов сайта ЗАПРЕЩЕНО!!! Все последние прошики и схемы будут только на данном сайте, обновлять что-то еще и где-то, просто нет времени.

Известные баги и недоделки

1. Если подключать USB провод при включенном TRCVR, то в момент инициализации чипа FT232RL  на портах RTS and DTR начинают скакать сигналы и кратковременно включается режим Tx транссивера. Якобы инициализируется FT232RL и это её штатный режим работы, народ советует привыкнуть :( C версии 1.1.0  можно воспользоваться включением PTT через CAT, а не через RTS, DTR.

2. Надо сделать нормальное десятичное округление для вывода данных на LED, сейчас округление до 80Hz и отбрасываются последние два разряда , а надо 100Hz. Правда на CAT всё выводится верно, т.е. без округления и соответственно лог ведется правильно. И меня сейчас работает эта версия  и пока не напрягает.

3. Не реализованы ЦАПЧ и отображение значения S-Meter-а на LCD.

Ссылки

1. Осуждение конструкции на форуме CQHAM.RU

P.S.

На данный момент у меня всё работает и я очень доволен.