EMB-3560

来自ARM Wiki
跳转至: 导航搜索

介绍

概览
正面
  • EMB-3560(简称3560)主板采用基于NXP i.MX 8X四核处理器,产品具有丰富的IO接口及扩展性能,超强的图形处理能力、4K高清视频播放能力及应用计算能力。
  • EMB-3560整板集成度高、All In One设计,主板尺寸:145mmx 105mm,搭载Android9.0系统。
  • EMB-3560具有稳定可靠的工业级性能,可应用于工业自动化和控制、HMI、机器人、楼宇控制、汽车仪表盘、视频/音频、车载信息娱乐系统和车载信息服务等行业领域。

资源特性

  • CPU:NXP i.MX 8X四核处理器
  • GPU:CPU集成
  • 内存:板载2GB LPDDR4内存
  • 存储:板载16GB EMMC Flash
  • Ethernet:2x LAN,10/100/1000Mbps; 1x 板载WiFi(可选)、BT
  • 4G:1 x MINI PCIe
  • Display:1 x LVDS
  • Audio:1x Line out/ Mic in四节耳机,支持5W功放
  • USB Host:1x USB3.0,4x USB2.0, 1x USB OTG
  • COM:1 x Debug,2 x RS232,1 x RS232/485
  • TF Card:x1
  • System Control:Reset switch, Power switch
  • Temperature:Work -20 ~ 65, Storage -40 ~ 85
  • Humidity:5% ~ 95%相对湿度,无冷凝
  • PCB Size:145mm x 105mm
  • Power: DC 12V
  • RTC: 支持
  • Watchdog: 支持
  • Other I/O: 2x CSI接口,2x CAN,2x I2C,2x SPI,12x GPIO(复用SPI),1 个 Mini PCIE (支持 3 / 4G 带 PCIe 功能)
  • OS: Android 9.0/Yocto

接口布局和尺寸

接口布局图

EMB-3560 接口布局-正面EMB-3560 接口布局-侧面

接口引脚定义

主板内置插针式引脚排序方式

机械尺寸

EMB-3560尺寸.jpg

快速入门

系统下载

Android系统
Linux系统

系统烧录

Android9.0和Yocto系统烧录(支持windows和ubuntu环境烧录)

  • 主板处于断电状态下,将主板的otg和Windows主机连接起来,将JD1、2脚接上跳帽,然后将主板通电。
3560 OTG.jpg
OTG:系统烧录口
JD:刷机跳冒座:刷机模式时,将跳帽跳到1、2脚;正常启动时,将跳帽移除
电源:12v电源输入。
  • 若主机PC系统是windows系统
1,解压烧录包,参照“windows7系统刷机说明.docx”文档安装usb支持库。
2,以管理员身份运行“windows_burning.bat”脚本
2510 windows系统刷机脚本.jpg
3,等待刷机完成
2510 windows系统刷机完成.jpg
  • 若主机PC系统是ubuntu系统
1,解压烧录包,参照“ubuntu系统刷机说明.txt”文档安装usb支持库。
2,执行:sudo ./linux_burning.sh
3,等待刷机完成
2510 ubuntu系统刷机完成.jpg
注意:烧录完成后,需将JD处的跳帽去除才能正常启动

串口调试

Windows 上一般用 putty 或 SecureCRT。以 putty 为例介绍如何使用串口调试功能

putty下载链接选择putty.exe
串口通讯参数配置:
   波特率:115200
   数据位:8
   停止位:1
   奇偶校验:无
   流控:无

putty设置界面如下:

putty-setting
   1.Connection type设置为Serial
   2.Serial line设置为pc端连接的串口(此项填写pc端实际的串口号)
   3.Speed设置为115200
   4.点击Open按钮打开终端

查看PC端的串口号:

putty-查询串口
   *右键点击我的电脑->管理->设备管理器->端口(COM和LPT)找到本机对应的串口
   *如无设备请先确定pc端是否自带串口及驱动是否安装

进入串口调试终端:

putty-串口终端
   *如图进入交互界面,敲击回车或者输入命令会有反馈

API参考与使用

Android系统API
Linux系统API
  • Linux API [ 参考页面]
  • API文件下载地址(.so) 下载地址

Android系统的使用

ADB调试方法

