Difference between revisions of "RSB-3810 user guide Android11"

From ESS-WIKI
Jump to: navigation, search
(UIO-4030使用方法(UIO-4030 Testing Method):)
(176 intermediate revisions by the same user not shown)
Line 18: Line 18:
 
[https://www.advantech.com/zh-tw/products/5912096e-f242-4b17-993a-1acdcaada6f6/rsb-3810/mod_5e027854-f47d-45e5-bac2-0413929f345d '''RSB-3810''']
 
[https://www.advantech.com/zh-tw/products/5912096e-f242-4b17-993a-1acdcaada6f6/rsb-3810/mod_5e027854-f47d-45e5-bac2-0413929f345d '''RSB-3810''']
  
 +
 
  
 
== '''硬件接口說明(Hardware interface introduction)''' ==
 
== '''硬件接口說明(Hardware interface introduction)''' ==
  
 
=== '''接口布局和尺寸(Layout and Sizes)''' ===
 
=== '''接口布局和尺寸(Layout and Sizes)''' ===
 
 
 
 
 
 
 
  
 
=== '''RSB-3810 接口布局圖 Board Dimension Layout''' ===
 
=== '''RSB-3810 接口布局圖 Board Dimension Layout''' ===
Line 113: Line 107:
 
| Download Key
 
| Download Key
 
|}
 
|}
 +
 +
 
  
 
=== '''接口引脚定義 (Pin definitions)''' ===
 
=== '''接口引脚定義 (Pin definitions)''' ===
Line 119: Line 115:
 
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-BL1.png BL1 (LVDS Backlight 1)]  
 
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-BL1.png BL1 (LVDS Backlight 1)]  
 
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-COM1.png COM1 (Debug Console + RS232/RS485)]  
 
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-COM1.png COM1 (Debug Console + RS232/RS485)]  
*CSI0 (MIPI-CSI Camera Input 0)  
+
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-CSI0.png CSI0 (MIPI-CSI Camera Input 0)]
*CSI1 (MIPI-CSI Camera Input 1)  
+
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-CSI1.png CSI1 (MIPI-CSI Camera Input 1)]
*CSI2 (MIPI-CSI Camera Input 2)  
+
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-CSI2.png CSI2 (MIPI-CSI Camera Input 2)]
*DCIN (12V DC Jack)  
+
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-DCIN.png DCIN (12V DC Jack)]
*DCIN1 (12V DC-IN Pin Header)  
+
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-DCIN.png DCIN1 (12V DC-IN Pin Header)]
*HDMI (HDMI CONN.)  
+
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-HDMI.png HDMI (HDMI CONN.)]
*LAN (Ethernet eth0+eth1)  
+
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-LAN.png LAN (Ethernet eth0+eth1)]
*LOUT (Line Out Pin Header)  
+
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-LOUT.png LOUT (Line Out Pin Header)]
*LVDS0 (LVDS channel 0)  
+
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-LVDS0_1.png LVDS0 (LVDS channel 0)]
*LVDS1 (LVDS channel 1)  
+
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-LVDS1_1.png LVDS1 (LVDS channel 1)]
*M2 (M.2 Key E CONN.)  
+
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-M2.png M2 (M.2 Key E CONN.)]
*MIC (MIC In Pin Header)  
+
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-MIC.png MIC (MIC In Pin Header)]
*M2B (M.2 keyB CONN.)  
+
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-M2B.png M2B (M.2 keyB CONN.)]
*RST (Reset Button)  
+
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-RST.png RST (Reset Button)]
*SD (SD Slot)  
+
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-SD.png SD (SD Slot)]
*SIM (SIM Slot)  
+
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-SIM.png SIM (SIM Slot)]
*UIO1 (UIO40-Express Pin Header 1)  
+
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-UIO1.png UIO1 (UIO40-Express Pin Header 1)]
*UIO2 (UIO40-Express Pin Header 2)  
+
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-UIO2.png UIO2 (UIO40-Express Pin Header 2)]
*USB 1 (USB 3.2 Gen 1 on TOP + USB 2.0 on BOT)  
+
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-USB1.png USB 1 (USB 3.2 Gen 1 on TOP + USB 2.0 on BOT)]
*DL_KEY(Download Key)
+
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-DL_KEY.png DL_KEY(Download Key)]
 +
*[http://ess-wiki.advantech.com.tw/view/File:RSB-3810-LED.png LED]
  
 
=== '''机械尺寸 ('''Mechanical Characteristics) ===
 
=== '''机械尺寸 ('''Mechanical Characteristics) ===
Line 153: Line 150:
  
 
=== '''系统下载 (OS Download)''' ===
 
=== '''系统下载 (OS Download)''' ===
 +
 +
