Difference between revisions of "ROM-2860 windowsonarm user guide"

From ESS-WIKI
Jump to: navigation, search
(Created page with " == <br/> == '''產品介紹(Product introduction )''' == == === '''產品特性(Product Features)''' === *MediaTek Genio 1200 4核心A78和4核心A55 <br/> *內建LPDD...")
 
Line 1: Line 1:
  
== <br/> == '''產品介紹(Product introduction )''' == ==
+
== '''產品介紹(Product introduction )''' ==
  
 
=== '''產品特性(Product Features)''' ===
 
=== '''產品特性(Product Features)''' ===
Line 26: Line 26:
 
Jumper list:
 
Jumper list:
  
{| border="1" cellpadding="1" cellspacing="" 1"&lt;br"=""
+
{| border="1" cellpadding="1" cellspacing=""
 
|-
 
|-
 
| &nbsp; Connectot list:  
 
| &nbsp; Connectot list:  
{| border="1" cellpadding="1" cellspacing="" 1"&lt;br"=""
+
{| border="1" cellpadding="1" cellspacing=""
 
|-
 
|-
 
| &nbsp;  
 
| &nbsp;  
Line 148: Line 148:
 
UIO Extension 1(UIO1):
 
UIO Extension 1(UIO1):
  
{| border="1" cellpadding="1" cellspacing="" 1"&lt;br"=""
+
{| border="1" cellpadding="1" cellspacing=""
 
|-
 
|-
 
| UIO Extension2 (UIO2):  
 
| UIO Extension2 (UIO2):  
 
*'''GPIO Loopback Test (Using GPIO2 and GPIO4 as examples):'''&nbsp;  
 
*'''GPIO Loopback Test (Using GPIO2 and GPIO4 as examples):'''&nbsp;  
  
{| border="1" cellpadding="1" cellspacing="" 1"&lt;br"=""
+
{| border="1" cellpadding="1" cellspacing=""
 
|-
 
|-
 
| Step 1: Connect GPIO2 and GPIO4<br/> Step 2: Export GPIO interface  
 
| Step 1: Connect GPIO2 and GPIO4<br/> Step 2: Export GPIO interface  
 
#echo 315 > /sys/class/gpio/export<br/> # echo 316 > /sys/class/gpio/export&nbsp;  
 
#echo 315 > /sys/class/gpio/export<br/> # echo 316 > /sys/class/gpio/export&nbsp;  
Step 3: Set GPIO direction  
+
 
 +
Step 3: Set GPIO direction
 +
 
 
#echo out > /sys/class/gpio/gpio1/direction<br/> # echo in > /sys/class/gpio/gpio2/direction&nbsp;  
 
#echo out > /sys/class/gpio/gpio1/direction<br/> # echo in > /sys/class/gpio/gpio2/direction&nbsp;  
Step 4: Read value and set output value than check  
+
 
 +
Step 4: Read value and set output value than check
 +
 
 
#cat /sys/class/gpio/gpio2/value 0<br/> # echo 1 > /sys/class/gpio/gpio1/value<br/> # cat /sys/class/gpio/gpio2/value<br/> 1&nbsp;  
 
#cat /sys/class/gpio/gpio2/value 0<br/> # echo 1 > /sys/class/gpio/gpio1/value<br/> # cat /sys/class/gpio/gpio2/value<br/> 1&nbsp;  
&nbsp;  
+
 
 +
&nbsp;
 +
 
 
=== '''Watchdog使用方法(Watchdog Testing Method):''' ===
 
=== '''Watchdog使用方法(Watchdog Testing Method):''' ===
  
Line 180: Line 186:
 
'''Switch to root: $ sudo su'''
 
'''Switch to root: $ sudo su'''
  
{| border="1" cellpadding="1" cellspacing="" 1"&lt;br"=""
+
{| border="1" cellpadding="1" cellspacing=""
 
|-
 
|-
 
| (Note: gpio 323 & gpio 324 need to set the gpio 345 to high) &nbsp;  
 
| (Note: gpio 323 & gpio 324 need to set the gpio 345 to high) &nbsp;  
{| border="1" cellpadding="1" cellspacing="1" style="" width:"=""
+
{| border="1" cellpadding="1" cellspacing="1" style=""
 
|-
 
|-
 
| &nbsp;  
 
| &nbsp;  
 
=== '''UIO-4032使用方法(UIO-4032 Testing Method):''' ===
 
=== '''UIO-4032使用方法(UIO-4032 Testing Method):''' ===
  
{| border="1" cellpadding="1" cellspacing="" 1"&lt;br"=""
+
{| border="1" cellpadding="1" cellspacing=""
 
|-
 
|-
 
| COM_3:ttyS3 COM_4:ttyS1
 
| COM_3:ttyS3 COM_4:ttyS1
Line 197: Line 203:
 
=== '''UIO-4034使用方法(UIO-4034 Testing Method):''' ===
 
=== '''UIO-4034使用方法(UIO-4034 Testing Method):''' ===
  
{| border="1" cellpadding="1" cellspacing="" 1"&lt;br"=""
+
{| border="1" cellpadding="1" cellspacing=""
 
|-
 
|-
 
| COM_3:ttyS3 COM_4:ttyS1
 
| COM_3:ttyS3 COM_4:ttyS1
Line 212: Line 218:
 
=== '''UIO-4038使用方法(UIO-4038 Testing Method):''' ===
 
=== '''UIO-4038使用方法(UIO-4038 Testing Method):''' ===
  
{| border="1" cellpadding="1" cellspacing="" 1"&lt;br"=""
+
{| border="1" cellpadding="1" cellspacing=""
 
|-
 
|-
 
| &nbsp; &nbsp;  
 
| &nbsp; &nbsp;  
 
=== '''UIO-4040使用方法(UIO-4040 Testing Method):''' ===
 
=== '''UIO-4040使用方法(UIO-4040 Testing Method):''' ===
  
{| border="1" cellpadding="1" cellspacing="" 1"&lt;br"=""
+
{| border="1" cellpadding="1" cellspacing=""
 
|-
 
|-
 
| Disk /dev/sda: 119.24 GiB, 128035676160 bytes, 250069680 sectors<br/> Disk model: UIO-4040<br/> Units: sectors of 1 * 512 = 512 bytes<br/> Sector size (logical/physical): 512 bytes / 512 bytes<br/> I/O size (minimum/optimal): 512 bytes / 512 bytes &nbsp; &nbsp; &nbsp; &nbsp;  
 
| Disk /dev/sda: 119.24 GiB, 128035676160 bytes, 250069680 sectors<br/> Disk model: UIO-4040<br/> Units: sectors of 1 * 512 = 512 bytes<br/> Sector size (logical/physical): 512 bytes / 512 bytes<br/> I/O size (minimum/optimal): 512 bytes / 512 bytes &nbsp; &nbsp; &nbsp; &nbsp;  
Line 249: Line 255:
 
|}
 
|}
  
{| border="1" cellpadding="1" cellspacing="" 1"&lt;br"=""
+
{| border="1" cellpadding="1" cellspacing=""
 
|-
 
|-
 
| &nbsp;
 
| &nbsp;

Revision as of 08:26, 10 December 2024

Contents

產品介紹(Product introduction )

產品特性(Product Features)

  • MediaTek Genio 1200 4核心A78和4核心A55 
    *內建LPDDR4 8GB,4000MT/s記憶體 
    *HDMI 4k60fps,1 x 雙通道24位元LVDS 
    *1 x 4線RS-232/422/485,2 x USB3.2 Gen1 By 1,2 x USB2.0,1 x Micro SD,1 x Mic. in / Line out 
    *1 x M.2 3052 Key B for 5G,1 x M.2 2230 Key E Slot for WiFi/BT 
    *支援UIO40-Express I/O板擴充 
    *支援Ubuntu Linux和Android 

 

產品官網連結(Product official website link)

 

 

硬件接口說明(Hardware interface introduction)

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

RSB-3810 接口布局圖 Board Dimension Layout

RTENOTITLE

RTENOTITLE

Jumper list:

  Connectot list:
 

接口引脚定義 (Pin definitions)

机械尺寸 (Mechanical Characteristics)

RTENOTITLE

 

 


快速入门 (Quick Start)

系统下载 (OS Download)

Ubuntu recovery image

 

Debug port 連接與設定(Debug Port Connection and Setting)

1. RSB-3810 debug port is shared with COM1. Please connect the debug console cable 1700034345-01 & 1700019474. Then connect the USB-to-RS232 Cable to your PC terminal. Connect the cable to COM1 pin header to the nearby the HDMI connector.

RTENOTITLE

2. RSB-3810 can communicate with a host server using serial cables. Common serial communication programs such as HyperTerminal, Tera Term or PuTTY can be used in such applications. The example demonstrated below describes the serial terminal setup using Tera Term on a Windows host: Open Tera Term on your Windows PC, set the Baud rate to 921600.

 

燒錄方法 (Flash eMMC Method)

Recovery Ubuntu:

Prepare:

  1. Prepare a Ubuntu 22.04 recovery image. 
    #Follow the link to install the MediaTek flash tool “genio-tools on a Ubuntu 22.04 x86 PC. 
    #USB typeA to typeA cable 
    #USB typeA port, download and reset button information (screenshot below mark by color red) 

RTENOTITLERSB-3810-download-reset.png

Flash steps:

  1. To connect USB typeA to typeA cable to the host computert and the RSB-3810 typeA port 
    #To extract the Ubuntu recovery image: 
    #cd recovery package 
    #Run "genio-flash" 
    #Turn the RSB-3810 board power on 
    #press Download button and hold it 
    #Press and release the reset button 
    #Release the Download button after the tool outputs "< waiting for any device >" 
    #The flash tool will continue to flash recovery image. 

RSB-3810U-genio-flash.pngRSB-3810U-download-reset.png

RSB-3810U-release-download.pngRSB-3810U-flash-successfully.png

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

=== I2C Setting (RSB-3810) ===
Step 1: install required software
sudo apt update
sudo apt install i2c-tools
Step 2: check if the devices are on the specified bus
sudo i2cdetect -y -r 4
 
RTENOTITLE

 

Display Setting (RSB-3810)

HDMI TX:

Single Display HDMI (default)
u-boot:
setenv DISPLAY hdmi.dtbo
saveenv
reset
 
Dual Channel LVDS panel G215HVN0
u-boot:
setenv DISPLAY lvds0.dtbo
saveenv
reset
 
ubuntu: (root permission)
sudo i2cset -f -y 2 0x20 0x81 0x0b b
sudo i2cset -f -y 2 0x20 0x84 0x01 b
sudo i2cset -f -y 2 0x20 0x85 0x00 b
sudo i2cset -f -y 2 0x20 0xe8 0x01 0x78 0x45 0x56 i
sudo reboot
 
Single Channel LVDS panel G070VW01
u-boot:
setenv DISPLAY lvds2.dtbo
saveenv
reset
 
ubuntu: (root permission)
sudo i2cset -f -y 2 0x20 0x81 0x00 b
sudo i2cset -f -y 2 0x20 0x84 0x05 b
sudo i2cset -f -y 2 0x20 0x85 0x02 b
sudo i2cset -f -y 2 0x20 0xe8 0x01 0x78 0x45 0x56 i
sudo reboot
 
Dual Display HDMI + Dual Channel LVDS panel G215HVN0
u-boot:
setenv DISPLAY hdmi.dtbo lvds0.dtbo
saveenv
reset
 
ubuntu:
sudo i2cset -f -y 2 0x20 0x81 0x0b b
sudo i2cset -f -y 2 0x20 0x84 0x01 b
sudo i2cset -f -y 2 0x20 0x85 0x00 b
sudo i2cset -f -y 2 0x20 0xe8 0x01 0x78 0x45 0x56 i
sudo reboot
 
HDMI + Single Channel LVDS panel G070VW01
u-boot:
setenv DISPLAY hdmi.dtbo lvds2.dtbo
saveenv
reset
 
ubuntu:
sudo i2cset -f -y 2 0x20 0x81 0x00 b
sudo i2cset -f -y 2 0x20 0x84 0x05 b
sudo i2cset -f -y 2 0x20 0x85 0x02 b
sudo i2cset -f -y 2 0x20 0xe8 0x01 0x78 0x45 0x56 i
sudo reboot
 
 

Audio使用方法(Audio Testing Method):

HDMI Audio
TX: Setting-->Sound-->Output Device: HDMI/DP output - Build-in Audio-->Test
 
Line-Out/Speaker
TX: Setting-->Sound-->Output Device: Earphone speaker - Build-in Audio-->Test
 
Mic-In
sudo add-apt-repository ppa:audio-recorder/ppa
sudo add-apt-repository ppa:ubuntuhandbook1/audio-recorder
sudo apt install audio-recorder
 
Source: Build-in Audio Earphone microphone +

 

M.2使用方法(M.2 Testing Method): 

KeyE:

PCIe 3.0
lspci # WIFI
 
USB 2.0
lsusb # Bluetooth
sudo cat /sys/kernel/debug/usb/devices
 
KeyB: USB 3.0
lsusb # 5G
 
*WiFi  Setting-->Network
ifconfig
ping -c4 8.8.8.8
 
*Bluetooth 

Setting-->Bluetooth

  • 5G 
    mmcli --list-modems
    mmcli -m 0
     
     

Serial port使用方法(Serial port Testing Method):

Use the on-board UART (/dev/ttyS2) as example

  • RS-232 Loopback Test: 

1. Setting:

sudo bash -c "
echo 328 > /sys/class/gpio/export 2> /dev/null
echo 327 > /sys/class/gpio/export 2> /dev/null
echo out > /sys/class/gpio/gpio328/direction
echo out > /sys/class/gpio/gpio327/direction
# default settings
echo 1 > /sys/class/gpio/gpio328/value
echo 0 > /sys/class/gpio/gpio327/value
"

2. Test:
# sudo stty -F /dev/ttyS2 -echo -onlcr 115200 raw
# echo "RS-232 test" | sudo tee /dev/ttyS2 > /dev/null
 
*RS-422 Test: 

1. Setting:

Adam-4520 RX- <--> DB9 Pin 1
Adam-4520 RX+ <--> DB9 Pin 2
Adam-4520 TX- <--> DB9 Pin 4
Adam-4520 TX+ <--> DB9 Pin 3

sudo bash -c "
echo 328 > /sys/class/gpio/export 2> /dev/null
echo 327 > /sys/class/gpio/export 2> /dev/null
echo out > /sys/class/gpio/gpio328/direction
echo out > /sys/class/gpio/gpio327/direction
echo 1 > /sys/class/gpio/gpio328/value
echo 1 > /sys/class/gpio/gpio327/value
"

2. Test:
# sudo stty -F /dev/ttyS2 speed 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke 
# echo "RS-422 Test" > /dev/ttyS2
 
*RS-485 Test: 

1. Setting:
Adam-4520 Data- <--> DB9 Pin 1
Adam-4520 Data+ <--> DB9 Pin 2

sudo bash -c "
echo 328 > /sys/class/gpio/export 2> /dev/null
echo 327 > /sys/class/gpio/export 2> /dev/null
echo out > /sys/class/gpio/gpio328/direction
echo out > /sys/class/gpio/gpio327/direction
echo 0 > /sys/class/gpio/gpio328/value
echo 1 > /sys/class/gpio/gpio327/value
"

2. Test:
# sudo stty -F /dev/ttyS2 speed 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke 
# echo "RS-485 Test" > /dev/ttyS2
 
=== I2C使用方法(I2C Test Method): ===

Step 1: Check i2c device

Step 2: I2c set and get

console:/ # i2cdetect -y -a 4

 

USB: USB disk test (USB 2.0/ USB 3.2 Gen 1 By 1 port)

check if the USB device is mount automatically
# lsblk
 
RTENOTITLE if USB device is not mount automatically
# use /dev/sda1 as example
# sudo mkdir -p /mnt/tmp
# sudo mount /dev/sda1 /mnt/tmp
 
 

 

RTC使用方法(RTC Test Method):

Step 1: Set system time to current, then write to RTC
# date 113009362023 && hwclock -w && date
 
Step 2: Set one incorrect time, then read time from RTC to verify
# date 113009362023 && hwclock -r
 
Step 3: Restore the RTC time to system time
# date 113009362023 && hwclock -r
 
 

eMMC/SD/SPI flash使用方法(eMMC/SD/SPI flash Testing Method):

SD
lsusb -t # get correct device node, use /dev/mmcblk1p1 as example
sudo mkdir -p /mnt/tmp
sudo mount /dev/ mmcblk1p1 /mnt/tmp
 
eMMC
Ubuntu OS here

Ethernet使用方法(Ethernet Testing Method):

Step 1: Check the Ethernet device
# ifconfig
 
RTENOTITLE Step 2: Connect the cable and ping test (eg. Eth0)
# ping -c4 8.8.8.8
 
RTENOTITLE

 

GPIO使用方法(GPIO Testing Method):

  • GPIO Pins: 

UIO Extension 1(UIO1):

UIO Extension2 (UIO2):
  • GPIO Loopback Test (Using GPIO2 and GPIO4 as examples): 
Step 1: Connect GPIO2 and GPIO4
Step 2: Export GPIO interface
  1. echo 315 > /sys/class/gpio/export
    # echo 316 > /sys/class/gpio/export 

Step 3: Set GPIO direction

  1. echo out > /sys/class/gpio/gpio1/direction
    # echo in > /sys/class/gpio/gpio2/direction 

Step 4: Read value and set output value than check

  1. cat /sys/class/gpio/gpio2/value 0
    # echo 1 > /sys/class/gpio/gpio1/value
    # cat /sys/class/gpio/gpio2/value

 

Watchdog使用方法(Watchdog Testing Method):

RTENOTITLE

  • Internal Watchdog: 
System will reboot after 30 sec
# echo 1 | sudo tee /dev/watchdog # or /dev/watchdog0
 
*External Watchdog:  System will reboot after 60 sec
# echo 1 | sudo tee /dev/watchdog1
 
=== LED ON/OFF 使用方法(LED ONOFF Testing Method): === LED ON:
# echo 255 | sudo tee /sys/class/leds/user/brightness
 
LED OFF:
# echo 0 | sudo tee /sys/class/leds/user/brightness
 
 

 

 

 

 

UIO-4030使用方法(UIO-4030 Testing Method):

Switch to root: $ sudo su

(Note: gpio 323 & gpio 324 need to set the gpio 345 to high)  
 

UIO-4032使用方法(UIO-4032 Testing Method):

COM_3:ttyS3 COM_4:ttyS1
-
| # stty -F /dev/ttyS1 -echo -onlcr 921600 raw # cat /dev/ttyS1 &
# echo "Serial Port Test" > /dev/ttyS1
or
# microcom -s 921600 -X /dev/ttyS1
|-
| 2
| USB
| USB disk write/read/verify pattern
|-
| 3
| Ethernet
| # ifconfig
# ping 8.8.8.8
|-
| 4
| EEPROM
| # echo -n $'\x06\x05\x04\x03\x02\x01' > /data/test1
# dd if=/data/test1 of=/sys/bus/i2c/devices/3-0050/eeprom
# dd if=/sys/bus/i2c/devices/3-0050/eeprom of=/data/test2 conv=fsync
|}

 

UIO-4034使用方法(UIO-4034 Testing Method):

COM_3:ttyS3 COM_4:ttyS1
-
| $ stty -F /dev/ttyS1 -echo -onlcr 921600 raw
$ cat /dev/ttyS1 &
$ echo "Serial Port Test" > /dev/ttyS1
or
$ microcom -s 921600 -X /dev/ttyS1
|-
| 2
| CAN Bus

NA
   

UIO-4036使用方法(UIO-4036 Testing Method):

(Note: Please contact Advantech to get the kernel packages for enabling the UIO-4036 Ethernet switch)

UIO-4036_hardware_enabled:

UIO-4038使用方法(UIO-4038 Testing Method):

   

UIO-4040使用方法(UIO-4040 Testing Method):

Disk /dev/sda: 119.24 GiB, 128035676160 bytes, 250069680 sectors
Disk model: UIO-4040
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes        

安裝AI SDK使用方法(Install AI SDK):

Install AI SDK

Install Genio Hardware Support Packages

AI Processor Drivers

HDMI-RX

Install Mediatek hdmirx-tool:
$ sudo apt-add-repository ppa:mediatek-genio/genio-public<br/> $ sudo apt install mediatek-apusys-firmware-genio1200<br/> $ sudo apt install mediatek-hdmirx-tool

 

 

通用方法(General Method)

=== 讀取溫度(Read Thermal): ===
$ i=0 ; while $i -lt 18 ; do (type=`cat /sys/class/thermal/thermal_zone$i/type` ; temp=`cat /sys/class/thermal/thermal_zone$i/temp` ; echo "$i $type : $temp"); i=$((i+1));done ; sleep 0.1;
 
loop:
$ while; do i=0 ; while $i -lt 18 ; do (type=`cat /sys/class/thermal/thermal_zone$i/type` ; temp=`cat /sys/class/thermal/thermal_zone$i/temp` ; echo "$i $type : $temp"); i=$((i+1));done ; sleep 0.1; done
 
*thermal_zone0通常會是soc_max :會取soc內部最高的溫度當作數值(Use the highest thermal in the SOC) 
*cpu_big1-4對應的就會是A78 (Should A78 1-4 core)<u5:p></u5:p> 
*cpu_little1-4對應的就會是A55 (Should A55 1~4 core)<u5:p></u5:p> 

 

BSP編譯方法(BSP Compile Method)

NA