Строим цифровой DDC/DUC трансивер своими руками (часть 1)

Статья является продолжением цикла записей о создании цифрового DDC приёмника. Теперь поговорим о передающем тракте и сборке проекта во что-то более-менее автономное и законченное.

Первым делом был реализован ЦАП на DAC904E, конструкция пока не закончена — необходимо поменять трансформатор на ADT1-1WT, отладить и закрыть в экран. Схема и плата доступны тут.

Также, был реализован весь код передачи в FPGA, по сути это тот же процесс приёма, только перевёрнутый назад. Переключение происходит через блоки MUX по команде CPU.

Но тут же и ждало разочарование, на первую передачу ушло все 22к логических блоков, доступных мне FPGA. Фильтры получились с достаточно посредственной АЧХ, а о расширении функционала не могло быть и речи.

Поэтому было решено в очередной раз заменить управляющую плату, в этот раз с Arduino DUE на Cortex-M4 STM32 STM32F407VET6 (купил в китае тут).

Для работы с ним я использовал IDE Keil и STM32CubeMX (необходимо установить как минимум, чтобы посмотреть распиновку подключения между платами и собрать проект).

Суть модификации заключается в следующем:

  1. Это более мощный процессор, соответственно отзывчивость интерфейса на максимуме.
  2. Аппаратная работа с DSP, что позволяет вынести низкочастотную часть по фильтрации, преобразованиям Гилберта и прочим в CPU, освободив место в FPGA.
  3. Поддержка шины FSMC, что позволяет подключить 16ти битный параллельный LCD экран ILI9341, где можно очень быстро выводить всю нужную информацию, в том числе и FFT анализатор с водопадом.

На текущий момент реализовано взаимодействие между CPU и FPGA, и в STM32 поступает IQ аудио-поток дискретизацией в 48кГц, который используется для построения FFT и водопада. Но само преобразование и вывод аудио-сигнала пока лежит на плечах FPGA, это будет следующий этап разработки. Но уже сейчас работает передача, вывод TUNE сигнала, АРУ и прочие основные фишки полноценного трансивера.

Ссылка на файлы проекта.

Полезные статьи, используемые в проекте:

  1. http://k6jca.blogspot.com/2017/02/an-fpga-sdr-hf-transceiver-part-1.html
  2. http://k6jca.blogspot.com/2017/03/an-fpga-sdr-hf-transceiver-part-2-fpga.html
  3. http://www.ti.com/lit/ds/symlink/dac904.pdf
  4. https://www.cs.indiana.edu/~geobrown/book.pdf
  5. https://arachnoid.com/PLSDR/
  6. https://www.st.com/en/microcontrollers/stm32f407ve.html
  7. http://wiki.stm32duino.com/images/2/26/STM32F407VET6_pinoutDiagram.pdf
  8. http://wiki.stm32duino.com/images/5/5c/STM32_F4VE_SCHEMATIC.PDF
  9. https://cdn-shop.adafruit.com/datasheets/ILI9341.pdf
  10. http://narodstream.ru/stm-urok-37-displej-tft-240×320-8bit-chast-1/
  11. https://hubstub.ru/display/51-kak-poluchit-koordinaty-tochki-kasaniya-i-proizvesti-kalibrovku-rezistivnoy-sensornoy-paneli-na-primere-xpt2046.html
  12. http://eugenemcu.nichost.ru/articles/applications/265-stm32-fft

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *