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

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


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

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
boards:nms-uq7-komdiv-mk:peripherial:start [2026/07/28 11:46] – Илья Ковальчукboards:nms-uq7-komdiv-mk:peripherial:start [2026/08/06 09:28] (текущий) – [SATA] Илья Ковальчук
Строка 1: Строка 1:
 ====== Использование периферии Q7_KOMDIV_MK ======  ====== Использование периферии Q7_KOMDIV_MK ====== 
 +
 +На странице приведены примеры настройки и проверки периферийных интерфейсов модуля ''Q7_KOMDIV_MK''.
 +
 +  * CAN
 +  * UART;
 +  * I2C;
 +  * SPI;
 +  * SATA;
 +  * RTC.
 +
 +
 +**Скрипты для тестирования доступны в [[https://gitlab.inmys.online/srisa-public/k5500vk018-test-suite|репозитории test-suite]].**
 +
 +<code>
 +git clone https://gitlab.inmys.online/srisa-public/k5500vk018-test-suite.git
 +</code>
 +
 +===== ETH =====
 +ETH на краевом разъеме Q7 по стандарту работает на RJ45-розетке рядом с USB:
 +
 +{{ native-eth.jpg?480 }}
  
 ===== CAN ===== ===== CAN =====
Строка 14: Строка 35:
 GND    --- GND GND    --- GND
 </code> </code>
 +
 +{{komdiv_can_connection.jpeg?600}}
  
 ==== Настройка ==== ==== Настройка ====
Строка 30: Строка 53:
 Скорость на обоих интерфейсах должна совпадать. Скорость на обоих интерфейсах должна совпадать.
  
-==== Приём =====+==== Приём ====
  
 Приём всех кадров: Приём всех кадров:
Строка 80: Строка 103:
  
 ===== UART ===== ===== UART =====
 +
 +==== Подключение ====
 +
 +Для loopback соедините:
 +
 +<code> TX --- RX </code>
 +
 +==== Настройка ====
 +
 +<code> stty -F /dev/ttyS1 115200 raw -echo </code>
 +
 +==== Приём ====
 +
 +<code> cat /dev/ttyS1 </code>
 +
 +==== Отправка ====
 +
 +В другом окне терминала:
 +
 +<code> printf 'UART test' > /dev/ttyS1 </code>
 +
 +При loopback отправленная строка должна появиться в окне приёма.
  
 ===== I2C ===== ===== I2C =====
 +I2C-шины по стандарту Q7 реализованы через 4х-канальный мультиплексор PCA9546APW.
 +
 +Описание i2c-шин с точки зрения Linux:
 +<code>
 +ls -la /sys/class/i2c-adapter*
 +
 +i2c-0 -> ../../devices/platform/1b400130.i2c/i2c-0 - SoC's I2C-Master 
 +i2c-1 -> ../../devices/platform/1b400130.i2c/i2c-0/i2c-1 - I2C_SYS. Шина на модуле, куда подключены PMIC(0x18), i2c eeprom, i2c-mux(0x74), rtc (0x68)
 +i2c-2 -> ../../devices/platform/1b400130.i2c/i2c-0/i2c-2 - I2C0 по стандарту Q7
 +i2c-3 -> ../../devices/platform/1b400130.i2c/i2c-0/i2c-3 - SMB_I2C по стандарту Q7
 +i2c-4 -> ../../devices/platform/1b400130.i2c/i2c-0/i2c-4 - Not Connected
 +
 +</code>
 +
 +
 +Пример работы с VL53L0X, подключенном к I2C0 по Q7:  
 +
 +==== Просмотр шин ====
 +
 +<code>
 +i2cdetect -l
 +ls /dev/i2c-*
 +</code>
 +
 +==== Поиск устройств ====
 +
 +Для шины ''i2c-2'':
 +
 +<code>
 +i2cdetect -y 2
 +</code>
 +
 +VL53L0X обычно доступен по адресу ''0x29''.
 +
 +==== Чтение регистра ====
 +
 +<code>
 +i2cget -y 2 0x29 0xC0
 +</code>
 +
 +Где:
 +
 +* ''2'' — номер I²C-шины;
 +* ''0x29'' — адрес устройства;
 +* ''0xC0'' — адрес регистра.
 +
 +==== Запись регистра ====
 +
 +<code>
 +i2cset -y 2 0x29 0x00 0x01
 +</code>
 +
 +==== Чтение нескольких байтов ====
 +
 +<code>
 +i2ctransfer -y 2 w1@0x29 0x14 r12
 +</code>
 +
 +Команда указывает датчику начать чтение с регистра 0x14, после чего получает 12 последовательных байт данных.
 +
 +
 +В качестве примера используется лазерный дальномер VL53L0X.
 +
 +==== Подключение VL53L0X ====
 +
 +{{komdiv_i2c_connection.jpeg?600}}
 +
 +==== Чтение VL53L0X ====
 +
 +<code>
 +chmod +x i2c-test.sh
 +./i2c-test.sh 2 20
 +</code>
 +
 +Где:
 +
 +* ''2'' — номер I²C-шины;
 +* ''20'' — количество измерений.
 +
 +Вывод скрипта:
 +
 +<code>
 +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
 +</code>
 +
 +===== SPI =====
 +
 +В качестве примера используется SPI Flash, подключённая к ''CS0''. Ей соответствует устройство ''/dev/spidev1.0''.
 +
 +При подключении к  ''CS1'' используется устройство ''/dev/spidev1.1''.
 +
 +
 +==== Подключение ====
 +
 +{{komdiv_spi_connection.jpeg?600}}
 +
 +==== Конфигурация ====
 +
 +Для работы с устройствами SPI необходимо загрузить модуль ядра: 
 +
 +<code>
 +modprobe spidev
 +</code>
 +
 +==== Определение SPI Flash ====
 +
 +<code>
 +flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=1000
 +</code>
 +
 +Пример успешного результата:
 +
 +<code>
 +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.
 +</code>
  
 ===== SATA ===== ===== SATA =====
 +
 +В модуле 1x SATA, который мультиплицируется между SATA0 и SATA1. По умолчанию выбран SATA1 по стандарту Q7 (на отладочной плате m2-разъем).
 +
 +Выбор активного канала выполняется через GPIO с помощью скрипта ''gpio.sh''.
 +
 +Выбор канала 0:
 +
 +<code>
 +./gpio.sh sata_select 0
 +</code>
 +
 +Выбор канала 1:
 +
 +<code>
 +./gpio.sh sata_select 1
 +</code>
 +
 +После выбора канала проверить обнаружение накопителя можно командой:
 +
 +<code> cat /proc/partitions </code>
 +
 +Пример успешного обнаружения SATA-накопителя:
 +
 +<code>
 +major minor  #blocks  name
 +   1        0      16384 ram0
 +   1        1      16384 ram1
 +   1        2      16384 ram2
 +   1        3      16384 ram3
 +   1        4      16384 ram4
 +   1        5      16384 ram5
 +   1        6      16384 ram6
 +   1        7      16384 ram7
 +   1        8      16384 ram8
 +   1        9      16384 ram9
 +   1       10      16384 ram10
 +   1       11      16384 ram11
 +   1       12      16384 ram12
 +   1       13      16384 ram13
 +   1       14      16384 ram14
 +   1       15      16384 ram15
 +  31        0        640 mtdblock0
 +  31        1         64 mtdblock1
 +  31        2         64 mtdblock2
 +  31        3         64 mtdblock3
 + 179        0    7634944 mmcblk0
 + 179        1    1048576 mmcblk0p1
 + 179        2    1048576 mmcblk0p2
 + 179        3    1048576 mmcblk0p3
 + 179        8       4096 mmcblk0boot0
 + 179       16       4096 mmcblk0boot1
 +   8       16  125034840 sdb   # <------------------------/ 
 +   8       17     153600 sdb1  # <-----------------------/  Обнаруженный SATA-накопитель
 +   8       18  124881223 sdb2  # <----------------------/ 
 +</code>
 +
 +В данном примере накопитель определён как ''/dev/sdb'' и содержит два раздела.
 +
 +Имя устройства может отличаться в зависимости от порядка обнаружения накопителей.
 +
 +===== RTC =====
 +
 +В дереве устройств определена I2C RTC.  
 +
 +При первом запуске системное время может быть установлено на 01.01.1970, а RTC ещё не будет содержать корректного значения.
 +
 +Пример установки системного времени:
 +
 +<code>
 +date -s "2026-07-29 14:48:00"
 +</code>
 +
 +Запись системного времени в RTC:
 +
 +<code>
 +hwclock -w
 +</code>
 +
 +Просмотр текущего времени RTC:
 +
 +<code>
 +hwclock -r
 +</code>
 +
 +При наличии батарейки записанные дата и время сохраняются после отключения питания.
 +
 +
 +
boards/nms-uq7-komdiv-mk/peripherial/start.1785239162.txt.gz · Последнее изменение: — Илья Ковальчук