USB ADB使用方法
开启主板ADB调试功能
  1. 在标准模式下,进入主菜单栏。
  2. 点击【Settings】。
  3. 进入最底部【System】菜单栏,选择【About tablet】。
  4. 连续点击【Build number】7次后,将提示“You are now a developer”。
  5. 击【←】图标返回至【Settings】页面,即可看到【Developer options】。
  6. 选择【Developer options】,勾选【USB debugging】。
ADB_slelct


  • 连接时屏幕会提示【Allow USB debugging?】,点击【OK】即可。
ADB_true
注意 : 使用USB ADB进行调试时,主板端不可以插着USB线上电开机
数据线ADB连接使用方法
  • 下载ADB驱动以及工具
  • 安装ADB驱动以及工具
  • 将驱动解压得到可执行文件,将数据线与电脑连接,打开软件,点击[install]即可
ADB驱动


  • 将工具解压至任意盘符,打开命令提示符(win + r键输入cmd),依次进入到该目录下,输入adb devices查看是否发现设备
ADB识别


  • 再输入adb shell进入
ADB shell
网络ADB使用方法
  • 配置网络ADB,配置网络ADB需要先通过USB ADB连接到板卡,然后输出下图中的命令,配置网络ADB端口。
配置网络ADB
配置网络ADB
基于USB ADB配置好ADB端口后,进入【设置】->【开发者选项】,取消勾选【USB调试】,再次勾选【USB调试】,至此网络ADB配置完成。
  • 连接网络ADB,例:上图中得到的eth0 IP为 : 192.168.8.57,输入 : adb connect 192.168.8.57:5555回车
至此板卡已通过网络与PC机进行了ADB连接,输入 : adb shell 回车,进入 shell
连接网络ADB
连接网络ADB

以太网使用方法

  1. 在标准模式下,从顶部向下滑动屏幕。
  2. 点击【设置】。
  3. 点击【网络与互联网】菜单进入网络与互联网设置界面。
  4. 点击【以太网】菜单进入以太网设置界面。
  5. 勾选第一栏【以太网】。
  6. 如果需要静态IP, 点击【以太网IP模式】。
  7. 在弹出的【以太网IP模式】界面中,静态勾选第二栏【静态IP】。
  8. 设置完静态IP之后,点击保存退出按钮。
开启以太网 以太网ip模式设置以太网静态ip设置

WiFi使用方法

  • Android系统目前仅支持型号为 : RTL8188 RTL8723BU
  • 设置->网络和互联网->WLAN
开启WIFI 选择一个WIFI热点进行连接

4G使用方法

  • 依图所示,正确连接4G模块与SIM卡
4Gslot
  • 设置->网络和互联网->移动网络
开启4G

APK安装

  • 常规安装
  • 将含有安装文件的U盘或者可移动设备与主板连接
  • 打开主板系统包含的APK安装器,点击安装,进入到该目录下,右侧点击APK即可
imx8_apk_install.PNG
  • 后台静默安装
1 pm install /mnt/media_rw/udisk/apk/MXPlayer\ 1.7.31.apk
  • 安装成功后显示Success如下图
apk_install

GPIO使用方法

串口使用方法

  • 将COM设备与板卡连接,确认连接无误后开机(连接方法参照上文[接口引脚定义]并注意232/485模式的选择)
  • 确认所连接的节点
  • EMB-3560 串口节点如下
COM_DB-----/dev/ttyLP0
COM1-------/dev/ttyLP1
COM2-------/dev/ttyLP2
COM3-------/dev/ttyLP3
  • 开始通信

Linux系统的使用

Yocto系统交叉编译工具链安装和使用方法

使用yocto系统做应用层开发时,需要安装对应的开发sdk,即安装编译要用到的交叉编译工具链。
a,下载文件 “fsl-imx-xwayland-glibc-x86_64-imx-image-full-aarch64-toolchain-4.19-warrior.sh”下载地址
b,下载完成后,运行安装脚本 :

sudo chmod +x fsl-imx-xwayland-glibc-x86_64-imx-image-full-aarch64-toolchain-4.19-warrior.sh
sudo sh fsl-imx-xwayland-glibc-x86_64-imx-image-full-aarch64-toolchain-4.19-warrior.sh
Sdk安装01.png

