вторник, 3 января 2017 г.

Synthesizer on Mega 2560 + 3.2 TFT LCD + Si5351 V2


Предлагаемая  конструкция синтезатора   состоит из  модуля  Arduino Mega 2560,  TFT дисплея 3.2  дюйма  и микросхемы  Si5351. Расклад выходной частоты синтезатора классический  т. е  на диапазонах 1,8  3,6  7,0 и 10 МHz  выходная частота синтезатора равна частоте  на  шкале плюс  ПЧ,  на остальных диапазонах  минус  ПЧ.


К  особенностям  синтезатора  можно отнести   следующие:
- простота  сборки  благодаря применению готовых  модулей,  плату  самого синтезатора  не  сложно    изготовить  в домашних  условиях
- наличие  2-х  независимых  частот  на выходе синтезатора – VFO (гетеродин),  BFO_1 (опорный  генератор), 
-  много  кнопок   для более  удобного  управления синтезатором,  и гибкость  их размещения   благодаря тому что все   кнопки  подключены   к одной  шине  а  назначение кнопки определяется  резистором  включённым  последовательно  с кнопкой
- простота  программирования  (проще  не  придумаешь)
- встроенный  ГКЧ/ГСС


Среди  основных функций  синтезатора  можно выделить   следующие:
- возможность  калибровки  S-метра (каждый  кубик!)
- запоминание  значения частоты  и режимов работы на всех диапазонах при отключении питания
- SHIFT ± 500Гц   на приём  и программируемый  на передачу
- интеллектуальный  валкодер, с  возможностью   тонкой  настройки  под разные  энкодеры.
VFO A/B
CAT  система
-  встроенный вольтметр (мелочь  но приятно)


Ссылка на документацию Synthesizer on Mega 2560 V2 (в этой ссылке я буду выкладывать все новые версии и модификации)
31.12.16 добавлена версия 2.а



 
Назначение кнопок управления
BAND+   переключение  диапазона  вверх. 
BAND-    переключение  диапазона  вниз.
(при  переходе  на другой диапазон  запоминается частота, с которой уходим и состояние  режимов).
STEP      шаг перестройки  (AUTO – интеллектуальный валкодер, 10Гц,   50Гц, 100Гц, 1кГц ).
ATT   включение/выключение  аттенюатора.
PRE  включение/выключение  УВЧ.
 (Во время передачи   аттенюатор  и  УВЧ  отключаются)
VFO A/B / A=B короткое нажатие - переключение VFO, длинное нажатие  уравнивание частоты противоположного VFO  с  частотой текущего  VFO.
SPLIT  /  XFC   короткое нажатие - включение/выключение SPLIT,   длинное нажатие   переключение VFO  пока  держим  палец  на кнопке. В режиме TX  включается  калибровка   Shift на передачу, выставляется желаемое значение  ручкой «Shift»  и при повторном нажатии в режиме TX   выбранное значение сохраняется в памяти.
MODE  режим работы по кругу   LSB-USB-CW.
LOCK  блокировка валкодера.
RIT  включение/выключение растройки  ± 9.99 кГц.
TRIGER 1 - 6  данные кнопки предназначены для управления   всевозможными функциями, такими как:  VOX, Notch-filter, Tune, Compressor, etc   на своё усмотрение.  (т.е  нажали кнопку  TRIGER 1 появилось +5 В  на выходе TRIGER 1, нажали ещё раз  +5 В пропало)  Состояние  триггеров  не меняется при переходе на другой  диапазон и не сохраняется при выключении  питания.



Программирование
Запрограммировать  синтезатор  очень  легко,  для  этого  достаточно:
- установить  на компьютер драйвер   для  CH340G
- подсоединить   с  помощью  USB   кабеля  синтезатор
- запустить  программу  XLoader
- выбрать прошивку
- выбрать device - MEGA2560
- выбрать COM  порт  (нужный  COM  порт   можно  определить   зайдя в диспетчер устройств   Пуск - Панель управления - Оборудование и звук  -  Диспетчер устройств - Порты (COM и LPT) - USB-SERIAL CH340 (COM-4).  В моём случаи  это COM-4.)



- нажать  кнопку Upload  и немного подождать
 
- после программирования  выполнить  загрузку  начальных  настроек 


Прошивка только для  индивидуального  некоммерческого  использования!

Если у Вас Windows XP для запуска XLoader нужен Microsoft .NET Framework 4.0
 
