Инструменты пользователя

Инструменты сайта


boards:nms-uq7-komdiv-mk:peripherial:start

Это старая версия документа!


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

CAN

Пример CAN loopback:

Подключение

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

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

komdiv_can_connection.jpeg

Настройка

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

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

В качестве примера используется лазерный дальномер VL53L0X.

Подключение VL53L0X:

komdiv_i2c_connection.jpeg

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

Пример подключения SPI Flash:

В качестве примера проверяется SPI Flash, подключённая к интерфейсу /dev/spidev1.0, т.к. установлена на CS0.

Подключение микросхемы:

komdiv_spi_connection.jpeg

Для работы с устройствами 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.

SATA

boards/nms-uq7-komdiv-mk/peripherial/start.1785321199.txt.gz · Последнее изменение: Илья Ковальчук