В этот раз я решил пострить плату цифрового радиоьракта с прицелом на использование в трансиверах на базе известного проекта M0NKA - UHDSDR, OVI-40, Sparrow и других клонов.
Размер платы 65 х 27мм , питания 5 Вольт с током около 120 мА. Плата 4-х слойная, использована ПЛИС 10CL010 Cyclone 10.
Описание
Для приема и формирования радиосигналов используется соответственно АЦП 14 бит AD9649 и ЦАП AD9707, которые работают с частотой семплирования 80 МГц (или около того). Это самые низкопотребляющие чипы в своем классе.
На плате отсутствуют какие-либо усилители радиосигнала. Вход / выход АЦП / ЦАП приводятся к сопротивлению накрузки 50 Ом с помощью трансформаторов 1:4 , сигналы фильтруются с помощью ФНЧ с частотой среза 30 МГц.
Задающий тактовый генератор в данной конструкции используется хорошо зарекомендовавший себя программируемый генератор 5P49V5923B, который тактируется от обычного 10 МГц генератора и может выдавать 80 МГц или 76.8 МГц тактовую частоту. Благодаря этому, плата модуля может формировать выходные семплы кратные 48 или 50 кГц.
Схемотехника продумана так, что плата может выступать в роли ведущего, выдавая нужные частоты на процессор ЦОС, так и в роли ведомого, работая от внешнего тактирования. Это зависит от программной реализации в ПЛИС и позволяет в большинстве случаев просто подключить плату модуля вместо звукового кодека в существующей конструкции.
Я сделал это в известной конструкции трансивера Sparrow (автор SP3OSJ), который построен на базе схемотехники UHDSDR.
Прошивка ПЛИС
Прошивка ПЛИС была разработана для работы I2S интерфейса в режиме ведомого, выдавая и принимая семплы с частотой 48кГцб 32 бит на семпл.
Чтобы плата модуля и процессор были синхронизированы по частоте, задающий генератор процессора я удалил и подал нужные 16 МГц на него с платы модуля. Так как модуль начинает выдавать тактовую частоту спустя некоторое время после подачи питания, процессор отказывался запускаться, думая что генератор неисправен. Проблема решилась легко с помощью еще одного проводка на вывод сброса процессора, тепеь модуль позволяет ему начинать работу когда частота на тактирующем выводе установилась.
Распиновка разъема
Распиновка выводов разъема модуля оказалась следующая:
Где DIN, DOUT, LRCLK, BCLK - стандартные линии шины I2S
SCL, SDA - линии шины I2C для управления частотой настройки модуля и другими параметрами
MCLK - частота 16 МГц для тактирования процессора
/RES - инверсный сигнал сброса для процессора
OF - выход сигнала переполнения АЦП
CW - вход сигнала формирования CW сигнала модулем.
Для питания цепей применены высокоэффективные импульсные преобразователи серии SC189, которые установлены на плате под экраном, гасящим возможные помехи от них.
Управление всеми параметрами модуля
Управление всеми параметрами модуля осуществляется через шину I2C, только запись в модуль. Адресный байт - D2.
Протокол управления очень прост, за один цикл записи передается 10 байт в виде:
Start -> Address -> RXF3(MSB)_byte -> RXF2_byte -> RXF1_byte -> RXF0(LSB)_byte ->
-> TXF3(MSB)_byte -> TXF2_byte -> TXF1_byte -> TXF0(LSB)_byte -> SRATE -> TXLEVEL-> Stop
Где RXF - частота приемника в Герцах, 4 байта
TXF - частота передатчика в Герцах, 4 байта
SRATE - частота выходных семплов 0 - 48/50 kHz, 1 - 96/100 kHz, 2 - 192/200 kHz, 3 - 394/400kHz
TXLEVEL - уровень выходной мощности передатчика 0 - 255
Проект полностью открыт, вся информация будет опубликована.
Платы можно заказать тут https://oshpark.com/shared_projects/o6vrwTBa
Исходники платы, исходники прошивки, BOM (только основное)