P.S   В интернете  продаются  дисплеи  для  Arduino Mega 2560 с  зелёным и  жёлтым ярлыком. Они абсолютно  одинаковые  за  исключением   отображения  серого  цвета,  поэтому прилагается  две прошивки  Synthesizer_Mega_2560_v2a_green_label для дисплея   с  зелёным  ярлыком (у этого дисплея цвет более насыщенный!) и  Synthesizer_Mega_2560_v2a_yellow_label  для дисплея   с жёлтым  ярлыком. 
 

Загрузка начальных настроек 
При  первом включении синтезатора  необходимо загрузить   начальные  настройки,  для этого  необходимо при включении  синтезатора  нажать  и  удерживать  кнопку  ATT  до появлений  надписи «Default data has been loaded!». При этом загрузятся  следующие  значения: 


Freq_BFO = 8863000
Band_0 = 1900000
Freq_BFO_rev = 8866000
Band_1 = 3650000
Freq_BFO_CW = 8864000
Band_2 = 7050000
oscillator_freq = 27000000
Band_3 = 10150000
En_speed_1 = 48
Band_4 = 14150000
En_speed_2 = 96
Band_5 = 18000000
Step_int_1 = 100
Band_6 = 21150000
Step_int_2 = 1000
Band_7 = 24150000
CW_tone = 800
Band_8 = 28500000
shift_tx = 0



Шкала  S-метра  будет откалибрована  линейно, а полному отклонению  шкалы будет соответствовать уровень примерно  50 мВ. 

Установка значений констант синтезатора
Для  установки значений констант синтезатора необходимо при включении питания  нажать кнопку  BAND+   при этом на экране отобразиться  сервисное меню. Перемещение по меню также осуществляется кнопкой  BAND+, установка нужного значения осуществляется валкодером, при этом кнопкой STEP можно выбрать удобный шаг перестройки.  


Сервисное меню состоит из следующих пунктов:
Freq. BFO  частота нижнего ската фильтра.
Freq. BFO  rev. частота верхнего ската фильтра.
Freq. BFO CW  частота  середины  полосы пропускания телеграфного фильтра (частота   отдельного  телеграфного генератора  должна  равняться  этому значению).
CW tone  желаемый тон  приёма телеграфных посылок.
Freq. Si5351 crystal  калибровка частоты  кварца Si5351. Для калибровки необходимо подключить частотомер к выходу VFO out (CLK1)  и  ввести  измеренное значение  частоты.

Настройка интеллектуального валкодера
Speed1 скорость   вращения валкодера (импульсов в секунду) для перехода на шаг указанный в step напротив Speed1. Step шаг для скорости  Speed1.
Speed2 скорость   вращения валкодера (импульсов в секунду) для перехода на шаг указанный в step напротив Speed2. Step шаг для скорости  Speed2.
При скорости меньше, чем  Speed1 шаг равен 10Гц.
Так типовые значения  для валкодера из мышки (48 импульсов на оборот), будут выглядеть следующим образом:
Speed1= 48                              Step= 100 Hz
  Speed2= 96                              Step= 1000 Hz

Т.е, при скорости  меньше 1 оборота в секунду,  будет шаг 10 Гц,  при скорости  больше 1 оборота в секунду   будет шаг 100 Гц, при скорости  больше 2 оборотов в секунду   будет  шаг 1000 Гц.
Синтезатор  без проблем  работает с механическими  валкодерами  на 24 импульса.  При соответствующих настройках  интеллектуального валкодера механическим валкодером   на  24 импульса вполне удобно настраиваться (но валкодер из мышки будет  поинтересней )
В верхнем левом углу отображается значение АЦП кнопок для контроля  их работоспособности.

Калибровка S-meter
Для калибровки S-метра  в штатном режиме работы  на середине любого диапазона  необходимо нажать и удерживать  на протяжении  5 секунд кнопку «STEP» пока не  начнёт мигать первый кубик  S-метра  при этом на вход трансивера надо подать  сигнал с ГССа настроенного на частоту приёма, с уровнем, соответствующим  одному балу. Далее нажать на  кнопку «STEP» при этом уровень текущее значение сигнала запишется для первого кубика  S-метра  и начнёт мигать второй кубик  S-метра. Эта процедура  повторяется  для каждого кубика   S-метра, при достижении последнего кубика   калибровочные данные записываются в память.
В режиме калибровки S-метра  слева отображается   значение АЦП S-метра.
Для отмены калибровки  необходимо перезагрузить  синтезатор, отключив от него питание (запись в память производиться  при  достижении  последнего  кубика).
Максимальное  входное  напряжение  не должно превышать  ≈ 1.25  В !


Калибровка P-mete
Калибровка  P-метра  сводится  к установке  показания  100%  на  шкале  при  100% выходной мощности. При этом шкала отградуирована  по формуле P = U 2/ R, т. е  при напряжении  в два раза меньше максимального значения  отобразится  25%  мощности.

