Найти в Дзене
NNZ-IPC

Обзор платы расширения корпуса UNO-220-P4N1AE под управлением OS Astra Linux

Оглавление
  • ТТХ
  • Начинаем «заводить» всех по очереди
  1. RTC
  2. GPIO
  3. Serial Port
-2

ТТХ

Полные технические характеристики корпуса можно найти на сайте производителя - ТТХ. Наш обзор корпуса полностью тут. В этой статье сделан упор на работу с дополнительными интерфейсам, предоставляемыми производителем.

Собственно, к параметрам самой платы можно отнести следующие:

  • Real Time Clock (RTC) реализован на микросхеме RX8010SJ;
  • I/O Interface:

- GPIO реализован на микросхеме TCA9554;

  1. GPI 0-3: VIH: 2 ~ 5V, VIL: 0 ~ 0.8V;
  2. GPO 0-3: 0 ~ 5V;

- Serial Ports: 1 x RS232/485 (5-pin terminal block), automatic direction control, 300 ~ 115.2k bps, UART используется нативный, самой RPi4 выведенный на 8-ой и 10-ый контакты «гребёнки».

Физика реализована на двух микросхемах SP3243EUEA (RS232) и MAX13488EESA (RS485)*.

Микросхемы, отвечающие за эти интерфейсы, указаны на изображении 1.

* Вывод TxD разведён на плате без всяких ухищрений - непосредственно на входы драйверов (SP3243EUEA - pin 14 - T1IN; MAX13488EESA - pin 4 - DI). А вот с RxD производитель подстраховался, и выходы драйверов объединяются через микросхему двухвходового вентиля SN74LVC1G08, реализующего логическое «И».

Начинаем «заводить» всех по очереди

Advantech предоставляет драйвера и тестовые примеры, но... только под Raspberry Pi OS. Причём эта OS 32-битная, притом что сам ARM на Raspberry Pi 4 уже 64-битный - Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz. Полные ТТХ тут.

Поскольку для нас в первую очередь важна совместимость всех и вся с OS Astra Linux, мы будем использовать OS Astra Linux® Special Edition, релиз «Новороссийск» от АО «НПО РусБИТех-Астра».

Готовый образ можно взять по ссылке. Нарезаем образ на uSD, включаемся и загружаемся. Для дальнейшей работы нам потребуется указать системе использовать I2C, для чего подредактируем файл /boot/config.txt следующим образом:

-3

RTC

Часы реального времени управляются по шине I2C, следовательно, перед их использованием необходимо сказать нашей «малинке», что у нас есть новое устройство по некоему адресу. Для этого нам понадобится утилита i2cdetect, осуществляющая сканирование шины I2C на предмет поиска устройств и вывод таблицы со списком обнаруженных устройств на указанной шине. Скачать библиотеку, установить dpkg -i ./libi2c0_4.2-1build1_arm64.deb.

Теперь всё готово - определяемся с этим самым адресом, вывод команды i2cdetect:

-4

Как мы видим, на шине присутствует два устройства. Методом научного тыка эмпирическим путём было установлено, что RTC - это адрес 0x32. Теперь сообщаем нашей «малинке»: «Давай подключим часики.»:

-5

После успешной инициализации в системе должен автоматически подключиться модуль rtc_rx8010:

-6

Появление RTC в системе можно продиагностировать следующим образом:

-7

А ещё так:

administrator@astra-arm64:~$ hwclock -r     
2021-05-25 10:25:38.546893+00:00

Есть один маленький, но очень чувствительный момент: при перезагрузке инициализацию требуется проводить заново. Во избежание, так сказать, и так как все мы - люди занятые и ерундой страдать не любим, приводим готовые файлы для systemd:

-8

GPIO

Дополнительные (относительно самой Raspberry Pi) GPIO предоставлены в полное распоряжение микросхемой TCA9554, так же, как и часы, управляемые по шине I2C. Соответственно, и инициализация осуществляется схожим образом:

-9

Дальнейшая работа с GPIO полностью соответствует стандартным операциям с sysfs.

Serial Port

UART выведенный на «гребёнку» у Raspberry Pi4 называется ttyS0, причём по умолчанию он используется как консольный терминал. Этим мы и воспользуемся для проверки. Подключаемся сначала по RS232:

  • соединяем соответствующие контакты (показаны на изображении 3) на Raspberry и стендовом ПК;
  • запускаем на стендовом ПК Putty и включаем или перезагружаем «малинку»;
  • наблюдаем в окне Putty сначала сообщения от ядра Linux и, наконец, сообщения запуска системных служб, заканчивающиеся приглашением к вводу имени пользователя: Astra Linux CE 4.11.4 (Novorossiysk)
    ttyS0
    astra-arm64 login:.
  • При желании можно залогиниться и убедиться, что всё работает.

Для проверки подключения по RS485 всё аналогично за исключением того, что нужно сигналы забирать с соседних пинов и на стендовой машине, а так же использовать последовательный порт RS485.

Для использования последовательного порта в своих целях потребуется перенастроить работу /dev/ttyS0.

#astra linux #астра линукс новороссийск 

#железо_и_технологии