ROM-2820 user guide

From ESS-WIKI
Revision as of 04:02, 18 June 2024 by Phill.liu (talk | contribs)
Jump to: navigation, search

 

Contents

產品介紹

產品特性(Features)

  • NXP i.MX 93 Cortex-A55 Dual-core (up to 1.7GHz)
  • 1 x Arm Cortex-M33 core
  • 1 x Ethos®-U65 microNPU
  • 1 x 2GB LPDDR4X up to 3733MT/s
  • 1 x 4 lane MIPI-DSI
  • 2 x USB 2.0, 5 x UART, 4 x I2C, 16 x GPIO, 2 x PWM, 2 x CAN-FD 
  • Compact size form factor - OSM Size L (45 x 45 mm)
  • Support Ycoto Linux

 

產品官網連結(Product information Link)

ROM-2820

接口布局和尺寸(Layout and Sizes)

ROM-2820 接口布局圖 Board Dimension Layout 

RTENOTITLE       RTENOTITLE

 

ROM-ED91 接口布局圖 Board Dimension Layout

RTENOTITLE

主板内置插针式引脚排序方式 (Pin Header defination) 

Internal I/O, Jummper/Switch List:

Label Function Label Function
DCIN1401 12V DCIN connector SW1301 BT0_CFG1/4, BT1_CFG6/7/9/11
COMB RS232/422/485 SW1302 BT0_CFG0, BT1_CFG4/5, BOOT_SEL0#/1#, MOD_ON
COMA RS232/422/485 SW1203 UARTB_MODE0, UART_MODE1
LAN LAN Connector SW1204 UARTB_TERM, UARTB_SLEW
USB1 USB2.0 port Connector SW1206 U1205_RX_TERM, U1205_MODE2
USB0_OTG1 Micro USB Connector SW1201 UARTA_MODE0, UART_MODE1
AJ Line Out Connector SW1202 UARTA_TERM, UARTA_SLEW
MIC MIC Connector SW1205 U1202_RX_TERM, U1202_MODE2
CAN CAN Bus Connector SW1303 Power button
COME_DEBUG M-core debug console SW1304 Reset button
COMC COM I2S_CN I2S Connector
COMD A-core debug console CN501 CAN0_H, CAN0_L terminatl resistors
I2C1101 I2C Connector SD_SLT SD select
I2C1102 I2C Connector GPIO1101 GPIO header
CN601 M.2 Key E Connector SPI_CN1101 PWM header
CN701 MIPI-CSI Connector CN1101 SPI header
LVDS LVDS Connector LVDS_VDD_SLT LVDS power select select header
LVDS_BKLT_PWR LVDS Backlight Connector LVDS_BKLT_SLT LVDS Backlight power select header
BAT1 Battery Connector    

 

Rear I/O 

LED Function List 

Location Function
PD1405 +V5_MOD
PD1502 +V3.3
PD1503 +V5

 

Switch Settings 

 

接口引脚定義 (Connector Pin definitions)

机械尺寸  (Mechanical Characteristics)

ROM-2820

 


快速入门 (Quick Start)

系统下载 (OS Download)

  • 'Linux系统 (Linux OS)'   

Yocto 4.2: IoTGateway/BSP/Linux/iMX8/OS Support List 4.2 release ROM-2820 - ESS-WIKI (advantech.com.tw) 

 

 

Linux 燒錄方法 (Linux Flash eMMC Method)

使用Flash tool 燒錄鏡像到eMMC (Flash image into eMMC by Flash Tools) 

Step0: 檢查SD卡在Linux 環境的代號 (check SD card symbol in Linux system) 

ROM-2820 sd check.PNG

Step1: 創造一張可開機的SD 卡 (Create a bootable SD card)

Command :

sudo dd if=2820A1AIM36LIVD0042_iMX93_2G_2024-05-26.img of=/dev/sdh bs=1M conv=fsync
 

