(SOM-IMX6ULL-E2)
| Вывод | Обозначение |
|---|---|
| 1 | VBUSIN |
| 2 | VDDCOIN |
| 3 | VBUSIN |
| 4 | PORB |
| 5 | VBUSIN |
| 6 | VDD_SNVS_3V3 |
| 7 | VBUSIN |
| 8 | SYS_4V4 |
| 9 | |
| 10 | SYS_4V4 |
| 11 | GND |
| 12 | SYS_4V4 |
| 13 | GND |
| 14 | VCC_3V3 |
| 15 | GND |
| 16 | VCC_3V3 |
| 17 | GND |
| 18 | VCC_3V3 |
| 19 | GND |
| 20 | VBAT |
| 21 | GND |
| 22 | VBAT |
| 23 | PMIC_ONREQ |
| 24 | VBAT |
| 25 | PMIC_STBY_REQ |
| 26 | NVCC_CSI |
| 27 | MX6_RESETB |
| 28 | NVCC_SD1 |
| 29 | NWDOG |
| 30 | VLDO_1V8 |
| 31 | ONOFF |
| 32 | VLDO2_3V3 |
| 33 | ONKEY |
| 34 | VLDO3_3V3 |
| 35 | GND |
| 36 | LED_CHARGE |
| 37 | I2C1_SDA |
| 38 | WDI |
| 39 | I2C1_SCL |
| 40 | NTC_THERMISTOR |
| 41 | SNVS_TAMPER9 |
| 42 | USB2_DP |
| 43 | SNVS_TAMPER8 |
| 44 | USB2_DN |
| 45 | SNVS_TAMPER7 |
| 46 | GND |
| 47 | SNVS_TAMPER6 |
| 48 | USB2_CHD_B |
| 49 | SNVS_TAMPER5 |
| 50 | USB2_VBUS |
| 51 | SNVS_TAMPER4 |
| 52 | GND |
| 53 | SNVS_TAMPER3 |
| 54 | USB1_DP |
| 55 | SNVS_TAMPER2 |
| 56 | USB1_DN |
| 57 | SNVS_TAMPER1 |
| 58 | GND |
| 59 | SNVS_TAMPER0 |
| 60 | USB1_CHD_B |
| 61 | GND |
| 62 | USB1_VBUS |
| 63 | GPIO1_0 |
| 64 | GND |
| 65 | GPIO1_1 |
| 66 | GND |
| 67 | GPIO1_2 |
| 68 | TRST |
| 69 | GPIO1_3 |
| 70 | TDO |
| 71 | GPIO1_4 |
| 72 | TDI |
| 73 | GPIO1_5 |
| 74 | TCK |
| 75 | GPIO1_6 |
| 76 | TMS |
| 77 | GPIO1_7 |
| 78 | MOD |
| 79 | GPIO1_8 |
| 80 | GND |
| 81 | GPIO1_9 |
| 82 | UART1_TXD |
| 83 | GND |
| 84 | UART1_RXD |
| 85 | UART3_TXD |
| 86 | UART1_CTS |
| 87 | UART3_RXD |
| 88 | UART1_RTS |
| 89 | UART3_CTS |
| 90 | GND |
| 91 | UART3_RST |
| 92 | UART2_TXD |
| 93 | GND |
| 94 | UART2_RXD |
| 95 | UART4_TXD |
| 96 | UART2_CTS |
| 97 | UART4_RXD |
| 98 | UART2_RTS |
| 99 | GND |
| 100 | GND |
| 101 | UART5_TXD |
| 102 | CLK1_N |
| 103 | UART5_RXD |
| 104 | CLK1_P |
| 105 | GND |
| 106 | NC |
| 107 | NC |
| 108 | NC |
| 109 | LCD_RESET |
| 110 | LCD_ENABLE |
| 111 | LCD_CLK |
| 112 | LCD_VSYNC |
| 113 | LCD_HSYNC |
| 114 | LCD_DATA_0 |
| 115 | LCD_DATA_1 |
| 116 | LCD_DATA_2 |
| 117 | LCD_DATA_3 |
| 118 | LCD_DATA_4 |
| 119 | LCD_DATA_5 |
| 120 | LCD_DATA_6 |
| 121 | LCD_DATA_7 |
| 122 | LCD_DATA_8 |
| 123 | LCD_DATA_9 |
| 124 | LCD_DATA_10 |
| 125 | LCD_DATA_11 |
| 126 | LCD_DATA_12 |
| 127 | LCD_DATA_13 |
| 128 | LCD_DATA_14 |
| 129 | LCD_DATA_15 |
| 130 | LCD_DATA_16 |
| 131 | LCD_DATA_17 |
| 132 | LCD_DATA_18 |
| 133 | LCD_DATA_19 |
| 134 | LCD_DATA_20 |
| 135 | LCD_DATA_21 |
| 136 | LCD_DATA_22 |
| 137 | LCD_DATA_23 |
| 138 | GND |
| 139 | GND |
| 140 | CPLD_IO_10 |
| 141 | CPLD_TMS |
| 142 | CPLD_IO_9 |
| 143 | CPLD_TDI |
| 144 | CPLD_IO_8 |
| 145 | CPLD_TCK |
| 146 | CPLD_IO_7 |
| 147 | CPLD_TDO |
| 148 | CPLD_IO_6 |
| 149 | GND |
| 150 | CPLD_IO_5 |
| 151 | CSI_MCLK |
| 152 | CPLD_IO_4 |
| 153 | CSI_PIXCLK |
| 154 | CPLD_IO_3 |
| 155 | CSI_VSYNC |
| 156 | CPLD_IO_2 |
| 157 | CSI_HSYNC |
| 158 | CPLD_IO_1 |
| 159 | NC |
| 160 | CPLD_IO_0 |
| 161 | CSI_D7 |
| 162 | NC |
| 163 | CSI_D6 |
| 164 | BOOT_0 |
| 165 | CSI_D5 |
| 166 | BOOT_1 |
| 167 | CSI_D4 |
| 168 | GND |
| 169 | CSI_D3 |
| 170 | SD_CLK |
| 171 | CSI_D2 |
| 172 | SD_CMD |
| 173 | CSI_D1 |
| 174 | SD_D3 |
| 175 | CSI_D0 |
| 176 | SD_D2 |
| 177 | NC |
| 178 | SD_D1 |
| 179 | NC |
| 180 | SD_D0 |
| 181 | GND |
| 182 | GND |
| 183 | LED_SPD_1 |
| 184 | LED_SPD_0 |
| 185 | LED_LINK_1 |
| 186 | LED_LINK_0 |
| 187 | GND |
| 188 | GND |
| 189 | ETH_0_TX_P |
| 190 | ETH_1_TX_P |
| 191 | ETH_0_TX_N |
| 192 | ETH_1_TX_N |
| 193 | GND |
| 194 | GND |
| 195 | ETH_1_RX_P |
| 196 | ETH_0_RX_P |
| 197 | ETH_1_RX_N |
| 198 | ETH_0_RX_N |
| 199 | GND |
| 200 | GND |
| Вывод | Режим |
|---|---|
| E17 | ENET1_RDATA1 |
| F16 | ENET1_RDATA0 |
| D15 | ENET1_RX_ER |
| E16 | ENET1_RX_EN |
| E14 | ENET1_TDATA1 |
| E15 | ENET1_TDATA0 |
| F14 | ENET1_REF_CLK |
| F15 | ENET1_TX_EN |
| C16 | ENET2_RDATA1 |
| C17 | ENET2_RDATA0 |
| D16 | ENET2_RX_ER |
| B17 | ENET2_RX_EN |
| A16 | ENET2_TDATA1 |
| A15 | ENET2_TDATA1 |
| D17 | ENET2_REF_CLK |
| B15 | ENET2_TX_EN |
| K17 | ENET1_MDIO |
| L16 | ENET1_MDC |
| Вывод | Режим |
|---|---|
| G17 | I2C_SCL |
| G16 | I2C_SDA |
| Вывод | Режим |
|---|---|
| E6 | NAND_DQS |
| A3 | NAND_READY |
| A4 | NAND CLE |
| D5 | NAND_WP |
| C8 | NAND_WE |
| D8 | NAND_RE |
| B4 | NAND_ALE |
| A5 | NAND_D7 |
| A6 | NAND_D6 |
| B6 | NAND_D5 |
| C6 | NAND_D4 |
| D6 | NAND_D3 |
| A7 | NAND_D2 |
| B7 | NAND_D1 |
| D7 | NAND_D0 |
| B5 | NAND_CS1 |
| C5 | NAND_CS0 |
Вариант задействования 8-ми портов UART и 2 порта CAN
| Контакт разъема | Вывод процессора | Обозначение |
|---|---|---|
| 84 | K16 | UART1_RX |
| 82 | K14 | UART1_TX |
| 94 | J16 | UART2_RX |
| 92 | J17 | UART2_TX |
| 87 | H16 | UART3_RX |
| 85 | H17 | UART3_TX |
| 110 | B8 | UART4_RX |
| 111 | A8 | UART4_TX |
| 130 | G13 | UART5_RX |
| 101 | F17 | UART5_TX |
| 153 | E5 | UART6_RX |
| 151 | F5 | UART6_TX |
| 131 | B13 | UART7_RX |
| 130 | C13 | UART7_TX |
| 135 | B14 | UART8_RX |
| 134 | C14 | UART8_TX |
| 123 | A11 | CAN1_RX |
| 122 | B11 | CAN1_TX |
| 125 | D12 | CAN2_RX |
| 124 | E12 | CAN2_TX |
В качестве системы сборки для платы imx6_ull используется buildroot. Данная система сборки позваляет гибко собрать дистрибутив Embedded Linux для многих платформ. Официальный сайт системы сборки расположен по адресу https://buildroot.org/ . Для сборки проекта Вам понадобится ПК с дистрибутивом Linux (рекомендуем установить Ubuntu 18.04 или старше) или виртуальную машину с дистрибутивом Linux. Все дальнейшие действия по распоковки и сборки проекта будут производится на ПК с дистрибутивом Ubuntu 18.04.
В домашней папке пользователя создайте папку inmys_board. Скачайте архив проекта (файл imx6ull.tar.gz) в папку inmys_board. Распакуйте архив imx6_ull.tar.gz в данную папку. После распаковки должна появится папка imx6_ull. Перейдите к папке imx6_ull (cd ~/inmys_board/imx6_ull/). Состав BSP:
Перейдите в папке ~/inmys_board/imx6_ull/ и выполните скрипт ~/inmys_board/imx6_ull/install_board.sh imx6ull_board, скрипт настроит систему сборки. По завершению работы скрипта будут распакованы и созданы ряд папок buildroot-2019.05.1 - система сборки buildroot-external-inmys - BSP dl - папка куда будут скачиватся программы необходимые для сборки. imx6ull_board_output - папка с выходными файлами.
В BSP используется:
Перейдите в папку ~/inmys_board/imx6_ull/imx6ull_board_output и выполните команду make. После этого начнется сборка системы. По завершению сборки в папке ~/inmys_board/imx6_ull/imx6ull_board_output/images появятся файлы
Пароль и логин для входа root root.
Для загрузки som модуля с sd карты, необходимо записать загрузочный образ на sd карту. Подключите sd карту к компьютер.
перейдите
cd ~/inmys_board/imx6_ull/imx6ull_board_output
Замените название SD устройства sdX на тот который у вас в системе.
dd if=./images/sdcard_imx6ull_board.img of=/dev/sdX
Воспользуйтесь сознанной ранее SD картой и скопируйте на нее в папку /boot файлы u-boot-dtb.imx и rootfs.ubi
Загрузитесь с SD карты и после загрузки системы выполните команды:
# cd /boot # flash_erase /dev/mtd0 0 0 # mount -t debugfs none /sys/kernel/debug/ # kobs-ng init -x -w --chip_0_device_path=/dev/mtd0 ./u-boot-dtb.imx # flash_erase /dev/mtd1 0 0 # nandwrite -p /dev/mtd1 ./uImage # flash_erase /dev/mtd2 0 0 # nandwrite -p /dev/mtd2 ./imx6ull-inmys-som.dtb # flash_erase /dev/mtd4 0 0 # ubiformat /dev/mtd4 -f rootfs.ubi
После копирования выключите питания модуля и переведите модуль для загрузки с NAND.
Проверка наличия доступных CAN интерфейсов
# ifconfig
can0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP RUNNING NOARP MTU:16 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:26
can1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP RUNNING NOARP MTU:16 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:27
eth0 Link encap:Ethernet HWaddr 04:91:62:BC:83:17
inet addr:192.168.1.199 Bcast:0.0.0.0 Mask:255.255.255.0
inet6 addr: fe80::691:62ff:febc:8317/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2686 errors:0 dropped:0 overruns:0 frame:0
TX packets:27 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:177780 (173.6 KiB) TX bytes:1566 (1.5 KiB)
eth1 Link encap:Ethernet HWaddr 04:91:62:BC:91:7E
inet addr:192.168.0.199 Bcast:0.0.0.0 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Для прослушивания данных передаваемых по can можно воспользоваться консольной утилитой candump Пример для can0
# candump can0 can0 123 [8] 11 22 33 44 55 66 77 88 can0 123 [8] 11 22 33 44 55 66 77 88 can0 123 [8] 11 22 33 44 55 66 77 88 can0 123 [8] 11 22 33 44 55 66 77 88 can0 123 [8] 11 22 33 44 55 66 77 88 can0 123 [8] 11 22 33 44 55 66 77 88
Для проверки отладки передачи воспользуйтесь консольной программой cansend Пример для can0
# cansend can0 123#1122334455667788
Для временного изменения скорости работы can порта
# ifconfig can0 down # ip link set can0 up type can bitrate 125000
Для установки скорости по умолчанию отредактируйте файл /etc/network/interfaces
# vi /etc/network/interfaces
Проверка двух CAN (необходимо соединить can0 и can1)
# candump can0 & # cansend can1 123#1122334455667788 can0 123 [8] 11 22 33 44 55 66 77 88 # cansend can1 123#1122334455667788 can0 123 [8] 11 22 33 44 55 66 77 88 # cansend can1 123#1122334455667788 can0 123 [8] 11 22 33 44 55 66 77 88 # killall candump
На плате доступны Последовательные порты:
По умолчанию в сборке включена утилита picocom с помощью которой можно по передавать данные.
picocom -b 115200 /dev/ttymxc1
По умолчанию установлены статические IP адреса для обоих интерфейсов. Для изменения поведения(изменения IP адресов и под сетей или для выключения DHCP) необходимо отредактировать файл /etc/network/interfaces.
auto lo
iface lo inet loopback
auto can0
iface can0 inet manual
bitrate 125000
up /sbin/ip link set $IFACE down
up /sbin/ifconfig $IFACE txqueuelen 10
up /sbin/ip link set $IFACE type can bitrate 125000 restart-ms 10
up /sbin/ip link set $IFACE up
auto can1
iface can1 inet manual
bitrate 125000
up /sbin/ip link set $IFACE down
up /sbin/ifconfig $IFACE txqueuelen 10
up /sbin/ip link set $IFACE type can bitrate 125000 restart-ms 10
up /sbin/ip link set $IFACE up
# Config static ip
auto eth0
iface eth0 inet static
address 192.168.1.199
netmask 255.255.255.0
# Configure eth0 with dhcp IP
# auto eth0
# iface eth0 inet dhcp
# Config static ip
auto eth1
iface eth1 inet static
address 192.168.0.199
netmask 255.255.255.0
# Configure eth0 with dhcp IP
# auto eth1
# iface eth1 inet dhcp
Пример получения сетевых настроек по dhcp на eth0
auto lo
iface lo inet loopback
auto can0
iface can0 inet manual
bitrate 125000
up /sbin/ip link set $IFACE down
up /sbin/ifconfig $IFACE txqueuelen 10
up /sbin/ip link set $IFACE type can bitrate 125000 restart-ms 10
up /sbin/ip link set $IFACE up
auto can1
iface can1 inet manual
bitrate 125000
up /sbin/ip link set $IFACE down
up /sbin/ifconfig $IFACE txqueuelen 10
up /sbin/ip link set $IFACE type can bitrate 125000 restart-ms 10
up /sbin/ip link set $IFACE up
# Config static ip
#auto eth0
#iface eth0 inet static
# address 192.168.1.199
# netmask 255.255.255.0
# Configure eth0 with dhcp IP
auto eth0
iface eth0 inet dhcp
# Config static ip
auto eth1
iface eth1 inet static
address 192.168.0.199
netmask 255.255.255.0
# Configure eth0 with dhcp IP
# auto eth1
# iface eth1 inet dhcp