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

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


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

Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
boards:nms-uq7-komdiv-mk:peripherial:start [2026/07/28 12:14] Илья Ковальчукboards:nms-uq7-komdiv-mk:peripherial:start [2026/07/30 06:51] (текущий) – [Ethernet] Артем Слепов
Строка 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]].**
 +
  
 ===== CAN ===== ===== CAN =====
Строка 14: Строка 27:
 GND    --- GND GND    --- GND
 </code> </code>
 +
 +{{komdiv_can_connection.jpeg?600}}
  
 ==== Настройка ==== ==== Настройка ====
Строка 30: Строка 45:
 Скорость на обоих интерфейсах должна совпадать. Скорость на обоих интерфейсах должна совпадать.
  
-==== Приём =====+==== Приём ====
  
 Приём всех кадров: Приём всех кадров:
Строка 86: Строка 101:
  
 <code> TX --- RX </code> <code> TX --- RX </code>
- 
-UART должен использовать подходящий логический уровень, например ''3,3 В''. Не подключайте TTL UART напрямую к RS-232. 
  
 ==== Настройка ==== ==== Настройка ====
Строка 98: Строка 111:
  
 ==== Отправка ==== ==== Отправка ====
 +
 +В другом окне терминала:
  
 <code> printf 'UART test' > /dev/ttyS1 </code> <code> printf 'UART test' > /dev/ttyS1 </code>
Строка 103: Строка 118:
 При loopback отправленная строка должна появиться в окне приёма. При loopback отправленная строка должна появиться в окне приёма.
  
-==== Автоматический тест ====+===== I2C =====
  
-Успешный результат:+Пример работы с VL53L0X 
  
-<code> UART TEST PASSED </code>+==== Просмотр шин ====
  
-===== I2C =====+<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 =====
 +
 +Интерфейс SATA мультиплексируется между двумя каналами. Выбор активного канала выполняется через 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
 +          0      16384 ram0
 +          1      16384 ram1
 +          2      16384 ram2
 +          3      16384 ram3
 +          4      16384 ram4
 +          5      16384 ram5
 +          6      16384 ram6
 +          7      16384 ram7
 +          8      16384 ram8
 +          9      16384 ram9
 +         10      16384 ram10
 +         11      16384 ram11
 +         12      16384 ram12
 +         13      16384 ram13
 +         14      16384 ram14
 +         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
 +         16  125034840 sdb   # <------------------------/ 
 +         17     153600 sdb1  # <-----------------------/  Обнаруженный SATA-накопитель
 +         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.1785240897.txt.gz · Последнее изменение: Илья Ковальчук