FPGA chips

Изучаем САПР Altera Quartus II / Intel Quartus Prime, язык описания аппаратуры Verilog HDL и кое-что про VHDL. Программируем FPGA Altera / Intel Cyclone III, Cyclone IV, MAX II, MAX10. Экспериментируем с платами разработчика  FPGA серии Марсоход, Марсоход2, Марсоход3. А еще разбираемся с FPGA Gowin.


keyboards

Идея 1: Механическая

        На настоящий момент хорошо развита технология изготовления печатных плат. Существует множество сапров в которых вы можете изобразить нужную вам плату. Существует много фирм в которых по вашей документации эту плату могут изготовить. Причем в приемлимые сроки и незадорого. Есть даже технологии изготовления плат в домашних условиях. Раз с платами все так хорошо, возникает идея - нельзя ли использовать плату не только для размещения компонентов и проводников, но и как конструктивный элемент. Для одного нашего проекта (линейная видеокамера FLEXOCAM для контроля качества типографской печати на рулонах) понадобилась 6-ти кнопочная выносная клавиатура и мы решили эту идею попробовать.

beam bot

Этот проект - современная реализация нашего давнишнего проекта "Двигаться по полосе".

Основная цель этой работы - использовать новое шасси Марсохода, которое можно напечатать на 3D принтере, и использовать более распространённые шаговые двигатели 28BYJ-48. Мне кажется, что таким образом, этот простой проект будет легче повторить.

MarsohodBot2

Машинка Марсоход это возможно был самый первый проект на нашем сайте, 15 лет назад. К сожалению, тот проект довольно трудно повторить в настоящее время. Например, где взять два одинаковых шаговых двигателя от пятидюймовых жестких дисков? Это целая проблема. Но ведь идея-то проекта была интересная?

Попробуем реализовать его на новом уровне. Для этого, напечатаем разработанное нами шасси нового Марсохода на 3D принтере и соберём его, как написано вот здесь. Получится вот такая машинка, как на рисунке выше. 3D модели всех деталей есть на нашем гитхабе.

В качестве платы управления возьмем нашу плату MA3128. Я думаю, что этот же проект можно будет так же легко запустить и на других наших платах, например, используя плату Марсоход3GW2 или другие.

Проект для микросхемы Altera CPLD платы МА3128 в среде Altera Quartus II v13.0 я разместил на гитхабе https://github.com/marsohod4you/MA3128/tree/main/IR-ctrl-bot

Ну а дальше я расскажу чуть подробнее об этом проекте и в конце статьи будет его видео демонстрация.

Это демонстрация SDR-Radio реализованного в FPGA плате Марсоход3GW2.

Здесь почти 20 минут записи на которой я сканирую эфир от 800КГц до 10МГц. Мной было найдено довольно много радиостанций (частоты в КГц):

855 (музыка), 864, 999 (русский), 1026, 1035 (русский), 1071, 1188, 1377, 1413 (русский), 6015, 6040, 6070, 6145, 6165 (английский), 7220, 7255 (английский), 7265 (музыка, китайский на русском), 7300 (музыка), 7350 (музыка), 7420, 7445 (китайский), 9370, 9485, 9630 (музыка), 9760, 9820, 9860.

Иногда я слышал французскую речь, иногда итальянскую или арабскую (но тут могу ошибаться). Многое зависит от времени прослушивания эфира и даже от погоды. Я заметил, что для меня появляется довольно много станций именно в вечернее время, где-то после 20:00 по московскому времени. В то же время днём или утром или днём не слышно почти ничего.

Конечно, я должен признать, что качество звука неудовлетворительное. Многие передачи только слышно, что есть какое-то вещание, но даже слов не разобрать. Некоторые передачи более четкие. Зависит от мощности передатчика. К примеру, в моем регионе 999КГц вещает довольно сильно. Да и китайские станции вроде 7445 довольно мощные.

Однако, я думаю, что причин неуверенного и некачественного приёма есть несколько:

  • я использую в качестве антенны просто кусок провода 5 метров, свисающий с балкона, это заведомо плохая антенна;
  • у меня нет ни антенного усилителя ни даже входного фильтра, а антиалиасинговый фильтр, скажем прямо, обязательно должен стоять перед АЦП.

Это основные причины.

Возможно качество приёма можно было бы дополнительно увеличить с помощью АЦП большей разрядности. Но всё равно, входной фильтр перед АЦП обязательно нужен. Возможно я когда нибудь его сделаю и тогда уровень шумов, я уверен, станет гораздо меньше.

Тем не менее, я все же считаю, этот FPGA проект интересным с точки зрения обучения и демонстрации возможности цифровой обработки сигналов. 

Далее расскажу подробнее о приёмнике и его реализации в FPGA.

Я продолжаю работать над проектом SDR-Radio на FPGA плате Марсоход3GW2. Напомню, что здесь на плате у нас стоит микросхема ПЛИС от компании Gowin. Это значит, что если придется использовать IP Core, то это будут коры от говин.

В проекте SDR-Radio мне нужны следующие базовые компоненты:

  • NCO - Numerically Controlled Oscilator, перестраиваемый генератор синусоидальных колебаний:
  • модуль приема команд от ПК и данных к ПК, например, можно использовать последовательный порт;
  • умножители для переноса спектра сигнала;
  • цифровые фильтры нижних частот CIC и FIR.

Первые два пункта у меня практически уже есть реализованные в предыдущем проекте. Теперь мне нужно сделать цифровые фильтры.

Сказать по правде, я не большой специалист в цифровых фильтрах, хотя общее представление, как это всё работает у меня конечно есть. Я считаю, что самый правильный способ разобраться с работой какого либо устройства или модуля - это либо заглянуть внутрь и рассмотреть его детали, либо попытаться измерить его внешние характеристики. В случае с цифровым фильтром его основная характеристика это АЧХ - амплитудно частотная характеристика. Она показывает сигналы каких частот пропускает или подавляет фильтр. Попробуем провести эксперименты по измерению частотных характеристик цифровых фильтров.