产品选型
产品名称 | TQA40I CoreA核心板 | TQA40I CoreB核心板 |
---|---|---|
CPU、架构、主频 | 全志 A40I Cortex-A7 4x1GHz | 全志 A40I Cortex-A7 4x1GHz |
内存 | 1GB DDR3(2GB可选) | 1GB DDR3(2GB可选) |
FLASH | 8GB eMMC(16/32GB可选) | 8GB eMMC(16/32GB可选) |
设计工艺 | 核心板+底板 | 核心板+底板 |
核心板引脚数 | 200Pin | 280Pin |
支持系统 | Android 7.1、Linux+qt5.9 | Android7.1/Linux/Ubuntu |
核心板/底板电源输入 | 5V;12V1A | 5V;12V1A |
核心板尺寸、层数 | 80x52mm,10层 | 73*45MM,8层 |
底板尺寸、层数 | 无,无 | 无,无 |
USB_Host | 2路 USB 2.0 | 2路 |
USB_OTG | 1路 USB 2.0 | 1路 |
HDMI | 1路,兼容HDMI1.4和HDCP1.2,1080P | 1路 |
LVDS | 1路,支持双路8位LVDS,1080P | 1路,支持双路8位LVDS,1080P |
MIPI | 1路,4通道,1080P | 1路, 4 通道, 1080P |
SATA | 1路 | 1路 |
TVOUT | 无 | 4路,TV output |
TVIN | 2路,CVBS INPUT | 4路,TV input |
串口 | 8路,(UART0为调试串口,其他串口复用) | 8路,(UART0为调试串口,其他串口复用) |
IIC/TWI | ≤5路 | ≤5路 |
SPI | 2路 | 2路 |
Camera | ≤2路,8位DVP接口 | ≤2路,8位DVP接口 |
RTC | 1路,外置RTC | 1路,内置RTC |
音频 | MIC、PHONEOUT、I2S | MIC,HPOUT,I2S,PHONEOUT,LINEI |
网络 | 1路 | 2路 |
4G | 无 | 无 |
WIFI/BT | 无 | 无 |
TF卡 | 无 | 无 |
HW-DW | 预留 | 无 |
SDIO | ≤3路,4位总数据线 | 3路 (4位总数据线) |
CIR | ≤2路 | ≤2路 |
SMC | 1路 | ≤1路 |
Keyadc | 1路,6 位 | 2路,6位 |
环境搭建
Linux环境搭建
在 Linux 平台环境的搭建部分中分为:Linux系统的安装,Linux开发环境的搭建,Linux 常用工具软件的安装。如需进行系统开发,为防止以后开发过程中出现不必要的错误,影响使用,请务必按照按手册所讲述的进行
大致步骤如下:
1.在主机上安装Ubuntu16.04 64位操作系统;
2.使用天嵌科技提供的脚本安装必备的库和gcc编译器,下载ubuntu_env_install.sh后执行
#./ubuntu_env_install.sh
主要安装java和32位的库,安装完成后可使用java -version来查看java的版本。
3.检查版本:gcc/g++版本是5.4,java的版本openjdk version 1.8.0
该部分使用工具下载:Linux平台工具
具体操作参照TQA40I环境搭建手册V1.1_20220228.pdf
Windows环境搭建
因为在 window 平台下只是作为测试使用,并没有在上面进行开发,所以搭建过程较简单,仅安装串口终端工具,作为串口终端调试。
1.调试串口接线图如下
2.安装串口终端工具SecureCRT
3.具体操作参照TQA40I环境搭建手册V1.1_20220228.pdff
烧录固件
出厂默认已经烧写Android系统,上电可正常启动系统,如果需要更换系统,则需要使用USB或者SD卡烧录方式重新烧录板子。
说明:烧录前建议先参照串口调试章节连接串口线,如烧录失败,根据串口打印信息分析错误原因。
USB烧录
1.USB烧录工具:PhoenixSuit_CN.msi
2.具体操作参照《TQA40I_CoreB镜像更新说明.pdf》
SD卡烧录
1.SD烧录卡制作工具:PhoenixCard_V310_20130618.rar
2.具体操作参照《TQA40I_CoreB镜像更新说明.pdf》
串口调试
连接串口线
Windows平台使用终端
因为在window平台下只是作为测试使用,并没有在上面进行开发,所以搭建过程较简单,只是安装一个串口终端即可。
首先安装SecureCRT,安装结束后,单击SecureCRT.exe,打开SecureCRT,如下图所示:
单击上图中红色框的图标,出现如下图设置框:
在协议里面选择Serial,出现如下图所示的对话框,详细设置参考下图。
注:端口选项部分根据您的实际使用的端口进行配置,其他选项请一定配置如下图所示。
说明:RTS/CTS一定不能选,否则可能出现串口有输出,没法输入的情况。
配置完毕后,单击上图的“连接”选项即可连通串口。
说明1:当打开了多个串口工具,并且他们还都使用同一个串口端口,那么肯定会出现后来打开的软件报告端口忙的错误,解决办法:关掉不需要的串口工具。
说明2:在设备管理器中可以查看您的电脑的串口设备名,下图中红色框内的COM3和COM4就是本手册编写者的电脑里面的串口设备名(如果是在下图所示的电脑中设置SecureCRT软件时,请将端口栏设置为COM3或COM4,而不是上图中的COM1了,这里特意用了两台不一样的电脑进行截图加以说明的),下图的COM3和COM4仅供参考,您的电脑的串口名请以实际为准;如果您的电脑没有串口设备,请使用USB转串口,USB转串口后的设备名也是COMn(n的数值以实际为准)。
Ubuntu平台使用终端
安装minicom
用户可以通过网络或者直接使用光盘的源码进行安装。使用网络安装需要连接互联网,更为简单方便,推荐使用。
-
安装minicom。
直接在终端执行:
#apt-get install minicom
即可。
-
配置minicom
安装minicom完成后,输入命令#minicom -s
启动,将出现配置菜单:使用PC键盘的上下键选中serial port setup选项后,用回车键进入串口配置。
进入串口配置界面,输入A配置串口驱动为/dev/ttyS0(不管在windows中是COMn(n可以是任意数),在虚拟机的Ubuntu下均是ttyS0)后回车,如果是usb转串口设备名应该作用/dev/ttyUSBn(n为数字,视实际而定,一般为0)。输入E配置速率为115200 8N1输入F将Hardware Flow Control设为NO,回车退出。
由于使用minicom作为超级终端控制路由器等设备, 而不是控制modem,所以需要修改modem and dialing。
将Modem and dialing配置单中得Init string、 Reset string、Hang-up string设置为空。
Step6、设置完成后选择Save setup as dfl选项将当前设置保存为默认设置;在配置菜单上选择Save setup as dfl保存配置单(一定要做这一步,否则下次启动minicom时还需要重新配置);选择Exit退出配置并进入minicom的操作界面。
下次需要启动minicom时,在终端中输入minicon后回车即可直接进入。命令minicom是进入串口超级终端画面,而minicom -s是配置minicom的命令。minicom是基于窗口的。要弹出所需功能的窗口,可按下ctrl-a,然后再按各功能键(a-z或A-Z)。先按ctrl-a,再按z,将出现一个帮助窗口,提供了所有命令的简述。
注意:非正常关闭minicom,会在/var/lock下创建几个文件LCK*,这几个文件可能会阻止minicom的运行,将它们删除后即可恢复。
说明1:如果您是在虚拟机中使用minicom,您需要在启动虚拟机中的Ubuntu之前先在您的虚拟机中添加串口设备,然后再启动虚拟机中的Ubuntu。
还需要注意一点:当Windows中使用了串口设备(比如启动了SecureCRT软件,并且已经使用COM3这个串口端口),然后如果在虚拟机中设置的也是COM3这个端口,那么在虚拟机中的Ubuntu启动后,在minicom中是没法使用串口的,只能选择关闭SecureCRT软件,释放COM3,然后虚拟机中的Ubuntu才能够使用该串口。
说明2:输入sudo minicom -D /dev/ttyUSB0可以直接指定USB串口设备。
功能配置
显示分辨率配置
1.TQA40I_CoreB 系统默认使用LVDS 1280_720分辨率,适配我司10.1寸高清电容屏。
2.LVDS分辨率的切换可以通过embedsky.ini文件修改环境变量p_fb0参数,将embedsky.ini文件放入普通SD卡(非烧录卡)上电启动自动设置参数写入环境变量。
3.具体操作请查看《TQA40I常用设置_V1.0_20200521.pdf》
功能使用及测试
Linux部分接口操作参考《TQA40I_CoreB_Linux使用手册.pdf》
Android部分接口操作参考《TQA40I_CoreB_Android使用手册.pdf》
扩展模块
本章节所列模块仅在资源下载的镜像及源码版本上适用,其他版本的源码及源码版本,不予保证功能正常使用,请以各自版本说明为准。该章节模块默认不配配,如有需要,请您联系销售工程师进行购买。
模块名称 |
TQA40I_COREA |
E11 |
TQA40_COREB |
|||
Android7.1 |
Linux3.10+qt5.9 |
Android7.1 |
Linux3.10+qt5.9 |
Android7.1 |
Linux3.10+qt5.9 |
|
SDIO WIFI 6223A-SRD |
OK |
OK |
||||
USB WIFI RTL8723 |
OK |
OK |
||||
USB WIFI RTL8188 | OK |
OK |
||||
USB 4G(N720) |
OK |
OK |
OK |
OK |
OK |
OK |
10.1寸高清电容屏 |
OK |
OK |
OK |
OK |
OK |
OK |
OV5640 |
OK |
OK |
无接口 |
OK |
硬件开发
A40I主频最高1.2GHz,内部集成Mali400 MP2 GPU图形处理器,支持绝大部分当前流行的视频及图片格式解码;支持双路LVDS、RGB、MIPI、HDMI,分辨率高达1920*1080;支持以太网、AUDIO、SDIO、UART、USB、SATA、VGA、TV IN、IR,CSI等功能。
序号 | 功能接口 | 数量 | 备注 |
---|---|---|---|
1 | LVDS/RGB |
1 |
1、支持双路8位LVDS,1080P; |
2 | MIPI_DSI |
1 |
4通道,1080P |
3 | HDMI |
1 |
兼容HDMI1.4 和HDCP1.2,1080P |
4 | Ethernet |
2 |
双网口一路百兆和一路千兆输出 |
5 | UARTS |
7 |
UART0为调试串口;其他串口有复用 |
6 | SDIO |
≤3 |
4位总数据线 |
7 | SATA |
1 |
SATA Spec 2.6,最高3.0Gb/s |
8 | Audio |
/ |
1路I2S/AC97; |
9 | USB Host |
2 |
USB2.0 |
10 | USB OTG |
1 |
USB2.0 |
11 | I2C/TWI |
≤5 |
1、I2C0 For PMU ; |
12 | SPI |
≤2 |
主从模式可配置,时钟最高100MHz |
13 | KEYADC |
2 |
6位,适用于按键检测 |
14 | PWM |
≤8 |
4组,支持PWM OUT 和Capture Input |
15 | RTC |
1 |
内置时钟芯片 |
16 | Hardware Watchdog |
1 |
支持硬件看门狗 |
17 | TV |
4 |
TVIN*4; TVOUT*4 |
18 | CIR |
1 |
Remote control |
19 | Camera |
1 |
8位DVP 接口 |
天嵌科技推出的TQA40I_COREB采用核心板+底板的方案,将A40I的全部接口保留下来。
国产工业级CPU(-40℃~+85℃),核心板引出丰富的接口,四核 Cortex-A7、Android 7.1、高稳定性、超高性价比、1080P多显示接口、多串口、双屏异显、集成百兆千兆双网卡、Audio Codec等等,长供货期。
具体接口使用及开发参考《TQA40I_CoreB_用户硬件手册.pdf》
系统开发
Android开发指南
在资源下载->Android资源下载处下载Android系统源码包TQA40I_Android_CoreB_V2.0_R2.2.tar.bz2,[如果是多个分卷压缩包,先解压其为源码包],u-boot,内核,android文件系统全都在同一个压缩包内,请依次编译u-boot,内核,android文件系统。
总体来讲,Android的编译是:
- 解压源码包。
- 进入到源码u -boot、内核、文件系统相应目录下。
- 在相应目录下执行 build.sh 脚本编译。
注:在编译之前请先确认系统的环境已经搭建好,具体安装方法见环境搭建章节。
编译u-boot
在源码目录lichee/brandy中可以找到build.sh的编译脚本,系统通过使用此目录下的 build.sh 脚本完成对 u-boot源码的编译,u-boot 使用的源码是 u-boot-2014.07。编译时直接执行脚本即可:
#tar xvjf TQA40I_Android_CoreB_V2.0_R2.2.tar.bz2 -C /
#cd /opt/EmbedSky/TQA40I/CoreB/lichee
#./build.sh
编译内核
内核编译脚本在lichee/目录下。在执行编译之前要先进行配置。配置只需要执行一次。后面编译都会用此次配置,除非执行过 build.sh distclean 全部清除或者重新执行build.sh config 重新配置。
(1)配置编译选项
#cd lichee
#./build.sh distclean //首次编译前建议先清除一遍
#./build.sh config
执行后会出现一些选项,芯片选择 sun8iw11p1,软件平台选择Android,内核选择linux-3.10,板级选择 a40-p1,编译器选择gnueabi。
(2)配置内核
#cd linux-3.10
#cp config-tq-linux-coreA .config #此步根据具体板卡选择对应配置单
配置单名 | 对应板卡与系统 |
---|---|
config-tq-android-fullFunc | 单板android系统 |
config-tq-linux-fullFunc | 单板linux系统 |
config-tq-android-CoreA | CoreA android系统 |
config-tq-linux-coreA | CoreA linux系统 |
config-tq-android-CoreB | CoreB android系统 |
config-tq-linux-CoreB | CoreB linux系统 |
config-tq-android-E11 | E11 android系统 |
config-tq-linux-E11 | E11 linux系统 |
(3)返回 lichee目录直接执行脚本build.sh编译内核
#build.sh
编译文件系统
必须先成功完内核与u-boot的编译才可以成功编译Android文件系统。编译脚本位于android目录下,直接执行即可。
#cd android
#./build-coreA.sh #coreA核心板编译使用脚本
#./build-fullFunc.sh #单板板编译使用脚本
#./build-E11.sh #单板板编译使用脚本
#./build-coreB.sh #单板板编译使用脚本
成功编译系统后。在目录lichee/tools/pack/下会生成镜像 sun8iw11p1_android_a40-p1_uart0.img,即可将镜像烧至TQA40I板卡,详见烧写固件章节。
具体编译可参考《TQA40I编译手册.pdf》
Android源码简介
Android 的源码包中包含有内核源码,uboot 源码,与文件系统源码。
uboot 源码位于:lichee/brandy
内核源码位于:lichee/
文件系统源码位于:android/
Android7.1使用的内核版本是是 kernel_3.10。以下的路径都是在相对于内核根目录而言。由于驱动代码牵涉较广,难以将所有文件做到一一讲述,所以以下提及的驱动源码只是相对主要或者是修改频率比较高的文件。
A40i 的内核除了一般的 dts 文件外,还有一个 sys_config.fex 的配置文件。一般常用的属性配置在sys_config.fex 中完成,dts文件需要修改的不多。相同的属性,sys_config.fex的优级要高于dts文件,即:相同的属性在sys_config.fex与dts有不同设置时,以sys_config.fex 为主。
tqA40i主要使用的dts为:
文件名 | 功能 |
---|---|
linux-3.10/arch/arm/boot/dts/sun8iw11p1.dtsi | 单主要功能属性配置 |
linux-3.10/arch/arm/boot/dts/sun8iw11p1-pinctrl.dtsi | 引脚设置 |
linux-3.10/arch/arm/boot/dts/sun8iw11p1-clk.dtsi | 时钟树配置 |
linux-3.10/arch/arm/boot/dts/sun8iw11p1-soc.dts | 针对不同的板卡对部分驱动的属性进行修改 |
tqA40i主要使用的 sys_config.fex 为:
文件名 | 功能 |
---|---|
tools/pack/chips/sun8iw11p1/configs/a40-p1/sys_config.fex | 主要设备属性配置文件 |
tqA40i主要的内核源码位置:
驱动 | 在内核中的源码位置 | 系统中的设备名称 |
---|---|---|
串口驱动 | lichee/linux-3.10/drivers/tty/serial/sunxi-uart.c | /dev/ttySAC* |
SDHC驱动 | lichee/linux-3.10/drivers/mmc/host/sunxi-mmc* | /dev/mmcblk* |
I2C/TWI总线驱动 | lichee/linux-3.10/drivers/i2c/busses/i2c-sunxi.c | /dev/i2c-* |
RTC驱动 | lichee/linux-3.10/drivers/drivers/rtc/rtc-pcf8563.c | /dev/rtc0 |
有线网络驱动 | lichee/linux-3.10/drivers/net/ethernet/allwinner/* | /eth0 |
LVDS显示驱动 | lichee/linux-3.10/drivers/video/sunxi/disp2/* | /dev/fb0 |
背光驱动 | lichee/linux-3.10/drivers/vido/sunxi/disp2/disp/disp_sys_intf.c | /sys/class/backlight/* |
声卡驱动 | lichee/linux-3.10/sound/soc/sunxi/sun8iw11_codec.c | /dev/snd* |
按键驱动 | lichee/linux-3.10/drivers/input/keyboard/sunxi-keyboard.c | /dev/input/event* |
pwm驱动 | lichee/linux-3.10/drivers/pwm/pwm-sunxi-new.c | /sys/class/pwm/* |
USER_GPIO驱动 | lichee/linux-3.10/drivers/gpio/gpio-sunxi.c | /sys/class/gpio/* |
触摸驱动 | lichee/linux-3.10/drivers/embedsky/touch/* | /dev/input/event* |
Linux开发指南
在资源下载处Linux资源下载系统源码包TQA40I_Linux_V1.0_R1.0.tar.bz2,u-boot、内核、Linux文件系统全都在同一个压缩包内。
总体来讲,Linux的编译是:
- 解压源码包。
- 进入到源码u-boot、内核、文件系统相应目录下。
- 在相应目录下执行 build.sh 脚本编译。
注:在编译之前请先确认系统的环境已经搭建好,具体安装方法见安装编译环境章节。
编译u-boot
在源码目录lichee/brandy中可以找到build.sh的编译脚本,系统通过使用此目录下的 build.sh 脚本完成对 u-boot源码的编译,u-boot 使用的源码是 u-boot-2014.07。编译时直接执行脚本即可:
#tar xvjf TQA40I_Linux_V1.0_R1.0.tar.bz2 -C /
#cd /opt/EmbedSky/TQA40I/CoreB/lichee/brandy
#./build.sh
编译内核和buildroot
内核编译脚本在lichee/目录下。在执行编译之前要先进行配置。配置只需要执行一次。后面编译都会用此次配置,除非执行过 build.sh distclean 全部清除或者重新执行build.sh config 重新配置。
(1)配置编译选项
#cd lichee
#./build.sh config
执行后会出现一些选项,芯片选择 sun8iw11p1,软件平台选择Linux,内核选择linux-3.10,板级选择 a40-p1,编译器选择gnueabihf。
(2)配置内核配置单
#cd linux-3.10
#cp config-tq-linux-coreB .config #此步请根据具体板卡选择对应配置单
配置单名 | 对应板卡与系统 |
---|---|
config-tq-android-fullFunc | 单板android系统 |
config-tq-linux-fullFunc | 单板linux系统 |
config-tq-android-CoreA | CoreA android系统 |
config-tq-linux-coreA | CoreAlinux系统 |
config-tq-android-CoreB | CoreB android系统 |
config-tq-linux-CoreB | CoreB linux系统 |
config-tq-android-E11 | E11 android系统 |
config-tq-linux-E11 | E11 linux系统 |
(3)返回lichee目录直接执行脚本build.sh编译内核和buildroot
#cd ../lichee
#build.sh
编译qt5.9.0
编译默认不会编译qt5,如要需要,可以通过以下方式编译,两种方式区别于配置过程会跟进会根据不同的交叉编译器进行相关配置,所以在编译qt5.9之前需完成<配置编译选项>操作。
(1)一键编译
#cd lichee
#./comp_qtLib-590_only.sh
(2)分步编译
#cd lichee/buildroot-201611/dl
#cp -f setenvs.sh qt-everywhere-opensource-src-5.9.0/ //获取环境设置脚本
#对文件setenv.sh中的functionmakeconfig函数完成qt的配置,可以修改它完成对qt的增删。
#cd qt-everywhere-opensource-src-5.9.0/ //修改配置
#source./setenvs.sh //设置相关环境变量
#makeconfig //配置
#makeall //编译
#makeinstall //安装
打包镜像
在lichee目录下执行以下命令完成打包
./build.sh pack
镜像生成位置:lichee/tools/pack/sun8iw11p1_linux_a40-p1_uart0.img
具体编译说明可参考《TQA40I编译手册.pdf》
Linux源码简介
Linux 的源码包中包含有内核源码,uboot 源码,与文件系统源码。
Linux系统的常见驱动对应的源码位置与上述Android系统所描述的源码位置一样。
源码的路径都是在相对于内核根目录而言。
应用开发
二次封装库
天嵌科技提供常用接口库函数:linux_lib_v1.0.1.tar.bz2
封装库使用说明:《天嵌二次封装库使用说明_v1.0.1.pdf》
Qt开发
针对TQA40I系列平台,天嵌提供的开发工具和文档是在ubuntu 16.04LTS、64bit系统下搭建,其他系统或其他版本仅供参考。
A40I_gcc5.3.1_qt5.9.0.tar.bz2中已经安装了qmake工具,如需使用天嵌提供的qmake,必须将A40I_gcc5.3.1_qt5.9.0.tar.bz2解压到PC文件系统根目录下。解压后交叉编译器在/opt/EmbedSky/linaro-5.3.1/usr/bin/下。qmake工具在/opt/EmbedSky/linaro-5.3.1/usr/Qt-5.9.0/bin/
交叉编译器工具:A40I_gcc5.3.1_qt5.9.0.tar.bz2
详细Qt环境搭建参考:《TQA40I_Qt5.9环境搭建手册_V1.0_20220119.pdf》。
官方Qt例程:qt5.9_examples_v1.0.zip
说明:交叉编译器(A40I_gcc5.3.1_qt5.9.0.tar.bz2)不支持在32bit系统下使用。
Android应用开发
该部分内容暂缺。
常见问题解答
FAQ
FAQ详细信息,请查看《TQA40I_FAQ》文档,文档总结了使用TQA40I系列平台所遇到的部分问题及解决方法,如果查看文档仍未解决问题,请拨打技术支持电话或者发送邮件到技术支持邮箱寻求技术支持。
技术支持说明
天嵌科技致力于高科技产业发展提供技术与服务,为广大客户提供嵌入式技术软硬件开发工具与解决方案,致力于ARM内核系列CPU的开发和应用,提供低功耗、高性价比的嵌入式产品,提供针对性强、量身定制的客户化设计;无论是新设计还是对现有产品的改型设计,我们都会为您提供高品质的开发服务。
由于时间有限,手册难免存在纰漏和错误,诚恳的希望各位读者批评和指正。关于修改的bug,我们会在第一时间在论坛上更新,论坛建有技术支持专区,欢迎大家遇到问题去里面寻找解决方法。还可以通过邮件(support@embedsky.net)与我们联系(为了能够方便跟进记录,请参照邮件落款模板发送邮件)。希望能结识更多的朋友,大家一起共同进步。
- 官方网站:http://www.embedsky.com
- 论坛:http://www.armbbs.net
- 淘宝店铺:https://embedsky.taobao.com
- 技术支持邮件:support@embedsky.net
- 技术支持电话:020-38373101-817
020-38373101-810 (IMX6Q)
020-38373101-814 (IMX6UL)
020-38373101-818 (335X)
邮件落款模板
烧写镜像文件版本号:xxx (例如:V2.0_R1.0,版本号在文件名后面有)
使用板卡、系统:xxx (例如:e9 android 4.3)
联系人:xxxxx
联系方式:xxxxx
公司:xxxxxx (例如:天嵌科技、学校等等)
常规技术支持范围
1.使用我司的镜像与开发板。
2.系统或硬件出现问题时(不包含客户自行开发)
资源下载
01_产品介绍资料
02_开发板配套硬件资料
03_开发板配套器件资料
04_开发板配套教材集
05_开发板配套镜像
06_开发板配套源码
07_开发板配套例程
08_开发板配套工具
09_开发板配套测试报告
天嵌产品使用必读