MA3128 совместно с OrangePi-PC2

OrangePi PC2

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

Почти все производители пытаются подражать Raspberry и устанавливают 40ка пиновый разъем для GPIO. Но насколько он совпадает по сигналам у разных микрокомпьютеров?

Нашел на просторах интернета вот такое описание разъема GPIO для Orange Pi PC2:

Посмотрим gpio pins

Здесь очень многое совсем не так, как у Raspberry, но, хорошо, что все сигналы GND, +5V, +3,3V находятся в нужных позициях. То есть нашу плату MA3128 можно ставить на плату Orange Pi PC2. Если будете использовать другие платы, то внимательно смотрите и сравнивайте распиновку.

На самом деле, проект управления шаговыми двигателями, который я описывал в предыдущей статье не сложный и использует только один пин разъема GPIO для приема данных через последовательный порт.

В Распбери сигналы Rx/Tx находятся на пинах:

  • PIN8 - GPIO14 - UART0_TxD
  • PIN10 - GPIO15 - UART0-RxD

Из таблицы выше видно, что у Orange Pi PC2 на этих пинах совсем другое. То есть вот так сразу тот мой проект управления шаговыми двигателями не заработает.

Но! У нас же ПЛИС Альтеры! Я же могу запросто переназначить в проекте пины, перекомпилировать проект в среде Quartus Web Edition и перешить ПЛИС. Должно работать!

Я взял проект Quartus и добавил в него новую ревизию:

revisions

В этой ревизии проекта изменил только назначения выводов. Для сигнала SERIAL_RX назначил PIN13, а для SERIAL_TX назначил PIN10 нашей ПЛИС. Именно эти выводы ПЛИС по схеме идут на PIN38 и PIN40 разъема GPIO у микрокомпьютера OrangePi-PC2. На этих пинах у оранжа находится UART1.

В коде проекта ничего не менял.

Ну вот сделал назначения в проекте, откомпилировал, прошил плату. Установил её на OrangePi-PC2, подключил шаговые моторы.

На микрокомпьютере я установил SD карту с зашитой Armbian OS. Когда загрузился в первый раз запустил armbian-config и в этой программе включил последовательный порт UART1. Перезагрузился.

В консоли Armbian через sudo apt install установил пакеты python3-pip, python3-tk. Затем через pip3 install установил питоновский пакет pyserial. Вот кажется и всё.

Для управления шаговыми двигателями запускаю мою питоновскую программу

>python3 motor-ctrl.py

Только в этой питоновской программе нужно исправить имя устройства последовательного порта, теперь на оранже это /dev/ttyS1

Ну и вот демонстрация:

 

С помощью питоновской программы можно управлять скоростью вращения и направлением вращения, просто перемещайте слайдеры программы. Программа на OrangePi-PC2 работает точно так же, как и на Raspberry. Управление шаговыми моторами происходит без проблем. Получается, что нашу плату MA3128 можно использовать с разными одноплатными компьютерами!

Весь проект можно взять на github: https://github.com/marsohod4you/MA3128/tree/main/rpi-serial4steppers

Напоминаю, что компилируя проект в Quartus Web, выбирайте правильно ревизию max для Raspberry и max-orangepi-pc2 для оранжа.

 

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