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.


flash

На плате MCY112 установлено 2 одинаковых чипа флэш памяти W25Q16, 2 Мегабайта в каждом чипе.
Первый чип (1) предназначен для хранения пользовательских данных, например, для хранения программы процессора RISC-V.
Второй чип (2) может использоваться для автозагрузки FPGA Cyclone после подачи питания на плату.
В этой статье я расскажу, как программировать оба чипа.

 mcy112 leds

Самый простой проект, который можно придумать для любой FPGA платы это мигание светодиодами. Это своего рода минимальная программа "Hello World!", которую пишут начинающие программисты на C/C++. Для всех наших плат ранее мы делали подобные проекты. Не будет исключением и плата MCY112 построенная на ПЛИС Cyclone EP1C12Q240C8.

Я было даже подумал снять демонстрационное видео про этот проект, но снимать там особо нечего.
Видео-то я снял, только смотреть я думаю его будет скучно. Поэтому просто сделал простую GIF анимацию.

mcy112 angles 1280

Мы разработали новую FPGA плату MCY112 с чипом ПЛИС Altera Cyclone I EP1C12Q240C8. Мы понимаем, что ПЛИС Cyclone I не самый новый чип на сегодняшний день, но его достоинство - он есть в наличии и он более-менее доступен по цене. И главное - на этой плате очень много пользовательских выводов! Можно много чего подключить!

OrangePi PC2

Сегодня решил провести эксперимент. Можно ли подключить плату MA3128 с ПЛИС Альтеры EPM3128ATC100 не к Raspberry Pi3 или Pi4, как это задумывалось изначально, а к какому нибудь другому микрокомпьютеру. У меня в наличии имеется несколько одноплатников. Попробую на Orange Pi PC2. Интересно испытать нашу MA3128 на совместимость с другими платами, так как цены на оригинальные Raspberry Pi микрокомпьютеры в настоящее время не радуют. Что получится?

ma3128 step motors

В проекте rpi-hat-io я уже подключал шаговый моторчик 28byj-48 к плате MA3128 и заставлял вал моторчика вращаться. Сейчас я хочу сделать проект посложнее. Во-первых, я хочу подключить сразу 4 моторчика и управлять вращением каждого из них независимо. Во-вторых, мне хотелось бы избавиться в программе управления от программных задержек. Программные задержки вещь ненадежная. На микрокомпьютере Raspberry работает обычная десктопная операционная система, которая в принципе не может обеспечить высокую точность программных задержек.

Мне хотелось бы в ПЛИС платы MA3128 реализовать какую-то более сложную логику, чтобы можно было бы подать команду "выполнить шаг на двигателе N". В ПЛИС платы всего 128 логических элементов, как же быть? Попробуем сделать..