c,完成步骤b后,交叉编译工具链会安装至“/opt/fsl-imx-xwayland/4.19-warrior”目录(自定义安装目录的可以到对应的目录查看), 交叉编译工具链的使用方法如下:

source /opt/fsl-imx-xwayland/4.19-warrior/environment-setup-aarch64-poky-linux

查看环境变量,已经可以直接使用"$CC"来交叉编译自己的应用程序APP,此方法只在当前shell生效。

Sdk安装022.jpg


Yocto系统Qt使用方法

QT 开发环境的搭建

工具链下载

  • Yocto 2.7(linux内核4.19.35)适用于i.Mx8平台 下载地址
  • Yocto 1.8(linux内核4.1.15) 适用于i.Mx6平台 下载地址

SDK安装

安装qtcreator

  • qtcreator是qt开发常用的IDE
使用apt下载
sudo apt install qtcreator
官网下载安装包
  • 官网下载源码或者.run安装包qt官网下载链接
  • 终端使用命令下载.run安装包(除了qtcreator还包含其他可选组件)
wget http://download.qt.io/archive/qt/5.12/5.12.3/qt-opensource-linux-x64-5.12.3.run
  • 运行安装程序
chmod +x qt-opensource-linux-x64-5.12.3.run
./qt-opensource-linux-x64-5.12.3.run
  • 欢迎界面>> 登录界面 >>设置Qt >>设置安装路径 >>选择组件 >>同意许可协议 >>开始安装 >>安装完成
  • 登录界面,如无skip选项请先断开网络连接再打开安装程序

跳过登录选择安装路径选择组件同意许可协议安装完成

配置qtcreat

Yocto 2.7SDK使用默认安装路径时配置选项如下:

gcc:    /opt/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc
g++:    /opt/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++
gdb:    /opt/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gdb
qmake:  /opt/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/bin/qmake
Sysroot:/opt/fsl-imx-xwayland/4.19-warrior/sysroots/aarch64-poky-linux

Yocto 1.8SDK使用默认安装路径时配置选项如下:

gcc:    /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc
g++:    /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++
gdb:    /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gdb
qmake:  /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake
Sysroot:/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi
  • 修改qtcreat.sh启动脚本,在开头加上如下命令
  • qtcreat.sh的文件路径根据安装方式来区分,一般在/usr/bin或者安装目录下的Tools/QtCreator/bin子目录
. /opt/fsl-imx-xwayland/4.19-warrior/environment-setup-aarch64-poky-linux   #Yocto 2.7
. /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi   #Yocto 1.8

Qtcreat01.png

  • 运行 QT creator,在 Qt 运行界面下,菜单栏点击 “Tools –> Options –> Build&Run”(在某些版本在Kits选项中配置),进行相关配置。

a.设置 “Compiler” :

点击 Add -> GCC -> gcc ,添加一个 gcc,Compiler path 一栏填写gcc的绝对路径

Qtcreat02.png

点击 Add -> GCC -> g++ ,添加一个 g++,Compiler path 一栏填写g++的绝对路径

Qtcreat03.png
b.设置 “QT Versions” :

点击 Add ,点击 Browser,选择 qmake location 为qmake的绝对路径

Qtcreat04.png
c.设置 “Debuggers”:

添加一个“ Manual” ,点击 Add,点击 Browser,Path 为gdb的绝对路径

Qtcreat05.png
d.设置“Devices ”

点击 Devices ,点击 add -> Generic Linux Device -> Start Wizard后输入开发板的IP、用户名及密码(用户名root、默认无密码)
  • 远程调试需要配置,可以不进行配置

Qtcreat07.png
e.设置“ Kit”

添加一个“ Manual” ,点击 Add,点击 Browser
Sysroot 一栏,填写Sysroot的绝对路径
Compiler 一栏,选择配置好的 gcc 和 g++
Debugger 一栏,选择配置好的 gdb
Qt version一栏,选择配置好的 qmake
然后点击 apply

Qtcreat06.png

示例程序

使用 qmake编译生成demo

a.配置编译环境

. /opt/fsl-imx-xwayland/4.19-warrior/environment-setup-aarch64-poky-linux  #Yocto 2.7
. /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi  #Yocto 1.8

