Трансивер Altair 32 DSP. Блог проекта

digital signal processing
Post Reply
UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Трансивер Altair 32 DSP. Блог проекта

Post by UR5FFR »

Проект является дальнейшим развитием проектов Altair DSP и Altair 107 DSP. Все Альтаиры имеют гибридный аналогово-цифровой тракт. Аналоговая часть имеет себя классическую супергетеродинную архитектуру ДПФ-СМЕСИТЕЛЬ-КФ-УПЧ-СМЕСИТЕЛЬ-УПЧ. С выхода аналоговой части снимается сигнал ультразвуковой ПЧ. Вся дальнейшая обработка такая как АРУ, фильтрация и шумопонижение, происходят в цифровой форме.

В первых проектах использовался специализированный сигнальный процессор ADAU1761. Когда я начинал над ними работать на али его можно было купить примерно по 1-2 USD за корпус. Но после начала дефицита на рынке цена на них подскочила до 6-7 USD, что за гранью разумного, особенно учитывая что примерно 30-40% того что продается на али - это брак или отбраковка, несмотря на заводскую упаковку в ленте. Кроме высокой цены, ADAU1761 имеет достаточно ограниченный объем памяти и не позволяет реализовывать сложные алгоритмы. Так же отсутствует модуль FFT.

Решение этих проблем напрашивается само собой - использование мощного микропроцессора на котором можно реализовать как функции ДСП, так и функции синтезатора частот для аналоговой части и общего управления трансивером. Обычно для этих целей выбирают STM32. В некоторых проектах используют двухядерные версии процессора. Но опять же процессоры STM нынче тоже в дефиците и оверпрайснутые. Поэтому было принято решение использовать ESP32 от Espressif.

Если заглянуть "под капот" ESP32 то мы кроме WiFi и bluetooth обнаружим там много интересного. В первую очередь меня интересовал сам процессор. И он там есть. Причем не один, а целых две штуки :) ESP32 содержит два абсолютно идентичных и равноправных ядра. Эффективно управлять ими можно с помощью FreeRTOS. Работают они на тактовой частоте в 240МГц и обеспечивают достаточно неплохую производительность. Из периферии есть все что надо - I2C, очень быстрый SPI и I2S для подключения аудиокодеков. Кроме этого есть еще множество всяких специфических акселлераторов и примочек связанных с крипто и сетью. Нам пока они не нужны.

В качестве фронэнда использован Super21.
super21_frontend_stage_2.jpg
super21_frontend_stage_2.jpg (88.96 KiB) Viewed 3310 times
Он может работать в режиме однократного и двойного преобразования частоты. Частоты ПЧ выбраны 9МГц и 45МГц.
Блок ПЧ особенностей не имеет. Применены промышленные КФ фирмы KVG на частоту 9МГц. Используется два фильтра - один SSB, второй - AM. Далее сигнал усиливается в УПЧ, переносится на ультразвуковую ПЧ и поступает на кодек WM8731. Так как сигнал уже предварительно отфильтрован и усилен то к кодеку не предъявляются какие-то запредельные требования. WM8731 выбран как дешевый и доступный кодек.

Вся дальнейшая обработка выполняется в ESP32. Кроме DSP процессор выполняет все обычные функции по управлению трансивером и синтезаторами, которых используется два - SI570 и SI5351. Отображается информация на 3.2" TFT ILI9341 с разрешением 320*240. Для управления используется 16ти кнопочная клавиатура, основной оптический валкодер для перестройки по частоте и два сервисных механических валкодера для управления громкостью, частотой среза ФНЧ, расстройкой и параметрами АРУ.

Чтобы было понимание насколько соответствует выбранный процессор по мощности - цифровая обработка потребляет примерно 16-18% ресурсов ОДНОГО ядра. То есть процессор почти "холодный".

Трансивер собран в "корзине" для макетирования.
altair 32 dsp draft.jpg
Пока еще далеко не все функции работают, но прием уже можно продемонстрировать. На видео обращу внимание на следующее:
- работа автоматического NOTCH фильтра для подавления тональников
- независимость показаний S-метра от включенных аттенюаторв и УВЧ
- работа адаптивной АРУ, регулировка динамического диапазона сигнала на выходе АРУ
- прием телеграфа, адаптивный peak-фильтр для выделения сигнала
- прием АМ
- четыре гетеродина с оперативным переключением между ними
- работа в режиме одинарного преобразования частоты "вниз" и двойного "вверх", "птичка" в левой части экрана - включен режим преобразования "вверх"



Плата синтезатора изначально разрабатывалась как достаточно универсальный модуль синтезатора+DSP с интегрированным кодеком и УНЧ. В перспективе его можно использовать с любым другим аналоговым фронтэндом с супергетеродинной архитектурой.

Далее в теме буду выкладывать информацию о прогрессе проекта.
UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Трансивер Altair 32 DSP. Блог проекта

Post by UR5FFR »

Прохода нет, но немного записал телеграфа. На видео демонстрируется работа водопада в полосе 3кгц и телеграфного фильтра. Полоса регулируется в пределах 50-500Гц с шагом 25Гц. Шаг будет вынесен в настройки и его можно будет ставить любым. Обычно коэффициенты фильтров рассчитывают заранее и прошивают в виде констант. Это ограничивает возможности по настройке DSP.

В Альтаире сделано по другому - сама прошивка умеет "на лету" рассчитывать коэффициенты для требуемых фильтров. Это позволяет настраивать не только частоту среза, но и тип/порядок фильтра. Например сейчас для телеграфа используется Гаусс, но ничто не запрещает выбрать Чебышева или Бесселя.

При узкой полосе телеграфа ару немного "пощелкивает". Пока не разбирался почему - позже вернусь к этому моменту

UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Трансивер Altair 32 DSP. Блог проекта

Post by UR5FFR »

Тест работы спектрального шумоподавителя

UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Трансивер Altair 32 DSP. Блог проекта

Post by UR5FFR »

Сделал декодер телеграфа. Работает, но нужно хорошее отношение сигнал-шум. Слабые сигналы не декодирует или декодирует с большим количеством ошибок.



UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Трансивер Altair 32 DSP. Блог проекта

Post by UR5FFR »

Прикрутил поддержку тачскина. Начал постепенно оформлять сервисные экраны. На видео - выбор диапазона и ввод частоты

UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Трансивер Altair 32 DSP. Блог проекта

Post by UR5FFR »

На али достаточно недорого продаются модули джойстиков. Такой модуль состоит из двух переменных резисторов, кнопки и механики, которая обеспечивает возврат указателя в центральное положение.
joystick.jpg
Давно думал сделать плейстейшин применить его в качестве устройства управления в синтезаторе, так как управлять кнопками или валкодером не всегда удобно.

Решено было делать самый простой вариант, когда джойстик работает как 4 кнопки направления и одна кнопка нажатия/подтверждения. Направления отвечают за следующийе функции: влево/вправо - переход фокуса на предыдущий/следующий элемент в текущем окне, вверх/вниз - скролинг или изменение значения текущего элемента. Конечно можно использовать кнопки клавиатуры, но джойстик в управлении мягче и тактильнее.

Post Reply