Использование периферии Q7_KOMDIV_MK

CAN

Пример CAN loopback:

Подключение

Соединить CAN интерфейсы следующим образом:

CAN0_H --- CAN1_H
CAN0_L --- CAN1_L
GND --- GND

Настройка

Перед изменением скорости интерфейсы необходимо выключить:

ip link set can0 down
ip link set can0 type can bitrate 1000000 restart-ms 100
ip link set can0 up
ip link set can1 down
ip link set can1 type can bitrate 1000000 restart-ms 100
ip link set can1 up

Скорость на обоих интерфейсах должна совпадать.

Приём

Приём всех кадров:

candump can0

Приём только кадров с идентификатором 123:

candump 'can0,123:7FF'

Отправка

Отправка кадра через can1:

cansend can1 123#1122334455667788

Где 123 — CAN ID, после # идут данные.

Остановка

ip link set can0 down
ip link set can1 down

Проверка состояния

ip -details -statistics link show can0

Нормальное состояние интерфейса:

state ERROR-ACTIVE bitrate 1000000

В статистике отображаются:

количество принятых пакетов — RX packets;

количество отправленных пакетов — TX packets;

ошибки приёма — RX errors;

ошибки передачи — TX errors.

UART

Подключение

Для loopback соедините:

TX --- RX

Настройка

stty -F /dev/ttyS1 115200 raw -echo

Приём

cat /dev/ttyS1

Отправка

В другом окне терминала:

printf 'UART test' > /dev/ttyS1

При loopback отправленная строка должна появиться в окне приёма.

I2C

Пример работы с VL53L0X:

Просмотр шин

i2cdetect -l
ls /dev/i2c-*

Поиск устройств

Для шины i2c-2:

i2cdetect -y 2

VL53L0X обычно доступен по адресу 0x29.

Чтение регистра

i2cget -y 2 0x29 0xC0

Где:

2 — номер I²C-шины;

0x29 — адрес устройства;

0xC0 — адрес регистра.

Запись регистра

i2cset -y 2 0x29 0x00 0x01

Чтение нескольких байтов

i2ctransfer -y 2 w1@0x29 0x14 r12

Команда указывает датчику начать чтение с регистра 0x14, после чего получает 12 последовательных байт данных.

Чтение VL53L0X

chmod +x i2c-test.sh
./i2c-test.sh 2 20

Где:

2 — номер I²C-шины;

20 — количество измерений.

Вывод скрипта:

Distance 1: 87 mm
Distance 2: 65 mm
Distance 3: 71 mm
Distance 4: 68 mm
Distance 5: 74 mm
Distance 6: 65 mm
Distance 7: 74 mm
Distance 8: 104 mm
Distance 9: 122 mm
Distance 10: 169 mm
Distance 11: 281 mm
Distance 12: 364 mm
Distance 13: 298 mm
Distance 14: 185 mm
Distance 15: 112 mm
Distance 16: 89 mm
Distance 17: 76 mm
Distance 18: 69 mm
Distance 19: 65 mm
Distance 20: 70 mm

SATA