Это старая версия документа!
Пример 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.
Для loopback соедините:
TX --- RX
stty -F /dev/ttyS1 115200 raw -echo
cat /dev/ttyS1
В другом окне терминала:
printf 'UART test' > /dev/ttyS1
При loopback отправленная строка должна появиться в окне приёма.
Пример работы с 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 байт.
chmod +x i2c-test.sh ./i2c-test.sh 2 20
Где:
2 — номер I²C-шины;20 — количество измерений.Пример результата:
Distance 1: 245 mm Distance 2: 247 mm Distance 3: 246 mm