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

IG_58

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

Оценить эту запись
[QUOTE=IG_58;1893234][B]Техзадание:[/B]

- Дисплей будет цветной, графический, сенсорный, на базе чипа 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):

[video=youtube;QN0ueiFyrlM]https://www.youtube.com/watch?v=QN0ueiFyrlM[/video]

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

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

[ATTACH=CONFIG]372842[/ATTACH] [ATTACH=CONFIG]372843[/ATTACH]

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

[ATTACH=CONFIG]372844[/ATTACH] [ATTACH=CONFIG]372845[/ATTACH]

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

[ATTACH=CONFIG]372846[/ATTACH] [ATTACH=CONFIG]372847[/ATTACH]

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

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

[ATTACH=CONFIG]372849[/ATTACH] [ATTACH=CONFIG]372850[/ATTACH]
Это 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-контактный модуль.

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

[ATTACH=CONFIG]372853[/ATTACH]

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

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

Комментарии

  1. Аватар для Саша Ф
    Привет друг , интересный синтезатор , у меня есть esp32 и дисплей ili 9488 8 бит , есть MEGA можно ли применить ваш скетч ?
    Обновлено 27.06.2022 в 03:53 Саша Ф
  2. Аватар для IG_58
    Нет, ILI9488 и MEGA не подойдeт, нужны ESP32 и ILI9341.
  3. Аватар для Саша Ф
    Цитата Сообщение от IG_58
    Нет, ILI9488 и MEGA не подойдeт, нужны ESP32 и ILI9341.
    я уже получил esp32 можно ли соединить с ili9488