Это старая версия документа!
Пример CAN loopback:
Перед изменением скорости интерфейсы необходимо выключить:
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 последовательных байт данных.
В качестве примера используется лазерный дальномер VL53L0X.
Подключение 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
В качестве примера проверяется SPI Flash, подключённая к интерфейсу /dev/spidev1.0, т.к. установлена на CS0.
Для работы с устройствами SPI необходимо загрузить модуль ядра:
modprobe spidev
Пример определения SPI Flash:
flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=1000
Пример успешного результата:
flashrom v1.5.1 on Linux 6.1.135 (mips64) flashrom is free software, get the source code at https://flashrom.org Found Macronix flash chip "MX66L51235F/MX25L51245G" (65536 kB, SPI) on linux_spi. === This flash part has status UNTESTED for operations: WP The test status of this chip may have been updated in the latest development version of flashrom. If you are running the latest development version, please email a report to flashrom@flashrom.org if any of the above operations work correctly for you with this flash chip. Please include the flashrom log file for all operations you tested (see the man page for details), and mention which mainboard or programmer you tested in the subject line. You can also try to follow the instructions here: https://www.flashrom.org/contrib_howtos/how_to_mark_chip_tested.html Thanks for your help! No operations were specified.