b.输入如下命令下载、编译demo程序

sudo apt install git
git clone https://github.com/qt/qtdoc.git  #拉取示例代码
cd qtdoc/ 
qmake qtdoc.pro
make -j4

c.将qtdoc文件夹拷贝到开发板,进入到qtdoc下的examples/demos/calqlatr子目录

./calqlatr

效果如下(图示为计算器demo):
Qmakedemo01.pngQmakedemo01 1.png

使用qtcreator创建工程文件

a.进入 qtcreator 的安装目录,在终端上手动打开 qtcreator。

sh qtcreator.sh

b.点击 “New Project”,选择 “Application”,“Qt Widgets Application”,然后此次填写好项目名称,项目位置后,在出现的“Kits”一栏,注意勾选上刚刚创建的 “imx_yocto”
Qtdemo02.png
c.创建完毕后,点击“Build”,“Build Project xxx”后,将会生成可执行程序
650px
d.将生成的程序拷贝到开发板中运行

./yoctotest

Qtdemo04.png

网络使用方法


通用方法

查看CPU温度

1 root@sabresd_6dq:/ # cat /sys/devices/virtual/thermal/thermal_zone0/temp            
2 30

查看CPU频率

1 root@sabresd_6dq:/ # cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq 
2 996000
3 root@sabresd_6dq:/ # cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq 
4 996000

查看内存容量

1 root@sabresd_6dq:/ # busybox free -m                                           
2              total         used         free       shared      buffers
3 Mem:           754          617          136            0           10
4 -/+ buffers:                607          147
5 Swap:            0            0            0

查看存储容量

 1 root@norco:/ # busybox df -h                                           
 2 Filesystem                Size      Used Available Use% Mounted on
 3 tmpfs                   377.3M    136.0K    377.2M   0% /dev
 4 none                    377.3M     12.0K    377.3M   0% /sys/fs/cgroup
 5 tmpfs                   377.3M         0    377.3M   0% /mnt/secure
 6 tmpfs                   377.3M         0    377.3M   0% /mnt/asec
 7 tmpfs                   377.3M         0    377.3M   0% /mnt/obb
 8 tmpfs                     1.0M         0      1.0M   0% /mnt/shm
 9 /dev/block/mmcblk0p5    472.4M    335.3M    137.1M  71% /system
10 /dev/block/mmcblk0p4      6.1G    240.3M      5.9G   4% /data
11 /dev/block/mmcblk0p6    247.9M      6.0M    229.1M   3% /cache
12 /dev/block/mmcblk0p9      7.7M      1.1M      6.3M  15% /device
13 /dev/fuse                 6.1G    240.3M      5.9G   4% /mnt/shell/emulated
  • 注意:通常情况下,由于存储器生产厂家和用户使用的容量单位不对等(厂家1M=1000kb,用户1M=1024kb),故而Size的总和(实际的容量)比额定的容量小,这属于正常情况。

网络Ping测试

 1 root@norco:/ # ping -s 1000 -c 5 192.168.8.100                           
 2 PING 192.168.8.100 (192.168.8.100) 1000(1028) bytes of data.
 3 1008 bytes from 192.168.8.100: icmp_seq=1 ttl=64 time=0.914 ms
 4 1008 bytes from 192.168.8.100: icmp_seq=2 ttl=64 time=0.790 ms
 5 1008 bytes from 192.168.8.100: icmp_seq=3 ttl=64 time=0.797 ms
 6 1008 bytes from 192.168.8.100: icmp_seq=4 ttl=64 time=0.810 ms
 7 1008 bytes from 192.168.8.100: icmp_seq=5 ttl=64 time=0.706 ms
 8 
 9 --- 192.168.8.100 ping statistics ---
10 5 packets transmitted, 5 received, 0% packet loss, time 4002ms
11 rtt min/avg/max/mdev = 0.706/0.803/0.914/0.070 ms

设置系统时间保存到RTC芯片

  • 注意此处显示的UTC表示0时区,我们处于CST时区,假设要设定时间为上午10点,则为"2020-06-06 02:09:55"。
1 root@norco:/ # busybox date -s "2020-06-06 10:09:55"                   
2 Thu Feb  1 10:09:55 UTC 2018
3 root@norco:/ # busybox hwclock -w