Step2: 將可開機的SD 卡插入底板SD卡卡槽(Plug the SD card into Carrier board 's SD card slot)

Step3: 確認開機選擇指撥開關

 

EMMC boot:  
SD boot:  

Step4:打開電源 和 終端機 (Turn on the Power & Terminal)

 

Step5: 複製flash tool到U盤中, 解壓縮flash tools檔案,(copy to USB Disk, then unzip the flash tools file)(Test with 32G SD card)

    複製檔案到U盤中 (Copy the flash file to USB Disk), 解壓縮flash tool到home目錄(Unzip the file to home)

  1. tar zxvf /run/media/New\ Volume-sda/2820A1AIM34LIVC0054_iMX8ULP_1G_flash_tool.tgz -C ~

 

5. 進入flsah tool下的mk_inand資歷夾, 執行指令./mksd-linux.sh /dev/mmcblk0燒錄image到eMMC(Connect USB Disk to ROM-2820 system, extract the flash tool and browser to mk_inand folder and execute flash shell script "./mksd-linux.sh /dev/mmcblk0"

解壓縮後如果沒有mksd-linux.sh檔案, 可以到以下連結下載並複製到mk_inand資料夾下(If there is no mksd-linux.sh file in mk_inand directory. Please download from the link below and place it in mk_inand directory:

mksd-linux.sh

ROM-2820 Device node
SD card /dev/mmcblk2
eMMC /dev/mmcblk0

 

6. 切換開機switch來設定成從eMMC開機(Change boot switch to boot from eMMC. Reboot system).

     

Debug 串口調試 (Debug port Setting)

以 Tera Term  为例介绍如何使用串口调试功能 ?'"`UNIQ--pre-00000001-QINU`"'?

Tera Term Tool 

RTENOTITLE

RTENOTITLE

Check the Sriel port in Device Manager (查看PC端的串口号):

if you can not identify the Serial device , please check your serial driver. 

RTENOTITLE

Debug port connection (串口連接) 

Log into Terminal  Tool (进入串口调试终端):

RTENOTITLE

 

Linux系统的基本使用(Linux System Basic Operating Method)

UUU 使用方法(USB Connection (OTG port))

Connect USB cable to USB OTG port.

Change boot switch to " " to boot from force recovery mode.

 

Serial download:  

 

Download uuu tool from link below:

Releases · nxp-imx/mfgtools (github.com)

The uuu verison we tested is 1.4.193: uuu

uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.4.193-0-ge56424c

Perpare uboot and image files below:

 

1. Download uuu

$ wget https://github.com/nxp-imx/mfgtools/releases/download/uuu_1.4.193/uuu
$ chmod a+x uuu
$  
$  

Type command below to flash eMMC:

$ sudo ./uuu -b emmc_all  

RTENOTITLE

 

 

 

Display Setting (ROM-2820)

      U-boot Command :

  • Display
=> setenv fdtfile imx8ulp-rom2820-a1-lt9211.dtb
=> saveenv
=> boot

RTENOTITLE

 

 

Audio(Audio Testing Methid)

Step 1: Check audio codec

# cat /proc/asound/cards

0 [sgtl5000       ]: sgtl5000 - sgtl5000 sgtl5000

 

 

Step 2: Audio codec (sgtl5000):

  1. Set MIC and headphone:

# amixer set Mic 100%

# amixer set Headphone 100%

Record and playback:

#  

Record

# arecord -D plughw:0,0 -r 16000 -f S16_LE ./f-16000.wav

Playback

# aplay -D plughw:0,0 f-16000.wav

 

M.2 WiFi/BT測試方法(M.2 WiFi/BT Testing Method)

  • Test Wi-Fi with  NXP IW-612 Module (SDIO Interface)

Step 1: Switch jumper SD2001~SD2006(2&3 jumper short)

RTENOTITLE

Step 2: Press enter after boot. The system will stop at u-boot, and change dtb file by below command.

# setenv fdtfile imx93-rom2820-a1-m2-sdio.dtb

# saveenv

# boot

RTENOTITLE

Step 3: Install driver by below command.

# modprobe moal mod_para=nxp/wifi_mod_para.conf

RTENOTITLE

Step 4: WIFI test command.

#ifconfig mlan0 up

#wpa_passphrase ${SSID} ${PASSWORD} > /tmp/wpa.conf

#wpa_supplicant -BDwext -imlan0 -c/tmp/wpa.conf

#udhcpc -b -i mlan0

RTENOTITLE

RTENOTITLE

Test Bluetooth with NXP IW-612 Module (UART Interface):

Step 1: Please refer to the 3.3.1 step 1.

Step 2: Please refer to the 3.3.1 step 2.

Step 3: Please refer to the 3.3.1 step 3.

Step 4: Bluetooth test command.

# modprobe btnxpuart

# hciconfig hci0 up

# bluetoothctl

# discoverable on

# pairable on

# scan on

 [NEW] FC:18:3C:8D:75:F4 myphone

# scan off

# pair FC:18:3C:8D:75:F4

# connect FC:18:3C:8D:75:F4

  • Test 4G with EWM-C401CQE01 Module (UART Interface)

Step1 :You need to connect two antennas.

Step2 : Uboot command 

  1. setenv fdtfile imx93-rom2820-a1-m2-sdio.dtb
  1. saveenv
  1. reset

Step 2: Install driver by below command.

 #modprobe moal mod_para=nxp/wifi_mod_para.conf

 Step3: 4G test command.

<span lang="EN-US" style="font-size:10.0pt"># stty -F /dev/ttyUSB1 speed 115200 -echo</span>

<span lang="EN-US" style="font-size:10.0pt"># cat /dev/ttyUSB1 &</span>

<span lang="EN-US" style="font-size:10.0pt"># echo "AT+CSQ" > /dev/ttyUSB1</span>
<span lang="EN-US" style="font-size:10.0pt">Console message:</span>
<span lang="EN-US" style="font-size:10.0pt">AT+CSQ</span>
<span lang="EN-US" style="font-size:10.0pt">+CSQ: 25,99</span>
<span lang="EN-US" style="font-size:10.0pt">OK</span>
<span lang="EN-US" style="font-size:10.0pt"># pppd connect 'chat -v -s -t 10 "" "AT" "" "ATDT*99#" "CONNECT" ""' user username password password /dev/ttyUSB2 460800 nodetach crtscts debug usepeerdns defaultroute &</span>
<span lang="EN-US" style="font-size:10.0pt"># ping 8.8.8.8</span>
<span lang="EN-US" style="font-size:10.0pt">64 bytes from 8.8.8.8: icmp_seq=1 ttl=56 time=222 ms

 

Serial Port測試方法(Serial Testing Method)(COM A/C)

  • RS-232 Loopback Test (eg. COMA: ttyLP0):

Step 1:. Connect loopback with COMA(ttyLP4)&COMB(ttyLP5)
Step 2: Run test command.

# stty -F /dev/ttyLP4 -echo -onlcr 115200

# cat /dev/ttyLP4 &

# echo "Serial Port Test" > /dev/ttyLP4

  • RS-485 Test:

Step 1: Test RS-485 with Adam-4520. Connect Adam-4520 with COMA with DB9 as the following(COMA(ttyLP4)&COMB(ttyLP5))

Adam-4520 RX- <-->ROM-2820 COMA DB9 Pin  1,
Adam-4520 RX+ <-->ROM-2820 COMA DB9 Pin  2,
Adam-4520 TX- <-->ROM-2820 COMB DB9 Pin   1,
Adam-4520 TX+ <--> ROM-2820 COMB DB9 Pin  2

Step 3: Run below command:

# stty -F /dev/ttyLP0 speed 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
# cat /dev/ttyLP0 &
# echo "Serial Test" > /dev/ttyLP0

Step 2 :Create the following file and save it as rs485.sh

<span lang="EN-US" style="font-size:10.0pt">#!/bin/sh</span>
<span lang="EN-US" style="font-size:10.0pt">i2cset -y -f 4 0x21 0x00 0x10</span>
<span lang="EN-US" style="font-size:10.0pt">i2cset -y -f 4 0x21 0x01 0x01</span>
<span lang="EN-US" style="font-size:10.0pt">i2cset -y -f 4 0x21 0x02 0xdf</span>
<span lang="EN-US" style="font-size:10.0pt">i2cset -y -f 4 0x21 0x03 0xfd</span>
<span lang="EN-US" style="font-size:10.0pt">i2cset -y -f 4 0x21 0x04 0x00</span>
<span lang="EN-US" style="font-size:10.0pt">i2cset -y -f 4 0x21 0x05 0x00</span>
<span lang="EN-US" style="font-size:10.0pt">i2cset -y -f 4 0x21 0x06 0xcf</span>
<span lang="EN-US" style="font-size:10.0pt">i2cset -y -f 4 0x21 0x07 0xfc</span>

Step 3: Run below command:

<span lang="EN-US" style="font-size:10.0pt"># sudo chmod 775 rs485.sh</span>
<span lang="EN-US" style="font-size:10.0pt">#</span><span lang="EN-US" style="font-size:10.0pt"> ./rs485.sh</span>
<span lang="EN-US" style="font-size:10.0pt">#</span><span lang="EN-US" style="font-size:10.0pt"> stty -F /dev/ttyLP4 -echo -onlcr 115200</span>
<span lang="EN-US" style="font-size:10.0pt">#</span><span lang="EN-US" style="font-size:10.0pt"> cat /dev/ttyLP4 &</span>
<span lang="EN-US" style="font-size:10.0pt">#</span><span lang="EN-US" style="font-size:10.0pt"> echo "Serial Port Test" > /dev/ttyLP4</span>

Step 4: You need to open two terminals: one to connect to the debug port of the ROM2820, and the other to connect to the Adam-4520.

Step 5:You can send data from the ROM2820's debug port to the Adam-4520, and you can also input text from the Adam-4520's terminal using the keyboard so that the ROM2820's debug port can receive it.

RTENOTITLE

I2C測試方法(I2C Testing Method)

 Step 1: Test command

# i2cdetect -l

i2c-0   i2c             44340000.i2c                            I2C adapter

i2c-1   i2c             44350000.i2c                            I2C adapter

i2c-2   i2c             42530000.i2c                            I2C adapter

i2c-4   i2c             426b0000.i2c                            I2C adapter

i2c-7   i2c             426e0000.i2c                            I2C adapter

 

USB測試方法(USB Testing Method)

USB disk test (USB 2.0)


Step 1:Issue the following command (lsusb -t) after inserting a USB disk into the USB 2.0 port to check if the USB device is listed.

Step 2: Test (eg. if usb disk is /dev/sda)

<span lang="EN-US" style="font-size:10.0pt"># dd if=/dev/urandom of=data bs=1 count=1024</span>
<span style="line-height:103%"><span lang="EN-US" style="font-size:10.0pt"><span style="line-height:103%"># dd if=/dev/sda of=backup bs=1 count=1024 skip=4096 # dd if=data of=/dev/sda bs=1 seek=4096</span></span></span>
<span style="line-height:103%"><span lang="EN-US" style="font-size:10.0pt"><span style="line-height:103%"># dd if=/dev/sda of=data1 bs=1 count=1024 skip=4096 # diff data data1</span></span></span>
<span lang="EN-US" style="font-size:10.0pt"># dd if=backup of=/dev/sda bs=1 seek=4096</span>

 

RTC測試方法(RTC Testing Method)

Step 1: Set system time to current, then write to RTC

root@imx93rom2820a1:~# date 010100002025 && hwclock -w && date

Step 2: Set one incorrect time, then read time from RTC to verify

root@imx93rom2820a1:~# hwclock -r && date

Step 3:  Restore the RTC time to system time

<span style="line-height:103%"><span lang="EN-US" style="font-size:10.0pt"><span style="line-height:103%">root@imx93rom2820a1:~# date </span></span></span>

eMMC/SD測使方法(eMMC/SD Testing Method)

Device Routes
eMMC: /dev/mmcblk0 
SD: /dev/mmcblk2

Test (eg. emmc)

Step 1: Test command:

# dd if=/dev/urandom of=data bs=1 count=1024
# dd if=/dev/mmcblk0 of=backup bs=1 count=1024 skip=4096
# dd if=data of=/dev/mmcblk0 bs=1 seek=4096
# dd if=/dev/mmcblk0 of=data1 bs=1 count=1024 skip=4096
# diff data data1
# dd if=backup of=/dev/mmcblk0 bs=1 seek=4096

 

乙太網路使用方法(Ethernent Testing Method)

Command : ifconfig 

 

Command: Ping - I eth1 8.8.8.8  or Ping - I eth0 8.8.8.8  

 

 

 

GPIO使用方法(GPIO Operating Method)

GPIO pin:

CPU pin to GPIO GPIO 1101 Number
GPIO1(shared pin) 1 496
GPIO2 2 497
GPIO3 3 498
GPIO4 4 499
GPIO5 5 500
GPIO6 6 501
GPIO7 7 502
GPIO8 8 503
GPIO9 9 504
GPIO10 10 505
GPIO11 11 506
GPIO12 12 507

GPIO loop test:

Connect GPIO pin#3 and GPIO pin#4

root@imx93rom2820a1:/# echo 498 > /sys/class/gpio/export

root@imx93rom2820a1:/# echo 499 > /sys/class/gpio/export

root@imx93rom2820a1:/# echo out > /sys/class/gpio/gpio498/direction

root@imx93rom2820a1:/# echo in  > /sys/class/gpio/gpio499/direction

root@imx93rom2820a1:/#cat /sys/class/gpio/gpio498/value

0

root@imx93rom2820a1:/# echo 1 > /sys/class/gpio/gpio498/value

root@imx93rom2820a1:/# cat /sys/class/gpio/gpio498/value

1

RTENOTITLE

Connect GPIO pin#5 and GPIO pin #6

root@imx93rom2820a1:/# echo 500 > /sys/class/gpio/export

root@imx93rom2820a1:/# echo 501 > /sys/class/gpio/export

root@imx93rom2820a1:/# echo out > /sys/class/gpio/gpio500/direction

root@imx93rom2820a1:/# echo in  > /sys/class/gpio/gpio501/direction

root@imx93rom2820a1:/# cat /sys/class/gpio/gpio500/value

0

root@imx93rom2820a1:/# echo 1 > /sys/class/gpio/gpio500/value

root@imx93rom2820a1:/# cat /sys/class/gpio/gpio501/value

1

RTENOTITLE

Connect GPIO pin#7 and GPIO pin#8

root@imx93rom2820a1:/# echo 502 > /sys/class/gpio/export

root@imx93rom2820a1:/# echo 503 > /sys/class/gpio/export

root@imx93rom2820a1:/# echo out > /sys/class/gpio/gpio502/direction

root@imx93rom2820a1:/# echo in  > /sys/class/gpio/gpio503/direction

root@imx93rom2820a1:/# cat /sys/class/gpio/gpio502/value

0

root@imx93rom2820a1:/# echo 1 > /sys/class/gpio/gpio502/value

root@imx93rom2820a1:/# cat /sys/class/gpio/gpio503/value

1

RTENOTITLE

Connect GPIO pin#9 and GPIO pin#10

root@imx93rom2820a1:/# echo 504 > /sys/class/gpio/export

root@imx93rom2820a1:/# echo 505 > /sys/class/gpio/export

root@imx93rom2820a1:/# echo out > /sys/class/gpio/gpio504/direction

root@imx93rom2820a1:/# echo in  > /sys/class/gpio/gpio505/direction

root@imx93rom2820a1:/# cat /sys/class/gpio/gpio504/value

0

root@imx93rom2820a1:/# echo 1 > /sys/class/gpio/gpio504/value

root@imx93rom2820a1:/# cat /sys/class/gpio/gpio505/value

1

RTENOTITLE

Connect GPIO pin#11 and GPIO pin#12

root@imx93rom2820a1:/# echo 506 > /sys/class/gpio/export

root@imx93rom2820a1:/# echo 507 > /sys/class/gpio/export

root@imx93rom2820a1:/# echo out > /sys/class/gpio/gpio506/direction

root@imx93rom2820a1:/# echo in  > /sys/class/gpio/gpio507/direction

root@imx93rom2820a1:/# cat /sys/class/gpio/gpio507/value

0

root@imx93rom2820a1:/# echo 1 > /sys/class/gpio/gpio506/value

root@imx93rom2820a1:/# cat /sys/class/gpio/gpio507/value

1

RTENOTITLE

Camera使用方法(Camera Testing Method)

MIPI-CSI0 (Tested with OV5640 + mini-SAS to MIPI-CSI Cable): OV5640 CSI (CN701): Connect OV5640 camera to EG-55 CAM3

Step 1: Take pictures

# gst-launch-1.0 v4l2src num-buffers=1 device=/dev/video0 ! video/x-raw,width=640,height=480 ! jpegenc ! filesink location=sample.jpeg

Step 2: View on panel

# gplay-1.0 sample.jpeg

 

PWM測試方法(PWM Testing Method)

TBD

 

CAN Bus

Step 1: Connect can1 and can2

Step 2 Test command

# ip link set can0 up type can bitrate 125000

# ip link set can1 up type can bitrate 125000

# candump can1 &

# cansend can0 12345678#123412341234

The following shows the result

can1  12345678   [6]  12 34 12 34 12 34

RTENOTITLE

 

LPUART

Step 1: Change ROM-ED91 SW1203 to '01'.
Step 2: Connect COM-B and COM-E to PC.
Step 3: Set RTS/CTS flow control for COM-B in Putty.exe

RTENOTITLE

Step 4: After select the test mode ‘U’ to verify LPUART2, you will see below screen.

 

Step 5: If tester can input any characters/strings and show that at COM-B means test successful.

遠程訪問及文件傳輸(Remote Access and File Transimmion)

              查看主板IP位址 ( Chech IP Address ):​ ?'"`UNIQ--pre-00000002-QINU`"'?

 

SSH访问及文件传输

SSH Remote Log into Device 

  • SSH远程登录,以putty选择putty.exe(或者使用Xshell、SecureCRT等类似软件)
  • 需要设置远程设备的IP、通讯端口(默认22)、通讯方式,登录后验证用户名密码

RTENOTITLE

通用方法(General Method)

查看CPU温度(Check CPU Temperature)

 

查看内存容量(Check Memory Capacity)

 

查看存储容量(Check Storage Capacity)

 

 

 

設置RTC (RTC Setting) 

查看系統時間 (Check the system) 

root@imx8ulprom2820a1:/# timedatectl
[   41.402592] kauditd_printk_skb: 6 callbacks suppressed
[   41.402611] audit: type=1334 audit(45.332:16): prog-id=15 op=LOAD
[   41.417884] audit: type=1334 audit(45.344:17): prog-id=16 op=LOAD
               Local time: Thu 1970-01-01 00:00:46 UTC
           Universal time: Thu 1970-01-01 00:00:46 UTC      
                 RTC time: Thu 1970-01-01 00:00:45            <-----  Real-Time Clock,RTC 
                Time zone: Universal (UTC, +0000)              <------ Time zone 目前
System clock synchronized: no
              NTP service: active
              RTC in local TZ: no         

Note : 

Change Time Zone 

           Local time: Fri 2024-05-03 09:07:42 CST
           Universal time: Fri 2024-05-03 01:07:42 UTC
                RTC time: Fri 2024-05-03 09:07:42
                Time zone: Asia/Taipei (CST, +0800)
System clock synchronized: yes
              NTP service: active
              RTC in local TZ: yes

Time Zone List 

 

$ sudo timedatectl list-timezones

Africa/Abidjan

Africa/Accra

Africa/Addis_Ababa

Africa/Algiers

Africa/Asmara

Africa/Bamako

Africa/Bangui

Africa/Banjul

Africa/Bissau

Africa/Blantyre

Africa/Brazzaville

Africa/Bujumbura

Africa/Cairo

Africa/Casablanca

Linux BSP編譯方法(Linux BSP Compile Method)

Yocto 4.2