Найти в Дзене
Меандр Радиолюбитель

Синтезатор частоты для трансивера с ретро-шкалой. Большой дисплей.

Всем доброго! Вот решил отметиться, за одно и дать понять, почему меня так долго не было. За основу проекта взята разработка японского радиолюбителя JF3HZB. Вот ссылки на его проект на GitHub и на сайт. В скачанном репозитории с Гитхаба находится несколько версий синтезатора. Меня заинтересовала версия с имитацией цифровой шкалы на электронных лампах, отображающих цифры нитями накала. Не знаю, как они правильно называются у нас, и тем более не знаком с их японскими аналогами. Вынужден признаться в причине моего внезапного «умения» программировать — каюсь, я пользуюсь нейросетями. Оказывается, если правильно поставить задачу, то бесплатные нейронные сети хоть и не с первого раза, но всё же справляются. Да, иногда приходится очень подробно, на много букафф, объяснять, что нужно, порой по 20–30 раз переписывать весь код или отдельные функции, но в конечном итоге (иногда на третьи сутки, и это не сарказм) получить желаемый результат! Этот код из первоначальных 292 строк распух до 2136

Всем доброго! Вот решил отметиться, за одно и дать понять, почему меня так долго не было.

За основу проекта взята разработка японского радиолюбителя JF3HZB. Вот ссылки на его проект на GitHub и на сайт.

В скачанном репозитории с Гитхаба находится несколько версий синтезатора. Меня заинтересовала версия с имитацией цифровой шкалы на электронных лампах, отображающих цифры нитями накала. Не знаю, как они правильно называются у нас, и тем более не знаком с их японскими аналогами.

Вынужден признаться в причине моего внезапного «умения» программировать — каюсь, я пользуюсь нейросетями.

Оказывается, если правильно поставить задачу, то бесплатные нейронные сети хоть и не с первого раза, но всё же справляются. Да, иногда приходится очень подробно, на много букафф, объяснять, что нужно, порой по 20–30 раз переписывать весь код или отдельные функции, но в конечном итоге (иногда на третьи сутки, и это не сарказм) получить желаемый результат!

Этот код из первоначальных 292 строк распух до 2136 строк только в основном файле, плюс пришлось переписывать несколько дополнительных файлов и файл дисплея!

Зато результат превзошёл все ожидания! И неважно, что я потратил на это неделю бессонных ночей — если бы это писал человек, потребовались бы месяцы! Важно, что проект получился действительно мощным и продуманным до мелочей. Все мои идеи, (почти), которые можно реализовать на данном железе, нейросеть воплотила в жизнь.

Данный синтезатор отличается от предыдущих версий полностью переработанным алгоритмом управления чипом синтезатора. Раньше он выдавал сигнал ГПД на «грязный» выход (CLK2), а опорную частоту, которую легко очистить от гармоник и спуров, — на «чистый» (CLK0).

Ощутимо увеличился дисплей — с 1,8 до 3,2 дюймов. Теперь это по выбору либо ILI9341_240x320, либо ST7789_240x320. Тестируется с ILI9341_240x320, второй еще где-то в пути между Китаем и Россией.

Добавлена микросхема внешней памяти, в которую сохраняются все текущие параметры. По самым пессимистичным подсчётам, её ресурса хватит в 100500 раз дольше срока службы самого устройства — примерно на 183 года!

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

В синтезатор добавлен S-метр. Реализованы принудительное сохранение текущего состояния в память, а также очистка памяти.

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

Все текущие параметры, которые меняются в процессе эксплуатации, хранятся (если она есть в схеме и включена в настройках) во внешней памяти и загружаются при включении. Либо в ОЗУ, если внешняя память отсутствует. Во втором случае все изменения текущей сессии сохраняются в ОЗУ и при выключении стираются. При включении загружаются заранее прописанные параметры. Встроенная память используется только для статических параметров, которые меняются редко и практически не влияют на износ встроенной EEPROM.

Синтезатор автоматически переключает диапазонные полосовые фильтры, так же как и в прошлой версии, описанной здесь.

Схему для данного устройства я ещё не нарисовал — она будет в финальной статье. Для наглядности прогресса привожу изображение печатной платы — вернее, двух плат. Эта версия предварительно двухплатная: на основной плате только контроллер и внешняя память, на второй — синтезатор частоты и коммутатор диапазонных фильтров.

-2

Коммутатор рассчитан на диодный переключатель фильтров. Для управления релейным переключателем его, естественно, придётся дополнить ключами для коммутации обмоток реле.

К основной плате подключается шлейфом дисплей и отдельными проводами кнопки и энкодер.

Проект ещё на стадии отладки и тестирования, но финал уже близок!

Спасибо за внимание и до встречи в финальной версии!
Всем спасибо! Всех люблю!
!73!