Gowin FPGA превратили в радиомодем для AD9363 с открытой платой
У AD9363 между антенной и цифровой шиной уже спрятаны синтезаторы, квадратурные смесители, фильтры и 12-битные АЦП/ЦАП. Самое трудное начинается после чипа: поток I/Q надо успеть принять, восстановить в нём символы, собрать кадр, провести его через сеть и при этом не превратить разработку в закрытый IP-блок. GoWinSDR берёт на себя именно эту неудобную часть работы.
В опубликованной архитектуре RF-трансивер AD9363 или AD9361 соединён с FPGA GW5AT-LV60 параллельным CMOS-интерфейсом. На приёме выборки захватываются IDDR-регистрами, на передаче выдаются через ODDR. STM32 конфигурирует AD936x по SPI и предоставляет командную строку по UART. Gigabit Ethernet подключён уже к FPGA: в исходниках есть RGMII, UDP, IP, ARP и CRC, то есть сетевой выход реализован как часть железного тракта, а не через отдельный Linux-компьютер.
Самая интересная часть лежит глубже сетевой обвязки. Автор выложил Verilog для DQPSK/QPSK, DDS, петли Костаса, восстановления тактовой частоты Gardner, Farrow-интерполятора и FIR-фильтров. Такой набор превращает плату из очередного адаптера к AD936x в учебно-практический радиомодем: можно проследить путь сигнала от параллельных отсчётов до синхронизации несущей и пакета в Ethernet, затем менять отдельный узел без доступа к проприетарному FPGA-ядру.
В авторском логе радиочип настроен на RX и TX sample rate 61.44 MSPS и LO 2.4 GHz. Эти числа подтверждают, что проект запускался в допустимом для AD936x режиме цифрового CMOS-интерфейса. Они не доказывают 61.44 MHz полезной полосы в эфире. Для AD9363 документация Analog Devices ограничивает программируемую полосу канала 20 MHz; AD9361 допускает до 56 MHz. Частота DATA_CLK, частота дискретизации и занятая спектральная полоса здесь требуют раздельного разговора.
Автор сообщает о связи между двумя устройствами до 4 Mbps, однако для этой цифры нет методики с BER или PER, EVM, мощностью передатчика, антеннами и условиями канала. В README от 10 марта 2026 года также отмечены незакрытые работы: ARP требовал ручной настройки, QPSK содержал ошибки, петля Gardner теряла синхронизацию на высокой скорости. Логический анализатор в одном из опубликованных тестов снят при временном переходе на BPSK во время отладки QPSK.
Именно эта незавершённость делает GoWinSDR полезным материалом для инженера. Здесь доступны не только красивые заявления о SDR, но и точки, в которых система ломается: интерфейсная тайминговая дисциплина на десятках мегасемплов в секунду, захват символьной синхронизации, сетевой ARP и граница между конфигурационным MCU и FPGA, которая действительно несёт радиосвязь. В GitHub опубликованы HDL, прошивка STM32, Gerber и проекты JLCEDA для отладочной платы AD9363 и полной PCB. Юридическая открытость всего набора требует отдельной проверки: на OSHWHub указана GPL-3.0, отдельного LICENSE-файла в репозитории не видно.
Источники: первичный репозиторий и файлы проекта — https://github.com/ConstStrings/GoWinSDR ; README ветки v1 с архитектурой, логом настройки и статусом отладки — https://raw.githubusercontent.com/ConstStrings/GoWinSDR/v1/README.MD ; аппаратные файлы — https://github.com/ConstStrings/GoWinSDR/tree/v1/Hardware ; документация AD9363 — https://www.analog.com/media/en/technical-documentation/data-sheets/AD9363.pdf ; документация AD9361 — https://www.analog.com/media/en/technical-documentation/data-sheets/ad9361.pdf .