Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
RSS лента

IG_58

Синтезатор на ESP32 и Si5351 c графическим дисплеем на ILI9341 и сенсорным экраном

Оценить эту запись
Цитата Сообщение от IG_58 Посмотреть сообщение
Техзадание:

- Дисплей будет цветной, графический, сенсорный, на базе чипа ILI9341, размер 3,2“, разрешающая способность 320х240 пикселей, шина SPI.
- Переключение диапазонов будет реализовано несколькими способами: тактильными кнопками, от сенсорного экрана, а также автоматически: при вращении ручки настройки за пределы диапазона вверх или вниз по частоте, должен автоматически включаться, соответственно, следующий или предыдущий диапазон.
- Частота настройки будет отображаться в цифровом виде. Кроме того, будет реализована динамическая графическая шкала с цифрами, рисками, с подвижным указателем настройки.
- Настройка частоты будет осуществляться оптическим энкодером, и/или перемещением указателя динамической шкалы в желаемую позицию, а также указанием желаемой частоты настройки на шкале методом тыка непосредственно в дисплей.
- Будет кнопка быстрой перестройки, задающая увеличенный шаг настройки при перемещении из конца в конец диапазона или между диапазонами.
- Будет кнопка, при нажатии на которую частота настройки автоматически округляется до целых килогерц.
- Будет реализован режим RIT, управляемый отдельным энкодером. Включение и выключение режима RIT – двойное, от тактильной кнопки и с помощью сенсорного ввода непосредственно на экране.
- S-метр будет отображаться в цифровом виде и в виде барграфа с логарифмической шкалой (как вариант - в виде стрелочного индикатора).
- Будет реализован VU-метр с цифровой индикацией и графической осциллограммой уровня принимаемого сигнала (как вариант - со стрелочным индикатором).
- На экране должны отображаться режимы работы: SSB/AM, Широкая / Узкая полоса ПЧ, Включение/Выключение аттенюатора, Включение / Выключение АРУ.
- Переключение режимов работы будет предусмотрено тактильными кнопками, а также с помощью сенсорного ввода непосредственно на экране.
- Частота настройки и диапазон будут запоминаться при выключении питания.
- Будут обеспечены блокировки, не позволяющие изменять рабочую частоту и переключать диапазоны в режиме передачи (по сигналу PTT). Режим передачи должен заметно отображаться на экране.
- Будет предусмотрен сервисный режим, в котором будут задаваться значения настройки по умолчанию, выбираться цветовая гамма отображения информации и т.п.
- На первом этапе развития системы для синтеза частоты будет применяться Si5351a. В дальнейшем будет обеспечена возможность подключения драйверов второго и/или третьего модуля Si5351, а также Si570, AD9850/AD9851.
- На следующем этапе развития системы при необходимости будет обеспечена возможность реализации CAT.
- Будет предусмотрено достаточное количество резервных сигналов ввода-вывода для дальнейшего расширения системы. Это будет реализовано с помощью расширителей интерфейса PCF8574.
- Будут предусмотрены выходы для управления реле ДПФ и реле переключения режимов работы. Это будет реализовано с помощью расширителей интерфейса PCF8574 и ключей ULN2003.
- В качестве среды разработки будет применяться Arduino IDE.
- Параметры системы (диапазоны, частота ПЧ, значения по умолчанию и т.п.) будут задаваться в отдельном файле конфигурации.
- Код системы будет открыт и подробно откомментирован специально для того, чтобы в нем можно было разобраться, изменить, дописать и т.п.

Видео синтезатора (см. описание на Youtube):



Лучше смотреть на полном экране.
Тактильные кнопки будут другие, с длинными осями - едут из Китая.
Реле ДПФ пока к плате ввода-вывода не подключены, их имитируют светодиоды.
Входной сигнал S-метра на видео имитируется.

Плата процессора (основная):

Вложение 372842 Вложение 372843

"Сэндвич" состоит из платы процессора и опциональной платы ввода-вывода:

Вложение 372844 Вложение 372845

Печатные платы процессора и ввода-вывода:

Вложение 372846 Вложение 372847

Cсылка на платы, файлы Sprint LayOut внизу.

Для достижения высокой динамики при отработке графики понадобились вычислительная мощность и значительный объём памяти. Первоначально планировалось использовать Arduino Nano, но очень быстро выяснилось, что у этого контроллера не хватает ни памяти, ни быстродействия, поэтому
был использован контроллер ESP-WROOM-32 от Espressif, мощность которого неизмеримо выше, чем у ATmega328.

Вложение 372849 Вложение 372850
Это 32-битный 2-ядерный контроллер на базе Tensilica Xtensa LX6, 520 Кб памяти SRAM и 448 Кб флеш-памяти, 4 Мб внешней флеш-памяти. Тактовая частота - до 240 МГц в зависимости от режима энергопотребления. Имеются встроенный температурный датчик, датчик Холла, инфракрасный контроллер на приём и на передачу, контроллер сенсорных кнопок, Bluetooth (BLE v4.2 BR/EDR), Wi-Fi (стандарты связи Wi-Fi 802.11 b/g/n (2,4 ГГц)). Вся эта красота для планируемого проекта (пока) не была востребована, была нужна только высокая вычислительная мощность, большой объём памяти и больше количество вводов-выводов. Всего этого вполне хватило, чтобы реализовать мои планы.

Паять под микроскопом SMD-детали у меня нет возможности, поэтому был использован готовый модуль на базе ESP32. Модуль представляет собой гибридную микросборку и имеет два ряда штырьковых разъёмов со стандартным расстоянием 2,54мм, что позволяет легко устанавливать его в плату синтезатора. На модуле, кроме собственно чипа ESP32, смонтирован коммуникационный интерфейс USB на базе CP1201, позволяющий комфортно загружать в контроллер программу и мониторить его состояние средствами Arduino IDE Serial Monitor, а также стабилизатор питания, необходимая обвязка и 2 тактильные кнопки - Reset и Boot.
На рынке существует великое множество исполнений такого модуля. Есть различные варианты - модуль поменьше с 30 контактами и модуль побольше, с 38 контактами. Не было никакого смысла выбирать минимальный вариант, поэтому использован 38-контактный модуль.

Вложение 372851 Вложение 372852
Дисплей питается от напряжения 3,3В, для чего на него устанавливается вот такая перемычка:

Вложение 372853

Номиналы простые:
Все резисторы, кроме LED - 2,2кОм.
Резистор в цепи питания LED дисплея - 390 Ом
Все конденсаторы, кроме электролитов - керамика 0,1мкФ
Все электролиты - от 100 до 470мкФ, не имеет значения.
Всё остальное подписано на платах.
Защитный стабилитрон на входе S-метра - 3,3В.
Резисторы в цепях светодиодов - индикаторов питания - на килоом-полтора, в зависимости от светодиодов.

Скетч распространяется бесплатно по запросам в личке.
Категории
Без категории

Комментарии

  1. Аватар для Саша Ф
    Привет друг , интересный синтезатор , у меня есть esp32 и дисплей ili 9488 8 бит , есть MEGA можно ли применить ваш скетч ?
    Обновлено 27.06.2022 в 03:53 Саша Ф