Wiren Board 4: Модуль расширения CAN
Распиновка
Сигналы CAN выведены на клеммы модуля расширения O1-O3.
Распиновка:
- O1 - GND
- O2 - CAN Low (CAN-)
- O3 - CAN High (CAN+)
Терминатор
Терминатор 120 Ом включается замыканием джампера на модуле расширения.
Конфигурация
Для работы с CAN, ядро Wiren Board необходимо сконфигурировать соответствующим образом.
В файле
/boot/uEnv.txt
нужно заменить строчку
fdt_file=/boot/dtbs/imx23-wirenboard41.dtb
на
fdt_file=/boot/dtbs/imx23-wirenboard41-can.dtb
и перезагрузить контроллер командой
reboot
См. статьи Просмотр файлов контроллера с компьютера и SSH.
Работа
CAN доступен в системе как сетевой интерфейс can0. Работа происходит через стандартную подсистему Linux SocketCAN.
Для удобной работы с CAN, нужно поставить пакет can-utils
can
Конфигурирование интерфейса
ip link set can0 up type can bitrate 125000
отправка 4 байтов c адресом 123:
cansend can0 123#DEADBEEF
показывать входящие пакеты:
candump can0
показать статистику:
cat /proc/net/can/stats
Обратите внимание, что в случае проблем на шине (нет терминатора, нет принимающего устройства, короткое замыкание), контроллер может прекратить работу.
Для того, чтобы начать работу вновь, выполните
ifconfig can0 down && ip link set can0 up type can bitrate 125000
Больше информации смотрите в статье.