[http://ess-wiki.advantech.com.tw/view/IoTGateway/BSP/Android/MT8395_OS_Support_List_for_android11 Android 11 OS download]
  
 
 
 
 
  
=== '''Linux 燒錄方法 (Linux Flash eMMC Method)''' ===
+
=== '''Debug port 連接與設定(Debug Port Connection and Setting)''' ===
  
'''使用Flash tool 燒錄鏡像到eMMC (Flash image into eMMC by Flash Tools)'''
+
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.
  
Step0: 檢查SD卡在Linux 環境的代號 (check SD card symbol in Linux system)
+
[[File:RSB-3810-Debug cable.png|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)''' ===
 +
 
 +
Step1: 下載MTK燒錄工具SP Flash Tool V5 (Download MTK flash tool "SP Flash Tool V5")
 +
 
 +
支援作業系統(Support OS):
 +
 
 +
*Windows 7
 +
*Windows 10
 +
*Ubuntu 16.x
 +
*Ubuntu 18.x
 +
 
 +
Step2:使用USB Type-A to Type-A線連接電腦處機與裝置的USB Type-A孔位, 如下圖位置(Connect the usb type A to host computer and device type A port)
 +
 
 +
[[File:2022-11-25 173838.jpg|800px|2022-11-25 173838.jpg]]
 +
 
 +
Step3: 重BSP下載以下image檔案或是解壓縮image檔(You need to download the image files from BSP as below or extract from image file.)
 +
 
 +
BSP image File path:out/target/product/mt8395_rsb3810a1
 +
<pre>MT8195_Android_scatter.txt
 +
preloader_mt8395_rsb3810a1.bin
 +
vbmeta.img
 +
vbmeta_system.img
 +
vbmeta_vendor.img
 +
spmfw.img
 +
pi_img.img
 +
dpm.img
 +
scp.img
 +
sspm.img
 +
mcupm.img
 +
cam_vpu1.img
 +
cam_vpu2.img
 +
cam_vpu3.img
 +
lk.img
 +
boot.img
 +
dtbo.img
 +
tee.img
 +
logo.bin
 +
super.img
 +
userdata.img</pre>
 +
 
 +
Step 4: 執行SP flash tool V5 燒錄工具(Launch SP flash tool V5)
 +
 
 +
[[File:RSB-3810-SP Flash tool.png|RTENOTITLE]]
 +
 
 +
(1) 選擇MT9195_Android_scatter.txt檔(Select the&nbsp;'''MT8195_Android_scatter.txt'''&nbsp;file)
 +
 
 +
(2)選擇"Format ALL + Download"(Select the'''Format All + Download''')
  
Step1: 創造一張可開機的SD 卡 (Create a bootable SD card)
+
(3)點選Download按鈕(Click the&nbsp;'''Download&nbsp;'''button)
  
Step2: 將可開機的SD 卡插入底板SD卡卡槽(Plug the SD card into Carrier board 's SD card slot)
+
[[File:2022-11-25 174501.jpg|800px|2022-11-25 174501.jpg]]
  
Step4: 確認開機選擇指撥開關
+
Step 5&nbsp;. 重新啟動裝置後系統會自己開始燒錄(Reboot the device and start to burn all&nbsp;image)
  
SD 卡開機模式:
+
[[File:RSB-3810-flash OK.png|800px|RSB-3810-flash OK.png]]
  
Step3:打開電源 和 終端機 (Turn on the Power & Terminal)
+
Step 6. 重新上電開機 (Turn on the power, then check the Debug message)
  
 
&nbsp;
 
&nbsp;
  
Step4: 壓縮flash tools 檔案,並複製到U盤中(the flash tools file , then copy to USB Disk)
+
== '''Android系统的基本使用(Android&nbsp;System Basic Operating Method)''' ==
 +
 
 +
=== '''Display Setting (RSB-3810)''' ===
 +
 
 +
'''HDMI TX:'''
 +
 
 +
Step 1: Setting-->Storage
  
Step 5: Yocto 系統會自動掛載 U盤 在(run/media/sda1下)
+
Step 2: Play a video
  
[[File:ROM-5720 auto mount 2021-10-14 112909.jpg|RTENOTITLE]]
+
CHeck HDMI mode and support resolution:
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"><span lang="EN-US" style="font-family:"># cat /sys/class/graphics/fb0/modes</span></div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"><span lang="EN-US" style="font-family:"># cat /sys/class/drm/card0-HDMI-A-1/status</span></div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"><span lang="EN-US" style="font-family:"># cat /sys/class/drm/card0-HDMI-A-1/modes</span></div>
 +
'''HDMI RX:'''
  
並拷貝 5720A1AIM30LIVA0271_iMX8M_2G_flash_tool.tgz 到根目錄 (copy the file into Yocto system)
+
(1) Connect a play video host PC device
<pre>    Commnd&nbsp;:  cp -a 5720A1AIM30LIVA0271_iMX8M_2G_flash_tool.tgz  /</pre>
 
  
在Yocto 系統中解壓縮(Unzip the file in Yocto system on ROM-5720)
+
(2) connect HDMI from PC to RSB-3810
  
Step 6. 燒錄eMMC 鏡像 (flash image into eMMC flash by flash tool file)
+
[[File:RSB-3810-HDMI RX PC.png|RTENOTITLE]]
<pre>  command&nbsp;: ./mksd-linux.sh /dev/mmcblk0</pre>
 
  
&nbsp;
+
(3) setenforce 0
 +
 
 +
(4) open the RxVideo apk
  
Step 7 . 結束燒錄後, 請改變撥碼開關至 1 on , 其他 off (eMMC開機模式) (Finish the flash process, please chanage the switch (SW1) to 1 on , others off )
+
[[File:RSB-3810-RXVideo.png|RTENOTITLE]]
  
&nbsp;
+
(5) Play a video on host PC
  
移除SD卡, 拔除電源 ,改變撥碼開關 (unplug the SD card , turn off power , change the SW1 switch to eMMC mode (1 on , others off)
+
(6) check the video and sound can output to HDMI monitor
  
eMMC mode&nbsp;: 1 on , others off
+
LVDS: Dual Channel LVDS Panel: G215HVN0 (VDD: 5V, Backlight Power: 12V)<br/> <span style="font-family:Arial,Helvetica,sans-serif;">Step 1: Connect 96LEDK-A215FH30NF2 LVDS panel with the LVDS cable. Connect this to the LVDS. Connect the Backlight cable to BL1.</span>
  
Step 8. 重新上電開機 ( Turn on the power , then check the Debug message)
+
<span style="font-family:Arial,Helvetica,sans-serif;">Step 2: Connect another 12V adapter to the DC-Jack on the backlight cable.</span>
  
'''Debug 串口調試 (Debug port Setting)'''
+
<span style="font-family:Arial,Helvetica,sans-serif;">Step 3: Power on RSB-3810 and the extra 12V adapter.</span>
  
以 Tera Term 为例介绍如何使用串口调试功能
+
<span style="font-family:Arial,Helvetica,sans-serif;">Step 4: Press enter after boot. The system will stop at u-boot as demonstrated below, enter the command in red and press enter</span>
<pre>   Baud Rate波特率:115200
 
  Data 数据位:8
 
  Parity 奇偶校验:无
 
  Stop 停止位:1
 
  Flow Control流控:无</pre>
 
  
:&nbsp;
+
[[File:RSB-3810-LVDS Cable.png|RTENOTITLE]]
  
Tera Term Tool
+
=== Audio使用方法(Audio Testing Method): ===
  
[[File:TeraTerm 2021-09-10 140930n.jpg|RTENOTITLE]]
+
Step 1: Check audio codec
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">console:/ # cat /proc/asound/cards<br/> &nbsp;0 [mt63xxaccdet &nbsp; ]: mt63xx-accdet - mt63xx-accdet<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mt63xx-accdet<br/> &nbsp;1 [mt8195sound &nbsp; &nbsp;]: mt8195-sound - mt8195-sound<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mt8195-sound</div>
 +
Step 2:&nbsp;Record and playback:
  
 +
Play audio file and check the sound output from Linu-out. Copy LRMonoPhase4.wav to the system<br/> stop audioserver
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># tinymix -D 1 'O176 I000 Switch' 1<br/> # tinymix -D 1 'O177 I001 Switch' 1<br/> # tinymix -D 1 'DAC In Mux' 'Normal Path'<br/> # tinymix -D 1 'HP Mux' 'Audio Playback'<br/> # tinyplay /storage/self/primary/LRMonoPhase4.wav -D 1 -d 2 -p 1024 -n 2</div>
 +
Connect Audio output from phone to RSB-3810 MIC. Record audio from phone and play the recorded file to check the sound.<br/> stop audioserver
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># tinymix -D 1 'O040 I168 Switch' 1<br/> # tinymix -D 1 'O041 I169 Switch' 1<br/> # tinymix -D 1 'MISO0_MUX' UL1_CH1<br/> # tinymix -D 1 'MISO1_MUX' UL1_CH1<br/> # tinymix -D 1 'ADC_L_Mux' 'Left Preamplifier'<br/> # tinymix -D 1 'PGA_L_Mux' 'AIN1'<br/> # tinycap /data/rec.wav -D 1 -d 8 -r 48000 -c 2 -b 32 -T 10<br/> # tinyplay /data/rec.wav -D 1 -d 2 -p 1024 -n 2</div>
 
&nbsp;
 
&nbsp;
  
Check the Sriel port in Device Manager (查看PC端的串口号)
+
=== '''M.2使用方法EWM-W174(M.2 Testing Method with EWM-W174):&nbsp;''' ===
  
if you can not identify the Serial device , please check your serial driver.
+
*'''Test Wi-Fi with EWM-W174M201E Module (PCIe Interface)'''
  
&nbsp;
+
Step 1: Open Android Setting.<br/> Step 2: Click Network & internet.<br/> Step 3: Search for WIFI
  
Debug port connection (串口連接)
+
[[File:RSB-3810-M.2 M174.png|800px|RSB-3810-M.2 M174.png]]
  
&nbsp;
+
*'''Test Bluetooth with EWM-W174M201E Module (USB Interface)'''
  
Log into Terminal Tool (进入串口调试终端):
+
Step 1: Open Android Setting.<br/> Step 2: Click Connected devices.<br/> Step 3: Click Connection preferences.<br/> Step 4: Click Bluetooth.<br/> Step 5: On and Pair new device<br/> Step 6: Available devices
  
&nbsp;
+
=== '''Serial port使用方法(Serial port Testing Method):''' ===
  
== '''Linux系统的基本使用(Linux System Basic Operating Method)''' ==
+
*'''RS-232 Loopback Test (eg. ttyS3):'''  
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># stty -F /dev/ttyS3 speed 115200 ignbrk -brkint -icrnl -imaxbel - opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl - echoke<br/> # cat /dev/ttyS3 &<br/> # echo "Serial Test" > /dev/ttyS3</div>
 +
*'''RS-422 Test:'''
  
=== '''UUU 使用方法(USB Connection (OTG port))''' ===
+
Step 1: First change the debug console port to UART2 (UIO-4030COM_3), or use telnet to login to the system console to issue the command for the com port test.<br/> Step 2:&nbsp;Test RS-422&nbsp;with Adam-4520. Connect Adam-4520 with COM1 with 1700100250 DB9 as the following:<br/> Adam-4520 RX- <--> RSB-3810 COM1 DB9 Pin 1,&nbsp;<br/> Adam-4520 RX+ <--> RSB-3810 COM1 DB9 Pin 2,<br/> Adam-4520 TX- <--> RSB-3810 COM1 DB9 Pin 4,<br/> Adam-4520 TX+ <--> RSB-3810 COM1 DB9 Pin 3,
  
=== '''Display Setting (RSB-3810)''' ===
+
Step 3:&nbsp;Set GPIO#328, GPIO#327 Set to 1,1
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># echo 328 > /sys/class/gpio/export<br/> # echo 327 > /sys/class/gpio/export# echo out<br/> # out > /sys/class/ gpio/gpio328/direction<br/> # echo out > /sys/class/gpio/gpio327/direction<br/> # echo 1&nbsp;> /sys/class/gpio/gpio328/value<br/> # echo 1 > /sys/class/gpio/gpio327/value</div>
 +
Step 4: Test RS-422 with Adam-4520. Connect Adam-4520 with COM1&nbsp;with 1700100250 DB9 as the following command:
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># stty -F /dev/ttyS2 speed 115200 ignbrk -brkint -icrnl -imaxbel - opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl - echoke<br/> # cat /dev/ttyS2 &<br/> # echo "Serial Test" > /dev/ttyS2</div>
 +
*'''RS-485 Test:'''  
  
'''U-boot Command&nbsp;:'''
+
Step 1: Test RS-485 with Adam-4520. Connect Adam-4520 with COM1 with 1700100250 DB9 as the following:<br/> Adam-4520 Pin 1: Data- connect to DB9 Pin 1: COM_DCD.<br/> Adam-4520 Pin 2: Data+ connect to DB9 Pin 3: COM_RXD.
  
'''乙太網路使用方法(Ethernent Testing Method)'''
+
Step 2: Set GPIO#328, GPIO#327 Set to 0,1
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># echo 328 > /sys/class/gpio/export<br/> # echo 327 > /sys/class/gpio/export# echo out<br/> # out > /sys/class/ gpio/gpio328/direction<br/> # echo out > /sys/class/gpio/gpio327/direction<br/> # echo 0 > /sys/class/gpio/gpio328/value<br/> # echo 1 > /sys/class/gpio/gpio327/value</div>
 +
Step 3:&nbsp;Test RS-422 with Adam-4520. Connect Adam-4520 with COM1&nbsp;with 1700100250 DB9 as the following command:
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">$ stty -F /dev/ttyS2 -echo -onlcr 921600 raw<br/> $ cat /dev/ttyS2 &<br/> $ echo "Serial Port Test" > /dev/ttyS2<br/> or<br/> $ microcom -s 921600 -X /dev/ttyS2</div>
 +
=== '''I2C使用方法(I2C Test Method):''' ===
  
'''Command&nbsp;: ifconfig'''
+
Step 1: Check i2c device
  
'''[[File:ROM-5720 ifconfig 2021-10-14 170648.jpg|RTENOTITLE]]'''
+
[[File:RSB-3810-I2C.png|RTENOTITLE]]
  
 +
Step 2: I2c set and get
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">console:/ # i2cdetect -y -a 4</div>
 
&nbsp;
 
&nbsp;
  
'''Command: Ping - I eth1 8.8.8.8'''
+
=== '''USB:&nbsp;USB disk test (USB 2.0/ USB 3.2 Gen 1 By 1 port)''' ===
  
'''WiFi使用方法(WIFI Testing Method)'''
+
Step 1: Issue the following command (lsusb -t) after inserting a USB disk into the USB 2.0 port or USB 3.2 Gen 1 port to check if the USB device is listed.
<pre>Command&nbsp;:
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># lsusb -t</div>
 +
Step 2: Test (eg. if usb disk is /dev/sda)
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># dd if=/dev/urandom of=data bs=1 count=1024<br/> # dd if=/dev/sda of=backup bs=1 count=1024 skip=4096 # dd if=data of=/dev/sda bs=1 seek=4096<br/> # dd if=/dev/sda of=data1 bs=1 count=1024 skip=4096 # diff data data1<br/> # dd if=backup of=/dev/sda bs=1 seek=4096</div>  
 +
&nbsp;
  
#killall wpa_supplicant
+
=== '''RTC使用方法(RTC Test Method):''' ===
# ifconfig wlan0 up
 
# wpa_passphrase "SSID" "PASSWORD" > /tmp/wpa.conf
 
# wpa_supplicant -BDwext -iwlan0 -c/tmp/wpa.conf
 
# udhcpc -b -i wlan0
 
  
ping 8.8.8.8
+
Step 1: Set system time to current, then write to RTC
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">console:/ # date 113009362023 && hwclock -w && date</div>
64 bytes from 8.8.8.8: icmp_seq=1 ttl=54 time=2.10 ms
+
Step 2: Set one incorrect time, then read time from RTC to verify
64 bytes from 8.8.8.8: icmp_seq=2 ttl=54 time=2.10 ms</pre>
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">console:/ # date 113009362023 && hwclock -r</div>
 +
Step 3: Restore the RTC time to system time
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">console:/ # date 113009362023 && hwclock -r</div>  
 +
&nbsp;
  
&nbsp;
+
=== '''eMMC/SD/SPI flash使用方法(eMMC/SD/SPI flash Testing Method):''' ===
 +
 
 +
eMMC: /dev/mmcblk2<br/> SD: /dev/ mmcblk1p1
  
=== '''4G使用方法(4G Testing Method)''' ===
+
Test (eg. emmc)<br/> Step 1: Open Android Setting.<br/> Step 2: Click Storage
<pre>Command:
 
Test 4G: (EWM-C117FL06E - USB)
 
      Step 1: Connect EWM-C117FL06E to Mini PCIE slot on 9680015491 and connect
 
                  the card to CN6 PCIe_D slot on ROM-DB5901.
 
      Step 2: Connect the antenna 1750007990-01 to the SMA (F) connector on
 
                  9680015491 and connect the IPEX connector to MT1 on EWM-C117FL06E module.
 
      Step 3: Connect the Mini USB cable from 9680015491 to USB 2.0 Type A port on
 
                  ROM-DB5901.
 
      Step 4: Power on and execute the pppd command to connect to the network.</pre>
 
  
=== '''GPIO使用方法(GPIO Operating Method)''' ===
+
&nbsp;
  
'''[[File:ROM-5720 GPIO 2021-10-14 171832.jpg|RTENOTITLE]]'''
+
=== '''Ethernet使用方法(Ethernet Testing Method):''' ===
<pre>Loop-back Test (Take GPIO4 and GPIO5 as examples)
 
  
Step 1: Connect GPIO4 and GPIO5
+
Step 1: Check the Ethernet device
Step 2: Export GPIO interface
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># ifconfig</div>
 +
Step 2: Connect the cable and ping test (eg. Eth0)
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># ping 8.8.8.8</div>
 +
[[File:ROM-3810-LAN0.png|RTENOTITLE]][[File:ROM-3810-LAN1.png|RTENOTITLE]]
  
root@imx8mqrom5720a1&nbsp;: ~# echo 0 > /sys/class/gpio/export
+
=== '''GPIO使用方法(GPIO Testing Method):''' ===
root@imx8mqrom5720a1&nbsp;: ~# echo 132 > /sys/class/gpio/export
 
  
Step 3: Set direction
+
*'''GPIO Pins:'''
  
root@imx8qxprom5720a1&nbsp;: ~# echo out > /sys/class/gpio/gpio1/direction
+
UIO Extension 1(UIO1):
root@imx8qxprom5720a1&nbsp;: ~# echo in > /sys/class/gpio/gpio2/direction
 
  
Step 4: Read value and set output value then check
+
{| border="1" cellpadding="1" cellspacing="1" style="width: 500px;"
 +
|-
 +
| Pin
 +
| Numbers
 +
|-
 +
| GPIO2
 +
| 315
 +
|-
 +
| GPIO4
 +
| 316
 +
|}
  
root@imx8mqrom5720a1&nbsp;: ~# cat /sys/class/gpio/gpio2/value
+
UIO Extension2 (UIO2):
1
 
root@imx8mqrom5720a1&nbsp;: ~# echo 0 > /sys/class/gpio/gpio1/value
 
root@imx8mqrom5720a1&nbsp;: ~# cat /sys/class/gpio/gpio2/value
 
0</pre>
 
  
&nbsp;
+
{| border="1" cellpadding="1" cellspacing="1" style="width: 500px;"
 +
|-
 +
| Pin
 +
| Numbers
 +
|-
 +
| GPIO5
 +
| 317
 +
|-
 +
| GPIO6
 +
| 318
 +
|-
 +
| GPIO7
 +
| 319
 +
|-
 +
| GPIO8
 +
| 320
 +
|-
 +
| GPIO9
 +
| 321
 +
|-
 +
| GPIO10
 +
| 322
 +
|-
 +
| GPIO11
 +
| 323 or 408
 +
|-
 +
| GPIO12
 +
| 324 or 409
 +
|}
  
&nbsp;
+
*'''GPIO Loopback Test (Using GPIO2 and GPIO4 as examples):'''
  
 +
Step 1: Connect GPIO2 and GPIO4<br/> Step 2: Export GPIO interface
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># echo 315 > /sys/class/gpio/export<br/> # echo 316 > /sys/class/gpio/export</div>
 +
Step 3: Set GPIO direction
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># echo out > /sys/class/gpio/gpio1/direction<br/> # echo in > /sys/class/gpio/gpio2/direction</div>
 +
Step 4: Read value and set output value than check
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># cat /sys/class/gpio/gpio2/value 0<br/> # echo 1 > /sys/class/gpio/gpio1/value<br/> # cat /sys/class/gpio/gpio2/value<br/> 1</div>
 
&nbsp;
 
&nbsp;
  
'''串口使用方法(Serial Port Operating Method)'''
+
=== '''Watchdog使用方法(Watchdog Testing Method):''' ===
  
RS-232 Test
+
*'''Internal Watchdog:'''
  
Loopback test (eg. ttymxc1)<br/> Before loopback test, we should connect tx and rx
+
Step 1: System will reboot after 60 sec. androidboot.bootreason=HW_reboot
<pre style="border:1px solid #cccccc; padding:5px 10px"><span style="background:#eeeeee">stty -F /dev/ttymxc1 115200
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># stop watchdogd</div>  
 +
Step 2: System will reboot after 60 sec. androidboot.bootreason=HW_reboot
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># stop watchdogd && echo 1 > /dev/watchdog</div>
 +
Step 3: System will reboot after 3 sec. androidboot.bootreason=reboot
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># reboot</div>
 +
Step 4: System will reboot after 1 sec. androidboot.bootreason=kernel_panic
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># echo c > /proc/sysrq-trigger</div>
 +
*'''External Watchdog:'''
  
stty -F /dev/ttymxc1&nbsp;?echo
+
Step 1: System will reboot after 60 sec. androidboot.bootreason=usb
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># echo 1 > /dev/watchdog1</div>
 +
Step 2: System will not reboot. Watchdog can be refreshed when feed dog before it timeout.<br/> Step 3: System will reboot after 10 sec ==> Watchdog does not refresh after it time- out.
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># ext_wdt_driver_test 10 1 0</div>
 +
androidboot.bootreason=usb
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># ext_wdt_driver_test 10 1 0 && Ctrl + C</div>
 +
=== '''Camera(Default MIPI-CSI0 and MIPI-CSI1 are for OV5640):''' ===
  
cat /dev/ttymxc1 &
+
MIPI-CSI0 (Tested with OV5640 + mini-SAS to MIPI-CSI Cable)
  
echo test > /dev/ttymxc1</span></pre>
+
Step 1: Use Android camera app to test&nbsp;<br/> Step 2: Take pictures<br/> Step 3: Video recording&nbsp;<br/> Step 4: Check photo
  
=== '''蓝牙使用方法(BlueTooth Operating Method)''' ===<br/> Command&nbsp;:
+
MIPI-CSI1 (Tested with OV5640 + mini-SAS to MIPI-CSI Cable)
  
$ hciconfig hci0 up<br/> $ bluetoothctl<br/> $ discoverable on<br/> $ pairable on<br/> $ scan on<br/> [NEW] FC:18:3C:8D:75:F4 myphone<br/> $ scan off<br/> $ pair FC:18:3C:8D:75:F4<br/> $ connect FC:18:3C:8D:75:F4</pre>
+
Step 1: Use Android camera app to test&nbsp;<br/> Step 2: Take pictures<br/> Step 3: Video recording&nbsp;<br/> Step 4: Check photo
  
=== '''遠程訪問及文件傳輸(Remote Access and File Transimmion)''' ===
+
MIPI-CSI2 (Tested with OV5640 + mini-SAS to MIPI-CSI Cable)
  
'''查看主板IP位址 ( Chech IP Address ):'''​<br/> Command&nbsp;: ifconfig
+
Step 1: Remove the CSI-0 and CSI-1 camera first<br/> Step 2: Use Android camera app to test<br/> Step 3: Take pictures<br/> Step 4: Video recording<br/> Step 5: Check photo
  
 
&nbsp;
 
&nbsp;
  
==== Windows下SSH访问及文件传输 ====
+
=== '''TPM測試方法(TPM Testing Method):''' ===
  
SSH Remote Log into Device
+
Please use tpm_test.bin to test.
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># eltt2 -cgv</div>
 +
[[File:RSB-3810-TPM.png|RTENOTITLE]]
  
*SSH远程登录,以putty选择putty.exe(或者使用Xshell、SecureCRT等类似软件)<br/> *需要设置远程设备的IP、通讯端口(默认22)、通讯方式,登录后验证用户名密码
+
=== '''LED ON/OFF 使用方法(LED ONOFF Testing Method):''' ===
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">LED Status: Detect gpio signal LED ON: echo 255 ><br/> /sys/class/leds/user/brightness LED OFF: echo 0 ><br/> /sys/class/leds/user/brightness</div>
 +
&nbsp;
  
 
&nbsp;
 
&nbsp;
Line 343: Line 463:
 
&nbsp;
 
&nbsp;
  
== '''通用方法(General Method)''' ==
+
=== '''UIO-4030使用方法(UIO-4030 Testing Method):''' ===
 +
 
 +
{| border="1" cellpadding="1" cellspacing="1" style="width: 800px;"
 +
|-
 +
| 1
 +
| style="width: 75px;" | UART(COM_3)
 +
| style="width: 702px;" | # stty -F /dev/ttyS3 -echo -onlcr 921600 raw<br/> # cat /dev/ttyS3 &<br/> # echo "Serial Port Test" > /dev/ttyS3<br/> or<br/> #microcom -s 921600 -X /dev/ttyS3
 +
|-
 +
| 2
 +
| style="width: 75px;" | GPIO
 +
| style="width: 702px;" |
 +
4 DI & 4 DO Pins (UIO Extension_UIO2)<br/> input pin#5: gpio 317&nbsp;<br/> output pin#6: gpio 318&nbsp;<br/> input pin#7: gpio 319<br/> output pin#8: gpio 320<br/> input pin#9: gpio 321<br/> output pin#10: gpio 322<br/> input pin#11: gpio 323<br/> output pin#12: gpio 324
 +
 
 +
(Note: gpio 323 & gpio 324 need to set the gpio 345 to high)
 +
 
 +
|-
 +
| 3
 +
| style="width: 75px;" | RS-485(COM_4)
 +
| style="width: 702px;" | Test RS-485 with Adam-4520. Adam-4520 Pin Data- and Pin<br/> Data+ connect to UIO-4030 COM_4 Pin 1 and Pin 2.<br/> # stty -F /dev/ttyUSB0 speed 115200 ignbrk -brkint -icrnl - imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke<br/> # cat /dev/ttyUSB0 &<br/> # echo "Serial Test" > /dev/ttyUSB0
 +
|-
 +
| 4
 +
| style="width: 75px;" | EEPROM
 +
| style="width: 702px;" | # echo -n $'\x06\x05\x04\x03\x02\x01' > /data/test1<br/> # 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-4032使用方法(UIO-4032 Testing Method):''' ===
 +
 
 +
{| border="1" cellpadding="1" cellspacing="1" style="width: 800px;"
 +
|-
 +
| colspan="1" rowspan="2" | 1
 +
| colspan="1" rowspan="2" |
 +
UART
 +
 
 +
COM_3:ttyS3
  
=== '''查看CPU温度(Check CPU Temperature)''' ===<br/> root@imx8qxprom5720a1:/# cat /sys/devices/virtual/thermal/thermal_zone0/temp 44600
+
COM_4:ttyS1
  
#或者直接以度爲單位顯示 echo $[$(cat /sys/class/thermal/thermal_zone0/temp)/1000]° >>> 45°</pre>  
+
| # stty -F /dev/ttyS3 -echo -onlcr 921600 raw<br/> # cat /dev/ttyS3 &<br/> # echo "Serial Port Test" > /dev/ttyS3 or<br/> # microcom -s 921600 -X /dev/ttyS3 # cat /dev/ttyS3 &
 +
|-
 +
| # stty -F /dev/ttyS1 -echo -onlcr 921600 raw # cat /dev/ttyS1 &<br/> # echo "Serial Port Test" > /dev/ttyS1<br/> or<br/> # microcom -s 921600 -X /dev/ttyS1
 +
|-
 +
| 2
 +
| USB
 +
| USB disk write/read/verify pattern
 +
|-
 +
| 3
 +
| Ethernet
 +
| # ifconfig<br/> # ping 8.8.8.8
 +
|-
 +
| 4
 +
| EEPROM
 +
| # echo -n $'\x06\x05\x04\x03\x02\x01' > /data/test1<br/> # dd if=/data/test1 of=/sys/bus/i2c/devices/3-0050/eeprom<br/> # dd if=/sys/bus/i2c/devices/3-0050/eeprom of=/data/test2 conv=fsync
 +
|}
  
=== '''查看CPU频率(Check CPU Frequency)''' ===<br/> cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq<br/> >> 900000<br/> cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq<br/> >> 1200000
+
&nbsp;
  
=== '''查看内存容量(Check Memory Capacity)''' ===<br/> root@imx8qxprom5720a1:/# busybox free -m<br/> total used free shared buffers cached<br/> Mem: 1794920 516080 1278840 17252 9852 80292<br/> -/+ buffers/cache: 425936 1368984<br/> Swap: 0 0 0
+
=== '''UIO-4034使用方法(UIO-4034 Testing Method):''' ===
  
=== '''查看存储容量(Check Storage Capacity)''' ===<br/> root@imx8qxprom5720a1:/# busybox df -h<br/> Filesystem Size Used Available Use% Mounted on<br/> /dev/root 13.4G 1.7G 11.1G 13% /<br/> devtmpfs 395.8M 4.0K 395.8M 0% /dev<br/> tmpfs 876.4M 0 876.4M 0% /dev/shm<br/> tmpfs 876.4M 16.5M 859.9M 2% /run<br/> tmpfs 876.4M 0 876.4M 0% /sys/fs/cgroup<br/> tmpfs 876.4M 4.0K 876.4M 0% /tmp<br/> tmpfs 876.4M 280.0K 876.2M 0% /var/volatile<br/> /dev/mmcblk0p2 13.6G 1.7G 11.3G 13% /run/media/mmcblk0p2<br/> /dev/mmcblk0p1 63.9M 23.4M 40.5M 37% /run/media/mmcblk0p1<br/> /dev/mmcblk1p1 63.9M 23.4M 40.5M 37% /run/media/mmcblk1p1<br/> tmpfs 175.3M 88.0K 175.2M 0% /run/user/0<br/> root@imx8qxprom5720a1:/#
+
{| border="1" cellpadding="1" cellspacing="1" style="width: 800px;"
 +
|-
 +
| colspan="1" rowspan="2" | 1
 +
| colspan="1" rowspan="2" |
 +
UART
  
=== '''網路Ping測試(Ping Network Testing)''' ===<br/> ping 8.8.8.8<br/> PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.<br/> 64 bytes from 8.8.8.8: icmp_seq=1 ttl=54 time=2.10 ms<br/> 64 bytes from 8.8.8.8: icmp_seq=2 ttl=54 time=2.10 ms</pre>
+
COM_3:ttyS3
  
=== '''設置RTC (RTC Setting) ''' ===<br/> root@imx8qxprom5720a1:/# systemctl stop ntpdate.service<br/> root@imx8qxprom5720a1:/# date 090816072021 && hwclock -w && date<br/> Wed Sep 8 16:07:00 UTC 2021<br/> Wed Sep 8 16:07:00 UTC 2021<br/> root@imx8qxprom5720a1:/# date<br/> Wed Sep 8 16:07:06 UTC 2021<br/> root@imx8qxprom5720a1:/#
+
COM_4:ttyS1
  
=== Mic錄音 (Mic record) ===
+
| $ stty -F /dev/ttyS3 -echo -onlcr 921600 raw<br/> $ cat /dev/ttyS3 &<br/> $ echo "Serial Port Test" > /dev/ttyS3<br/> or<br/> $ microcom -s 921600 -X /dev/ttyS3
 +
|-
 +
| $ stty -F /dev/ttyS1 -echo -onlcr 921600 raw<br/> $ cat /dev/ttyS1 &<br/> $ echo "Serial Port Test" > /dev/ttyS1<br/> or<br/> $ microcom -s 921600 -X /dev/ttyS1
 +
|-
 +
| 2
 +
| CAN Bus
 +
|
 +
#ip link set can0 up type can bitrate 125000<br/> # ifconfig can0 up<br/> # ip link set can1 up type can bitrate 125000<br/> # ifconfig can1 up
  
#amixer set Mic 20%
+
#candump can0 &<br/> # cansend can1 1F334455#1122334455667788
  
#arecord -D plughw:0,0 -r 16000 -f S16_LE ./f-16000.wav
+
|-
 +
| 3
 +
| EEPROM
 +
| # echo -n $'\x06\x05\x04\x03\x02\x01' > /data/test1<br/> # dd if=/data/test1 of=/sys/bus/i2c/devices/3-0050/eeprom<br/> # dd if=/sys/bus/i2c/devices/3-0050/eeprom of=/data/test2 conv=fsync
 +
|}
  
#aplay ./f-16000.wav
+
=== '''UIO-4036使用方法(UIO-4036 Testing Method):''' ===
  
=== PCIe裝置移除與rescan ===
+
{| border="1" cellpadding="1" cellspacing="1" style="width: 800px;"
 +
|-
 +
| 1
 +
| LAN Switch
 +
| # ifconfig<br/> # ping 8.8.8.8
 +
|-
 +
| 2
 +
| EEPROM
 +
| # echo -n $'\x06\x05\x04\x03\x02\x01' > /data/test1<br/> # dd if=/data/test1 of=/sys/bus/i2c/devices/3-0050/eeprom<br/> # dd if=/sys/bus/i2c/devices/3-0050/eeprom of=/data/test2 conv=fsync
 +
|}
  
root@imx8qxprom5720a1:/# echo "1" > /sys/bus/pci/devices/0000\:01\:00.0/remove --eth1 will be remove (check with ifconfig)
+
=== '''UIO-4038使用方法(UIO-4038 Testing Method):''' ===
  
root@imx8qxprom5720a1:/# echo "1" > /sys/bus/pci/rescan --eth1 will back after run this command.
+
{| border="1" cellpadding="1" cellspacing="1" style="width: 800px;"
 +
|-
 +
| 1
 +
| LAN0(WAN)
 +
| # ifconfig
 +
|-
 +
| 2
 +
| LAN
 +
| # ping 192.168.100.1
 +
|-
 +
| 3
 +
| EEPROM
 +
| # echo -n $'\x06\x05\x04\x03\x02\x01' > /data/test1<br/> # dd if=/data/test1 of=/sys/bus/i2c/devices/3-0050/eeprom<br/> # dd if=/sys/bus/i2c/devices/3-0050/eeprom of=/data/test2 conv=fsync
 +
|}
  
 
&nbsp;
 
&nbsp;
  
== '''Linux BSP編譯方法(Linux BSP Compile Method)''' ==
+
=== '''UIO-4040使用方法(UIO-4040 Testing Method):''' ===
 +
 
 +
{| border="1" cellpadding="1" cellspacing="1" style="width: 800px;"
 +
|-
 +
| 1
 +
| SSD
 +
|
 +
#SSD disk write/read/verify pattern
 +
 
 +
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
 +
 
 +
|-
 +
| 2
 +
| EEPROM
 +
| # echo -n $'\x06\x05\x04\x03\x02\x01' > /data/test1<br/> # dd if=/data/test1 of=/sys/bus/i2c/devices/3-0050/eeprom<br/> # dd if=/sys/bus/i2c/devices/3-0050/eeprom of=/data/test2 conv=fsync
 +
|}
 +
 
 +
== '''通用方法(General Method)''' ==
 +
 
 +
=== '''ADB debug:''' ===
 +
 
 +
Step1&nbsp;:RSB-3810 Device setting
 +
<pre>console:/ $ su
 +
console:/ # setprop service.adb.tcp.port 5555
 +
console:/ # stop adbd
 +
console:/ # start adbd
 +
console:/ # ifconfig</pre>
  
 +
Step2&nbsp;: adb platform-tools
 +
<pre>D:\platform-tools>ping 172.22.28.102
 +
D:\platform-tools>adb connect 172.22.28.102:5555
 +
D:\platform-tools>adb root
 +
D:\platform-tools>adb shell</pre>
  
 +
== '''Android11 BSP編譯方法(Android11&nbsp;BSP Compile Method)''' ==
  
 
=== [http://ess-wiki.advantech.com.tw/view/Android_BSP_User_Guide_for_mt8395_series_11.0 Android BSP User Guide for mt8395 series 11.0 - ESS-WIKI (advantech.com.tw)] ===
 
=== [http://ess-wiki.advantech.com.tw/view/Android_BSP_User_Guide_for_mt8395_series_11.0 Android BSP User Guide for mt8395 series 11.0 - ESS-WIKI (advantech.com.tw)] ===

Revision as of 11:39, 26 July 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、Ycoto Linux和Android

 

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

RSB-3810

 

硬件接口說明(Hardware interface introduction)

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

RSB-3810 接口布局圖 Board Dimension Layout

RTENOTITLE

RTENOTITLE

Jumper list:

BL0 Backlight Power Select for LVDS0 (Default 5V)
VDD0 LVDS VDD (Default 3.3V)

 

Connectot list:

BAT RTC Battery CONN
BL0 LVDS Backlight
COM1 Debug Console + RS232/RS485
CSI0 MIPI-CSI Camera Input 0
CSI1 MIPI-CSI Camera Input 1
CSI2 MIPI-CSI Camera Input 2
DCIN/DCIN1 12V DC Power Input by DC Jack/ by Pin Header
HDMI HDMI CONN
LVDS0 LVDS Channel 0 CONN
LVDS1 LVDS Channel 1 CONN
M2 M.2 Key E CONN
MIC MIC In Pin Header
M2B M.2 Key B CONN
RST Reset Button
SD SD Slot
SIM SIM Slot
UIO1 UIO40-Express Pin Header 1
UIO2 UIO40-Express Pin Header 2
USB1 USB CONN. (USB 3.2 Gen 1 on TOP + USB 2.0 on BOT)
DL_KEY Download Key

 

接口引脚定義 (Pin definitions)

机械尺寸 (Mechanical Characteristics)

RTENOTITLE

 

 


快速入门 (Quick Start)

系统下载 (OS Download)

Android 11 OS download

 

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)

Step1: 下載MTK燒錄工具SP Flash Tool V5 (Download MTK flash tool "SP Flash Tool V5")

支援作業系統(Support OS):

  • Windows 7
  • Windows 10
  • Ubuntu 16.x
  • Ubuntu 18.x

Step2:使用USB Type-A to Type-A線連接電腦處機與裝置的USB Type-A孔位, 如下圖位置(Connect the usb type A to host computer and device type A port)

2022-11-25 173838.jpg

Step3: 重BSP下載以下image檔案或是解壓縮image檔(You need to download the image files from BSP as below or extract from image file.)

BSP image File path:out/target/product/mt8395_rsb3810a1

MT8195_Android_scatter.txt
preloader_mt8395_rsb3810a1.bin
vbmeta.img
vbmeta_system.img
vbmeta_vendor.img
spmfw.img
pi_img.img
dpm.img
scp.img
sspm.img
mcupm.img
cam_vpu1.img 
cam_vpu2.img 
cam_vpu3.img
lk.img 
boot.img
dtbo.img
tee.img
logo.bin
super.img
userdata.img

Step 4: 執行SP flash tool V5 燒錄工具(Launch SP flash tool V5)

RTENOTITLE

(1) 選擇MT9195_Android_scatter.txt檔(Select the MT8195_Android_scatter.txt file)

(2)選擇"Format ALL + Download"(Select theFormat All + Download)

(3)點選Download按鈕(Click the Download button)

2022-11-25 174501.jpg

Step 5 . 重新啟動裝置後系統會自己開始燒錄(Reboot the device and start to burn all image)

RSB-3810-flash OK.png

Step 6. 重新上電開機 (Turn on the power, then check the Debug message)

 

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

Display Setting (RSB-3810)

HDMI TX:

Step 1: Setting-->Storage

Step 2: Play a video

CHeck HDMI mode and support resolution:

# cat /sys/class/graphics/fb0/modes
# cat /sys/class/drm/card0-HDMI-A-1/status
# cat /sys/class/drm/card0-HDMI-A-1/modes

HDMI RX:

(1) Connect a play video host PC device

(2) connect HDMI from PC to RSB-3810

RTENOTITLE

(3) setenforce 0

(4) open the RxVideo apk

RTENOTITLE

(5) Play a video on host PC

(6) check the video and sound can output to HDMI monitor

LVDS: Dual Channel LVDS Panel: G215HVN0 (VDD: 5V, Backlight Power: 12V)
Step 1: Connect 96LEDK-A215FH30NF2 LVDS panel with the LVDS cable. Connect this to the LVDS. Connect the Backlight cable to BL1.

Step 2: Connect another 12V adapter to the DC-Jack on the backlight cable.

Step 3: Power on RSB-3810 and the extra 12V adapter.

Step 4: Press enter after boot. The system will stop at u-boot as demonstrated below, enter the command in red and press enter

RTENOTITLE

Audio使用方法(Audio Testing Method):

Step 1: Check audio codec

console:/ # cat /proc/asound/cards
 0 [mt63xxaccdet   ]: mt63xx-accdet - mt63xx-accdet
                      mt63xx-accdet
 1 [mt8195sound    ]: mt8195-sound - mt8195-sound
                      mt8195-sound

Step 2: Record and playback:

Play audio file and check the sound output from Linu-out. Copy LRMonoPhase4.wav to the system
stop audioserver

# tinymix -D 1 'O176 I000 Switch' 1
# tinymix -D 1 'O177 I001 Switch' 1
# tinymix -D 1 'DAC In Mux' 'Normal Path'
# tinymix -D 1 'HP Mux' 'Audio Playback'
# tinyplay /storage/self/primary/LRMonoPhase4.wav -D 1 -d 2 -p 1024 -n 2

Connect Audio output from phone to RSB-3810 MIC. Record audio from phone and play the recorded file to check the sound.
stop audioserver

# tinymix -D 1 'O040 I168 Switch' 1
# tinymix -D 1 'O041 I169 Switch' 1
# tinymix -D 1 'MISO0_MUX' UL1_CH1
# tinymix -D 1 'MISO1_MUX' UL1_CH1
# tinymix -D 1 'ADC_L_Mux' 'Left Preamplifier'
# tinymix -D 1 'PGA_L_Mux' 'AIN1'
# tinycap /data/rec.wav -D 1 -d 8 -r 48000 -c 2 -b 32 -T 10
# tinyplay /data/rec.wav -D 1 -d 2 -p 1024 -n 2

 

M.2使用方法EWM-W174(M.2 Testing Method with EWM-W174): 

  • Test Wi-Fi with EWM-W174M201E Module (PCIe Interface)

Step 1: Open Android Setting.
Step 2: Click Network & internet.
Step 3: Search for WIFI

RSB-3810-M.2 M174.png

  • Test Bluetooth with EWM-W174M201E Module (USB Interface)

Step 1: Open Android Setting.
Step 2: Click Connected devices.
Step 3: Click Connection preferences.
Step 4: Click Bluetooth.
Step 5: On and Pair new device
Step 6: Available devices

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

  • RS-232 Loopback Test (eg. ttyS3):
# stty -F /dev/ttyS3 speed 115200 ignbrk -brkint -icrnl -imaxbel - opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl - echoke
# cat /dev/ttyS3 &
# echo "Serial Test" > /dev/ttyS3
  • RS-422 Test:

Step 1: First change the debug console port to UART2 (UIO-4030COM_3), or use telnet to login to the system console to issue the command for the com port test.
Step 2: Test RS-422 with Adam-4520. Connect Adam-4520 with COM1 with 1700100250 DB9 as the following:
Adam-4520 RX- <--> RSB-3810 COM1 DB9 Pin 1, 
Adam-4520 RX+ <--> RSB-3810 COM1 DB9 Pin 2,
Adam-4520 TX- <--> RSB-3810 COM1 DB9 Pin 4,
Adam-4520 TX+ <--> RSB-3810 COM1 DB9 Pin 3,

Step 3: Set GPIO#328, GPIO#327 Set to 1,1

# echo 328 > /sys/class/gpio/export
# echo 327 > /sys/class/gpio/export# echo out
# 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

Step 4: Test RS-422 with Adam-4520. Connect Adam-4520 with COM1 with 1700100250 DB9 as the following command:

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

Step 1: Test RS-485 with Adam-4520. Connect Adam-4520 with COM1 with 1700100250 DB9 as the following:
Adam-4520 Pin 1: Data- connect to DB9 Pin 1: COM_DCD.
Adam-4520 Pin 2: Data+ connect to DB9 Pin 3: COM_RXD.

Step 2: Set GPIO#328, GPIO#327 Set to 0,1

# echo 328 > /sys/class/gpio/export
# echo 327 > /sys/class/gpio/export# echo out
# 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

Step 3: Test RS-422 with Adam-4520. Connect Adam-4520 with COM1 with 1700100250 DB9 as the following command:

$ stty -F /dev/ttyS2 -echo -onlcr 921600 raw
$ cat /dev/ttyS2 &
$ echo "Serial Port Test" > /dev/ttyS2
or
$ microcom -s 921600 -X /dev/ttyS2

I2C使用方法(I2C Test Method):

Step 1: Check i2c device

RTENOTITLE

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)

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

# lsusb -t

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

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

 

RTC使用方法(RTC Test Method):

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

console:/ # date 113009362023 && hwclock -w && date

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

console:/ # date 113009362023 && hwclock -r

Step 3: Restore the RTC time to system time

console:/ # date 113009362023 && hwclock -r

 

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

eMMC: /dev/mmcblk2
SD: /dev/ mmcblk1p1

Test (eg. emmc)
Step 1: Open Android Setting.
Step 2: Click Storage

 

Ethernet使用方法(Ethernet Testing Method):

Step 1: Check the Ethernet device

# ifconfig

Step 2: Connect the cable and ping test (eg. Eth0)

# ping 8.8.8.8

RTENOTITLERTENOTITLE

GPIO使用方法(GPIO Testing Method):

  • GPIO Pins:

UIO Extension 1(UIO1):

Pin Numbers
GPIO2 315
GPIO4 316

UIO Extension2 (UIO2):

Pin Numbers
GPIO5 317
GPIO6 318
GPIO7 319
GPIO8 320
GPIO9 321
GPIO10 322
GPIO11 323 or 408
GPIO12 324 or 409
  • GPIO Loopback Test (Using GPIO2 and GPIO4 as examples):

Step 1: Connect GPIO2 and GPIO4
Step 2: Export GPIO interface

# echo 315 > /sys/class/gpio/export
# echo 316 > /sys/class/gpio/export

Step 3: Set GPIO direction

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

Step 4: Read value and set output value than check

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

 

Watchdog使用方法(Watchdog Testing Method):

  • Internal Watchdog:

Step 1: System will reboot after 60 sec. androidboot.bootreason=HW_reboot

# stop watchdogd

Step 2: System will reboot after 60 sec. androidboot.bootreason=HW_reboot

# stop watchdogd && echo 1 > /dev/watchdog

Step 3: System will reboot after 3 sec. androidboot.bootreason=reboot

# reboot

Step 4: System will reboot after 1 sec. androidboot.bootreason=kernel_panic

# echo c > /proc/sysrq-trigger
  • External Watchdog:

Step 1: System will reboot after 60 sec. androidboot.bootreason=usb

# echo 1 > /dev/watchdog1

Step 2: System will not reboot. Watchdog can be refreshed when feed dog before it timeout.
Step 3: System will reboot after 10 sec ==> Watchdog does not refresh after it time- out.

# ext_wdt_driver_test 10 1 0

androidboot.bootreason=usb

# ext_wdt_driver_test 10 1 0 && Ctrl + C

Camera(Default MIPI-CSI0 and MIPI-CSI1 are for OV5640):

MIPI-CSI0 (Tested with OV5640 + mini-SAS to MIPI-CSI Cable)

Step 1: Use Android camera app to test 
Step 2: Take pictures
Step 3: Video recording 
Step 4: Check photo

MIPI-CSI1 (Tested with OV5640 + mini-SAS to MIPI-CSI Cable)

Step 1: Use Android camera app to test 
Step 2: Take pictures
Step 3: Video recording 
Step 4: Check photo

MIPI-CSI2 (Tested with OV5640 + mini-SAS to MIPI-CSI Cable)

Step 1: Remove the CSI-0 and CSI-1 camera first
Step 2: Use Android camera app to test
Step 3: Take pictures
Step 4: Video recording
Step 5: Check photo

 

TPM測試方法(TPM Testing Method):

Please use tpm_test.bin to test.

# eltt2 -cgv

RTENOTITLE

LED ON/OFF 使用方法(LED ONOFF Testing Method):

LED Status: Detect gpio signal LED ON: echo 255 >
/sys/class/leds/user/brightness LED OFF: echo 0 >
/sys/class/leds/user/brightness

 

 

 

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

1 UART(COM_3) # stty -F /dev/ttyS3 -echo -onlcr 921600 raw
# cat /dev/ttyS3 &
# echo "Serial Port Test" > /dev/ttyS3
or
#microcom -s 921600 -X /dev/ttyS3
2 GPIO

4 DI & 4 DO Pins (UIO Extension_UIO2)
input pin#5: gpio 317 
output pin#6: gpio 318 
input pin#7: gpio 319
output pin#8: gpio 320
input pin#9: gpio 321
output pin#10: gpio 322
input pin#11: gpio 323
output pin#12: gpio 324

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

3 RS-485(COM_4) Test RS-485 with Adam-4520. Adam-4520 Pin Data- and Pin
Data+ connect to UIO-4030 COM_4 Pin 1 and Pin 2.
# stty -F /dev/ttyUSB0 speed 115200 ignbrk -brkint -icrnl - imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
# cat /dev/ttyUSB0 &
# echo "Serial Test" > /dev/ttyUSB0
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-4032使用方法(UIO-4032 Testing Method):

1

UART

COM_3:ttyS3

COM_4:ttyS1

# stty -F /dev/ttyS3 -echo -onlcr 921600 raw
# cat /dev/ttyS3 &
# echo "Serial Port Test" > /dev/ttyS3 or
# microcom -s 921600 -X /dev/ttyS3 # cat /dev/ttyS3 &
# 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):

1

UART

COM_3:ttyS3

COM_4:ttyS1

$ stty -F /dev/ttyS3 -echo -onlcr 921600 raw
$ cat /dev/ttyS3 &
$ echo "Serial Port Test" > /dev/ttyS3
or
$ microcom -s 921600 -X /dev/ttyS3
$ 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
  1. ip link set can0 up type can bitrate 125000
    # ifconfig can0 up
    # ip link set can1 up type can bitrate 125000
    # ifconfig can1 up
  1. candump can0 &
    # cansend can1 1F334455#1122334455667788
3 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-4036使用方法(UIO-4036 Testing Method):

1 LAN Switch # ifconfig
# ping 8.8.8.8
2 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-4038使用方法(UIO-4038 Testing Method):

1 LAN0(WAN) # ifconfig
2 LAN # ping 192.168.100.1
3 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-4040使用方法(UIO-4040 Testing Method):

1 SSD
  1. SSD disk write/read/verify pattern

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

2 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

通用方法(General Method)

ADB debug:

Step1 :RSB-3810 Device setting

console:/ $ su
console:/ # setprop service.adb.tcp.port 5555
console:/ # stop adbd
console:/ # start adbd
console:/ # ifconfig

Step2 : adb platform-tools

D:\platform-tools>ping 172.22.28.102
D:\platform-tools>adb connect 172.22.28.102:5555
D:\platform-tools>adb root
D:\platform-tools>adb shell

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

Android BSP User Guide for mt8395 series 11.0 - ESS-WIKI (advantech.com.tw)