Функция SHIFT
В режиме  RX  данная функция включена постоянно, при ненадобности  надо просто установить ручку «SHIFT» посередине. В режиме TX  отображается значение, записанное для  SHIFT TX

Настройка CAT системы
В данном синтезаторе  также имеется  CAT система. Для соединения с компьютером используется  штатный USB разъем,  используемый для программирования,  поэтому нет никакой необходимости в  разного рода переходниках и конвертерах,  достаточно  лишь установить  драйвер для CH340G. В САТ системе  используется протокол Kenwood. Настройки  для  программы  N1MM Logger+  и  UR5EQF_Log    приведены  на рисунках ниже. С другими  программами  не тестировалось,  но  проблем  быть  не должно.
 








В CAT системе  реализованы следующие основные команды:
- чтение / запись   частоты текущего VFO
- чтение / запись:  режима  RX/TX, и  режима работы  (Mode)
 

ГКЧ/ГСС
Чтобы облегчить жизнь конструкторам с настройкой полосовых и кварцевых фильтров имеется функция  ГКЧ/ГСС . Если при включении нажать и удерживать кнопку BAND- то запустится программа ГКЧ/ГСС. Выход сигнала CLK2,  вход А1 (reserved 4),  перемещение по меню BAND- . Всё что нужно это собрать детекторную головку и подключить её на вход А1. При этом имеется возможность с помощью визира точно определить частоту и относительный уровень сигнала.
При входе в меню ГКЧ/ГСС сначала выставляется валкодером начальная частота качания (Start), затем нажимаем кнопку BAND- и выставляется конечная частота качания (End), затем ещё раз нажимаем BAND- (Go) и на выходе появится частота изменяющийся от значения (Start) до значения (End), при этом шаг перестройки будет зависть от ширины качания делённые на 240 (т.е шаг перестройки = (частота End - частота Start)/240). Поэтому желательно но не обязательно выбирать частоту качания кратной 240, например 240,480 Гц, 2.4, 4.8 кГц и т.д чтобы число (частота End - частота Start)/240) получалось целым.
В режиме качания при вращении валкодера перемещается визир (красная линия) при этом в верху отображается  частота  (Ruler) и  относительный уровень сигнала (Level) в месте где находится визир. Если ещё раз нажать кнопку BAND- то картинка АЧХ заморозиться и появится возможность установить частоту ГСС (Function generator). При последующем нажатии всё повторяется устанавливаем значение (Start) потом (End) и так далее по кругу. Удобный  шаг  перестройки  можно  выбрать  кнопкой  STEP.Частоту можно установить любую от 100 кГц до 42 МГц (ограничения связаны с капризами то ли сишки то ли программы)

Важно!   Исходник не для слабонервных программистов! 😉
Проекте  Synthesizer on Mega 2560  не исчерпал  всех своих возможностей так в контроллере  осталось  около 150 КБ свободной памяти, а  на печатной плате зарезервировано  4 порта  (которые могут использоваться как аналоговые)  +  можно  вывести  ещё  свободные  порты при необходимости. Наверняка кому ни будь,  захочется,  что то поменять,  дописать  и  т.д.  и поделиться  этим с другими,  я не против,  но есть  просьба  придерживаться    определенных  правил  при  публикации  своей  модификации:
- прилагать  список  изменений  в программе  и  при  изменении  принципиальной  схемы   прилагать  дополненную  схему  с  описанием  и  фото (если изменения касаются  графики) 
- при публикации  на  сторонних  ресурсах  прилагать  ссылку  на первоисточник  и дублировать  на первоисточнике
- во избежание  путаницы  с версиями  прошивки  добавлять  свой  никнейм   или  позывной  и  номер  своей  версии    как  показано на рисунке ниже. Соответствующая  (закомментированная) строчка  кода  находится  в подпрограмме  экрана  приветствия.

P.S  Это  мой  первый   серьёзный  опыт программирования,  данный проект  является  результатом  моего 3-х месячного знакомства   с  arduino,  поэтому  программа   не везде получилась  оптимальной   и  логичной, на это также повлияло и то что  изначально  не было заложено всех тех функций которые  есть  сейчас. В исходнике  я  постарался  оставить  как можно больше комментариев,   на сколько это было возможно  с  тем, чтобы  самому  не запутаться  и  другие могли разобраться,  но  если  вдруг будут вопросы  по исходнику  обращайтесь,  постараюсь  растолковать.
Исходник  не  для  коммерческого  использования!!!