Данный проект является неким продолжением проекта «Synthesizer on Mega 2560», но создавался практически с нуля исходя из опыта и хотелок предыдущего проекта. Синтезатор предназначен для КВ трансиверов с одним (или двумя в перспективе) преобразованиями, для сигнала гетеродина можно использовать как Si570, так и Si5351, для сигнала опорной частоты применяется вторая Si5351, также со второй сишки можно выводить сигнал фиксированной частоты второго опорного генератора. Основная цель данного проекта - прокачать простые самодельные трансиверы построенные по классической схеме !!!
В новом проекте была полностью переделана графика: увеличен шрифт значения основной частоты, а также для лучшей визуализации была добавлена «шкала диапазона» и индикатор модуляции.В качестве контролера был выбран ESP-32, а также по многочисленным просьбам был выбран побольше дисплей, управляемый по SPI шине, размеры которого можно найти: 3.2 3.5 и 4 дюйма, больше вроде не встречал.
Среди основных фишек нового проекта хотелось бы выделить следующие:
> Значения настроек синтезатора можно задать двумя способами:
- перед прошивкой в отдельном файле в исходнике, где можно задать свои значения и плюс некоторую конфигурацию железа (к каким пинам подключены энкодеры и т.д.)
- и второй, главный способ, уже после прошивки, через файл конфигурации, представляющий собой обычный текстовый файл, который после внесения требуемых значений можно легко загрузить или считать с помощью специальной программы. При этом для удобства настройки некоторые параметры такие как частоты ПЧ, опорного генератора, выходной ток Si5351 и т.д. дополнительно можно менять «на лету» через инженерное меню.
> Цвет каждого элемента на дисплее (шкала SWR, шкала S-метра, надписи с цифрами шкал, цифры основной частоты, надписи режимов и т.д.) можно легко изменять с помощью специально написанной для этих целей программы. Каждый сможет проявить немного творчества и настроить цветовую палитру дисплея под себя, при этом потом легко считать эту конфигурацию (в виде текстового файла) и поделиться с другими людьми на форуме, или самому с лёгкостью загрузить себе чью-то конфигурацию.
> Для подключения кнопок, вместо резистивного делителя применена микросхема PCF8574 управляемая шине I2C, что исключает любые глюки в работе кнопок даже если они плохого качества, а также значительно расширяет их максимальное количество (до 64 штук).
Для гибкости выбора требуемых кнопок и их расположения, назначение каждой кнопки и их количество определяется в файле конфигурации. Каждая кнопка генерирует число внутри программы, зависящее от номера кнопки и времени удерживания, например пятая кнопка по счёту сгенерирует число 50 при удерживании кнопки, 51 при кратковременном нажатии, 52 при удерживании более 1с, и число 53 при удерживании более 5с. То есть последняя цифра от 0 до 3 определяет тип нажатия 0-удержание кнопки, 1-краткое нажатие, 2-долгое нажатие (1с) 3-очень долгое нажатие, а первые одна или две цифры определяют порядковый номер кнопки, то есть 12 копка при кратком нажатии будет генерировать число 121. Файл конфигурации содержит набор функций таких, как например: Band+, Band-, RIT, ATT, Mode, SPLIT, Band 160m, Band 80m, режим SSB, режим CW и т.д. и для каждой такой функции, через файл конфигурации, можно легко задать число (генерируемое кнопками), при котором эта функция сработает. То есть можно легко назначить, например 7 кнопку для включения функции RIT (CF311– значение 71) при кратком нажатии и эту же кнопку для обнуления расстойки (CF340 – значение 72) при удерживании кнопки более 1с.
> Особый акцент был уделён устранению всяческих помех от работы синтезатора для чего был применён коммутатор I2C шины на чипе TCA9548A, кнопки опрашиваются постоянно и сидят на своей шине, чип для сигнала VFO на своей шине ну и чип сигнала BFO на своей, пока частота не меняется соответствующие шины отключены. Таким образом исключается пролаз помех между трактами, упрощается управления двумя Si5351, и освобождаться порты ESP32 которых не так-то уж и много.
Ссылка на документацию: https://cloud.mail.ru/public/LqKZ/fcm32BfhH (в этой ссылке я буду выкладывать все новые версии и модификации)
P.S При написании программы мой «скил» в программировании значительно прокачался благодаря ресурсу https://alexgyver.ru/lessons/,поэтому если кому-то близка тема программирования смело рекомендую дынный ресурс. Лично мне уже страшно смотреть свои исходники предыдущего проекта
//==================== ==================== ==================== ============//
Собственно, на данном этапе проект полностью рабочий, но рекомендую подождать до лета (пока я вернусь с рейса) поскольку однозначно будет меняться конфигурация железа, а именно вместо PCF8574 планируется применить MCP23008. Микросхема PCF8574 хорошо показала себя при работе с кнопками, но для управления реле оказалась не самой подходящей поскольку в момент подачи питания у неё на выходах управления логическая единица пока туда не запишешь ноль, то есть при включении трансивера в первый момент времени сработают все реле! Ну а поскольку MCP23008 тоже можно применить для кнопок, то планируется переписать код под неё, чтобы использовать один тип микросхемы везде. Также, для освобождения портов ESP32 (для подключения дополнительных энкодеров) для аналоговых сигналов S метра, SWR метра и т.д. рассматривается применение модуля ЦАП/АЦП, на базе PCF8591. Также, как выяснилось, применение модуля ESP32 на 38pin не имеет никакого смысла поскольку дополнительные пины — это либо дублируются выводы питания, либо выведены пины управления внутренней флэш памятью и их не рекомендуется использовать. Также есть мысль применить чистый модуль без USB обвязки + готовый USB модуль на CH340 за пределами платы синтезатора. Ну и конечно в процессе обсуждения думаю в конфигурации железа ещё что-то появиться новое.![]()