• E9V3
  • 产品选型

    E9V3接口说明

    产品名称 E9v2卡片电脑 E9v3卡片电脑 TQiMX6Q_BASEC
    CPU、架构、主频 NXP i.MX6Q Cortex-A9 4x1GHz NXP i.MX6Q Cortex-A9 4x1GHz NXP i.MX6Q Cortex-A9 4x1GHz
    内存 2GB DDR3 2GB DDR3 2GB DDR3
    FLASH 8GB eMMC 8GB eMMC 8GB eMMC
    设计工艺 单板 单板 核心板+底板
    核心板引脚数 200 Pin
    电源管理芯片 板载 板载 板载
    支持系统 Android 4.3/6.0、Ubuntu16.04、 Android 4.3/6.0、Ubuntu16.04、 Android 4.3/6.0、Ubuntu16.04、
    Linux 3.0.35+QT4.5、Linux 4.1 +QT 5.5 Linux 3.0.35+QT4.5、Linux 4.1 +QT 5.5 Linux 3.0.35+QT4.5、Linux 4.1 +QT 5.5
    底板层数、尺寸 8层板(单板); 72*100mm 8层板(单板); 72*100mm 底板:4层;180*130mm;核心板:8层板;80*55mm
    底板供电电源 5V2A 12V1A 12V1A
    USB_Host 4路(2.0),其中2路扩展接口引出 4路(2.0),其中2路扩展接口引出 3路(2.0)
    USB_OTG 1路 1路 1路
    串口 4路(1路调试串口,3路扩展接口引出) 4路(1路调试串口,3路扩展接口引出) 5路,2路RS232,5路TTL(2路与RS232复用)
    以太网 1000/100/10 Mbps,RJ45接口 1000/100/10 Mbps,RJ45接口 1000/100/10Mbps,RJ45接口
    GPU GC2000 GC2000 GC2000
    硬盘接口 SATA II 3Gbps SATA II 3Gbps 3Gbps SATA II接口,带硬盘电源接口
    GPIO 15路可中断IO口,扩展接口引出 15路可中断IO口,扩展接口引出 1路可中断IO口,扩展接口引出
    GPIO口电平 3.3V(适用范围广) 3.3V(适用范围广)
    PWM 3路,扩展接口引出 3路,扩展接口引出 2路PWM,扩展接口引出
    多媒体编解码 1080P h.264视频硬件编解码,支持双720P视频编码 1080P h.264视频硬件编解码,支持双720P视频编码 1080P h.264视频硬件编解码,支持双720P视频编码
    PCIE接口 1路Mini-PCIe接口,支持3G/4G
    SPI 1路 1路 1路
    IIC 3路 3路 3路
    CAN总线接口 2路 2路 2路
    音频 MIC、PHONE、SPK MIC、PHONE、SPK MIC、PHONE、SPK
    LCD 40P 0.5FPC;最大分辨率:1080p 40P 0.5FPC;最大分辨率:1080p 40P 0.5FPC;最大分辨率:1080p
    SD卡 1路 1路 1路
    RTC 1路 1路 1路
    HDMI 1路;最大分辨率:1080p 1路;最大分辨率:1080p 1路HDMI V1.4;最大分辨率:1080p
    VGA 1路;最大分辨率:1080p 1路;最大分辨率:1080p
    LVDS 双8标准接口;最大分辨率:1080p 双8标准接口;最大分辨率:1080p 双8标准接口;最大分辨率:1080p
    SDIO WIFI
    Camera 1路,CMOS接口 1路,CMOS接口 1路,CMOS接口
    板卡等级,工作环境温度 商业级(-20℃至 +85℃) 商业级(-20℃至 +85℃)(工业级可选) 商业级(-20℃至 +85℃)(工业级可选)
    配套模块 链接 链接 链接
    产品图片 E9v2卡片电脑 E9v3卡片电脑 TQiMX6Q_BASEC
    应用领域 适用于户外广告、电梯广告、可视对讲、会议系统、安防监控、智能收费系统、排队机、道路流量监控、手持设备、仪 器仪表等 适用于户外广告、电梯广告、可视对讲、会议系统、安防监控、智能收费系统、排队机、道路流量监控、手持设备、仪器仪表等 适用于车载中控/仪表、电力测试设备、医疗仪器工业控制、可视对讲、会议系统、安防监控、智能收费系统、道路流量监控、排队机、售卖新机、工业仪器仪表、HMI,轨道交通等

    烧录固件

    1. 启动方式介绍
      注:下表的拨码为网口朝上,向上为 1,向下为 0。
    MODE 1 2 3 4
    EMMC启动 1 1 0 1
    SD卡启动 1 0 0 0
    USB启动 1 0 0 1
    1. 烧录相关说明
      出厂默认已经烧写Android系统,EMMC启动模式下可以正常启动系统,如果需要更换系统,则需要使用USB或者SD卡烧录方式重新烧录板子。
      注:烧录前建议先连接串口线,如烧录失败,根据串口打印信息分析错误原因。

    USB烧录

    1. 将开发板启动方式拨为USB启动(1001),通过USB otg接口连接板子和电脑;
    2. 下载mfgtools_V3.6.1.zip(提取码:szks)烧写工具,详细烧录信息请查看TQIMX6烧写手册.pdf第一、二章节。
    3. 烧录成功后断电,拨回EMMC启动(1101)启动。

    SD卡烧录

    1. 制作SD烧录卡
      (1)Windows下制作烧录卡
      下载Windows_TQSDMaker(提取码:26og),详细的Windows下制作烧录卡信息请查看TQSDMaker用户使用手册.pdf
      (2)Ubuntu下制作烧录卡
      下载images_new_v12.1.tar(提取码:fmz1),详细的Ubuntu下制作烧录卡信息请查看TQIMX6烧写手册.pdf第三章。
    2. 成功制作SD烧录卡后,将拨码启动方式拨为1000(SD卡启动),插卡上电进行烧录操作;
    3. 烧录成功会自行启动系统,断电拨回EMMC启动(1101)启动。

    串口调试

    连接串口线

    image.png

    Windows平台使用终端

    因为在window平台下只是作为测试使用,并没有在上面进行开发,所以搭建过程较简单,只是安装一个串口终端即可。
    首先安装SecureCRT安装结束后,单击SecureCRT.exe,打开SecureCRT,如下图所示:
    image.png

    单击上图中红色框的图标,出现如下图设置框:
    image.png

    在协议里面选择Serial,出现如下图所示的对话框,详细设置参考下图。
    注意:端口选项部分根据您的实际使用的端口进行配置,其他选项请一定配置如下图所示。
    说明:RTS/CTS一定不能选,否则可能出现串口有输出,没法输入的情况。
    image.png

    配置完毕后,单击上图的“连接”选项即可连通串口。
    说明1:当打开了多个串口工具,并且他们还都使用同一个串口端口,那么肯定会出现后来打开的软件报告端口忙的错误,解决办法:关掉不需要的串口工具。
    说明2:在设备管理器中可以查看您的电脑的串口设备名,下图中红色框内的COM3和COM4就是本手册编写者的电脑里面的串口设备名(如果是在下图所示的电脑中设置SecureCRT软件时,请将端口栏设置为COM3或COM4,而不是上图中的COM1了,这里特意用了两台不一样的电脑进行截图加以说明的),下图的COM3和COM4仅供参考,您的电脑的串口名请以实际为准;如果您的电脑没有串口设备,请使用USB转串口,USB转串口后的设备名也是COMn(n的数值以实际为准)。
    image.png

    Ubuntu平台使用终端

    1.安装minicom
    用户可以通过网络或者直接使用光盘的源码进行安装。使用网络安装需要连接互联网,更为简单方便,推荐使用。
    安装minicom。
    直接在终端执行:

    #apt-get install minicom

    即可。
    2.配置minicom
    安装minicom完成后,输入命令#minicom -s启动,将出现配置菜单:使用PC键盘的上下键选中serial port setup选项后,用回车键进入串口配置。
    image.png

    进入串口配置界面,输入A配置串口驱动为/dev/ttyS0(不管在windows中是COMn(n可以是任意数),在虚拟机的Ubuntu下均是ttyS0)后回车,如果是usb转串口设备名应该作用/dev/ttyUSBn(n为数字,视实际而定,一般为0)。输入E配置速率为115200 8N1输入F将Hardware Flow Control设为NO,回车退出。
    image.png

    由于使用minicom作为超级终端控制路由器等设备, 而不是控制modem,所以需要修改modem and dialing。
    image.png

    将Modem and dialing配置单中得Init string、 Reset string、Hang-up string设置为空。
    image.png

    Step6、设置完成后选择Save setup as dfl选项将当前设置保存为默认设置;在配置菜单上选择Save setup as dfl保存配置单(一定要做这一步,否则下次启动minicom时还需要重新配置);选择Exit退出配置并进入minicom的操作界面。
    image.png

    下次需要启动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串口设备。

    扩展模块

    注:本章节所列模块仅在资源下载的镜像及源码版本上适用,其他版本的源码及源码版本,不予保证功能正常使用,请以各自版本说明为准。

    模块名称 Android6.0 Linux+QT5.5 Ubuntu16.04
    5寸高清电容屏 OK OK OK
    TN92 7寸电容/电阻屏 OK OK OK
    TN83 7寸电阻屏 OK OK OK
    7寸高清屏 OK OK OK
    10.4寸电阻屏 OK OK OK
    OV5640 OK OK OK
    WIFI(RTL8723+BT) OK OK OK
    4G(SIM7600) OK OK
    4G(N720) OK OK OK
    USB 蓝牙 OK OK OK

    功能配置

    切换屏幕、设置网络环境等相关功能配置请查看TQIMX6_uboot菜单手册.pdf

    安装编译环境

    1.从资源下载章节“ubuntu工具&开发环境”进入下载ubuntu_env_install.sh,执行ubuntu_env_install.sh脚本,为Ubuntu系统安装所需环境

    #./ubuntu_env_install.sh

    2.安装JDK
    资源下载章节“ubuntu工具&开发环境”进入下载java-1.7.0-openjdk-amd64.tar.bz2,java-7-openjdk-amd64.tar.bz2,然后在Ubuntu系统中执行:

    #tar xvjf java-1.7.0-openjdk-amd64.tar.bz2 -C /usr/lib/jvm/
    #tar xvjf java-7-openjdk-amd64.tar.bz2 -C /usr/lib/jvm/

    3.安装gcc,及Java环境:
    资源下载章节“ubuntu工具&开发环境”进入下载gcc-linaro-5.3-xxxx.tar.bz2文件,将其拷贝到根目录/opt目录下,然后在ubuntu系统中执行

    #cd /opt
    #tar xvjf gcc-linaro-5.3-xxxxx.tar.bz2 -C /
    #sed -i '/^PATH/d' /etc/environment
    #echo PATH=echo PATH=/opt/EmbedSky/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin/:/usr/lib/jvm/java-7-openjdk-amd64/bin:/opt/EmbedSky/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/qt5.5/rootfs_imx6q_V3_qt5.5_env/qt5.5_env/bin:$PATH: >>  /etc/environment
    
    #sed -i '/^CLASSPATH/d' /etc/environment
    #echo CLASSPATH=/usr/lib/jvm/java-7-openjdk-amd64/lib:$CLASSPATH: >> /etc/environment
    
    #sed -i '/^JAVA_HOME/d' /etc/environment
    #echo JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/:$JAVA_HOME: >> /etc/environment
    
    #source /etc/environment

    搭建nfs服务器

    在pc机中执行以下命令,可以在ubuntu系统中搭建nfs服务器:

    #apt-get install nfs-common
    #mkdir /opt/nfs
    #echo "/opt/nfs *(rw,sync,no_root_squash,no_subtree_check)">> /etc/exports
    #/etc/init.d/nfs-kernel-server restart

    搭建tftp服务器

    在pc机中执行以下命令,可以在ubuntu系统中搭建tftp服务器:

    #apt-get install tftp-hpa tftpd-hpa
    #mkdir /opt/tftp
    #echo "TFTP_USERNAME=\"tftp\""> /etc/default/tftpd-hpa
    #echo "TFTP_DIRECTORY=\"/opt/tftp\"">> /etc/default/tftpd-hpa
    #echo "TFTP_ADDRESS=\"0.0.0.0:69\"">> /etc/default/tftpd-hpa
    #echo "TFTP_OPTIONS=\"-l -c -s\"">> /etc/default/tftpd-hpa
    #service tftpd-hpa restart      ;注此命令需要每次开机执行一次才能使用

    搭建ftp服务器

    在pc机中执行以下命令,可以在ubuntu系统中搭建ftp服务器:

    #apt-get install vsftpd
    #mkdir /opt/ftp
    #useradd -d /opt/ftp -s /bin/bash ftpname
    #passwd ftpname         ;设置密码,例如设置为123
    #service vsftpd start

    使用方法:
    在开发板中执行ftpget -u ftpname -p 123 192.168.1.xxx zImage获取电脑中/opt/ftp目录下的zImage文件  

    硬件开发指南

    E9V3 硬件手册

    pin脚功能

    pin 引脚名称 功能描述 使用注意事项备注 pin 引脚名称 功能描述 使用注意事项备注
    1 GND 2 VDD_5V 5V供电
    3 DP4 USB功能 4 DP3 USB功能
    5 DM4 6 DM3
    7 GND 8 VDD_3V3 3.3V供电
    9 GPIO1_28(ENET_TX_EN) GPIO功能 对应GPIO ID为28 10 I2C3_SCL(EIM_D17) I2C功能 连接RTC时钟芯片,对应节点/dev/i2c-2
    11 I2C3_SDA(EIM_D18) I2C功能 连接RTC时钟芯片,对应节点/dev/i2c-2 12 EIM_D21 预留接口,可自行修改为GPIO等功能
    13 EIM_D16 预留接口,可自行修改为GPIO等功能 14 EIM_D19
    15 EIM_D30 16 EIM_D20
    17 GPIO1_27(ENET_RXD0) GPIO功能 对应GPIO ID为27 18 CSI0_DAT10 预留接口,可自行修改为GPIO等功能
    19 SD1_CLK USB功能 20 SD3_RST SDIO功能预留接口 预留接口,可自行修改为GPIO等功能
    21 PWM2(SD1_DAT2) PWM功能 对应节点/sys/class/pwm/* 22 DISP0_CNTRST 预留接口,可自行修改为GPIO等功能
    23 EIM_D22 预留接口,可自行修改为GPIO等功能 24 EIM_D23 预留接口,可自行修改为GPIO等功能
    25 GPIO1_30(ENET_TXD0) GPIO功能 对应GPIO ID为30 26 CAN1_RX(GPIO_8) can功能 对应节点can0
    27 CAN1_TX(GPIO_7) can功能 对应节点can0 28 CAN2_RX(KEY_ROW4) 对应节点can1
    29 CAN2_TX(KEY_COL4 对应节点can1 30 UART4_RXD(KEY_ROW0) UART4 对应节点/dev/ttySAC3
    31 UART4_TXD(KEY_COL0) UART4 对应节点/dev/ttySAC3 32 UART3_RXD(EIM_D25) UART3 对应节点/dev/ttySAC2
    33 UART3_TXD(EIM_D24) UART3 对应节点/dev/ttySAC2 34 UART2_RXD(EIM_D27) UART2 对应节点/dev/ttySAC3
    35 UART2_TXD(EIM_D26) UART2 对应节点/dev/ttySAC1 36 UART2_CTS(EIM_D28)
    37 UART2_RTS(EIM_D29) 38 CSPI2_MISO(EIM_OE) SPI功能 对应节点/dev/spidev1.0
    39 CSPI2_MOSI(EIM_CS1) SPI功能 对应节点为/dev/spidev1.0 40 CSPI2_CLK(EIM_CS0)
    41 CSPI2_CS0(CSIO_DAT11) 42 SD3_DATA2 SDIO功能预留接口 预留接口,可自行修改为GPIO等功能
    43 SD3_DATA3 SDIO功能预留接口 预留接口,可自行修改为GPIO等功能 44 SD3_CMD
    45 EIM_A25 预留接口,可自行修改为GPIO等功能 46 SD3_CLK
    47 SD3_DATA0 SDIO功能预留接口 预留接口,可自行修改为GPIO等功能 48 SD3_DATA1
    49 PWM3(SD1_DAT1) PWM功能 对应节点/sys/class/pwm/* 50 PWM4(SD1-CMD) PWM功能 对应节点/sys/class/pwm/*

    性能参数

    模块 数值
    摄像头模块
    捕获帧率(帧/S)
    OV5640 (500W) 640*480 31
    OV5640 (500W) 2560x2048 1
    TVP5150(720x576) 16
    wifi模块
    网速(1Mbit/s=8Mbps)
    USBwifi RT5370
    RTL8189 (SD IO wifi)
    RTL8723+BT-usb 24Mbit/s
    3G/4G模块 USB3G IEEE802.11n 150Mbps
    插针接口3G
    4G SIM7600 下载7.11Mbps  上传0.76Mbps
    4G SIM7100 下载7.98Mbps  上传0.82Mbps
    SD卡 sd卡读速度 435MB/s
    sd卡写速度 50MB/s
    SATA 硬盘写速度 350MB/s
    硬盘写速度 73MB/s
    串口模块(最高波特率) COM1 115200
    COM2
    串口485
    UART1(tty0) 115200
    UART2(tty1) 115200
    UART3(tty2) 115200
    UART4(tty3) 115200
    UART5(tty4)
    5串口扩展板 115200
    2*232串口扩展模块
    网卡模块
    (移植iperf测网速)
    DM9000
    DM9000CEP
    LAN8710A-EZK
    RTL8211E-VB-CG
    AR8035(工业级,不开源) 450Mbits/s
    USB 模块 USB host read 440MB/s
    USB host write 60MB/s
    USB OTG 11M/s

    功耗参数

    工作条件 电源电压 电源电流 基本功耗 电源电流峰值 最大功耗
    系统启动过程 12v 300mA 3.6w 580mA 6.96w
    待机基本界面 12v 230mA 2.76w 450mA 5.4w
    播放视频 12v 250mA 3w 500mA 6w
    接通网络
    工作条件 电源电压 电源电流 基本功耗 电源电流峰值 最大功耗
    系统启动过程 12v 400mA 4.8w 650mA 7.8w
    待机基本界面 12v 250mA 3w 500mA 6w
    播放视频 12v 300mA 3.6w 550mA 6.6w
    接通网络
    工作条件 电源电压 电源电流 基本功耗 电源电流峰值 最大功耗
    系统启动过程 12v 450mA 5.4w 700mA 8.4w
    待机基本界面 12v 300mA 3.6w 550mA 6.6w
    播放视频 12v 350mA 4.2w 500mA 6w
    接通网络
    工作条件 电源电压 电源电流 基本功耗 电源电流峰值 最大功耗
    系统启动过程 12v 430mA 5.16w 700mA 8.4w
    待机基本界面 12v 410mA 4.92w 650mA 7.8w
    播放视频 12v 500mA 6w 660mA 7.92w
    接通网络
    工作条件 电源电压 电源电流 基本功耗 电源电流峰值 最大功耗
    系统启动过程 12v 180mA 2.16w 400mA 4.8w
    待机基本界面 12v 110mA 1.32w 110mA 1.32w
    播放视频
    接通网络

    Linux开发指南

    编译bootloader固件

    下载uboot源码[TQIMX6_uboot_V3.14.6.tar.bz2] (https://pan.baidu.com/s/1ywY0IJldrUgh7Hgrhu-chQ)(提取码:ya1w),将其拷贝到根目录/opt目录下,然后在ubuntu系统中执行

    #cd /opt
    #tar xvjf TQIMX6_uboot_Vx.xx.tar.bz2 -C /
    #cd /opt/EmbedSky/TQIMX6/uboot-imx/
    #./build.sh

    然后等待编译完成,编译完成后可以看到在此目录下有u-boot.imx文件,此文件可以直接烧录到板卡中启动。

    编译kernel固件

    下载linux源码[TQIMX6_linux_V3.14.6.tar.bz2] (https://pan.baidu.com/s/1aYLfeDI_RvkJIXc-EN1r8w)(提取码:aqee),将其拷贝到根目录/opt目录下,然后在ubuntu系统中执行

    #cd /opt
    #tar xjf TQIMX6_linux_Vx.xx.tar.bz2 -C /
    #cd /opt/EmbedSky/TQIMX6/kernel_imx/
    #./build.sh

    然后等待编译完成,编译完成后可以看到在此目录下有内核zImage文件;和imx6q-sabresd.dtb,e9v2-sabresd.dtb,e9v3-sabresd.dtb,分别对应imx6q-CoreC板卡imx6q-E9v2板卡,imx6q-E9v3板卡的设备树,具体使用的是哪款板卡可以查看官网的产品信息。

    制作rootfs固件

    说明:rootfs提供了三种系统形式,请根据自己需求选择使用:
    rootfs_qt5_IMX6_for_linux_Vx.x_Rx.x.tgz
    rootfs_ubuntu_minimal_IMX6_for_linux_Vx.x_R1.x.tgz
    rootfs_ubuntu_IMX6_for_linux_Vx.x_R1.x.tgz
    下载文件系统源文件(qt5):rootfs_qt5_IMX6_for_linux_Vx.x.tgz,将其拷贝到根目录/opt/tqimx6q目录下,创建目录/opt/tqimx6q/rootfs_qt5然后在ubuntu系统中执行

    #cd /opt/tqimx6q
    #mkdir -p /opt/tqimx6q/rootfs_qt5 
    #tar xvzf rootfs_qt5_IMX6_for_linux_Vx.x.tgz -C /opt/tqimx6q/rootfs_qt5
    #cd /opt/tqimx6q/rootfs_qt5

    此时完成了文件系统源文件的解压步骤,接着可以自行修改定制qt5的文件系统,如添加修改文件等。
    1.制作tgz文件:

    #cd /opt/tqimx6q/rootfs_qt5
    #tar czf ../rootfs.tgz *

    执行完成之后可以在/opt/tqimx6q目录下看到rootfs.tgz文件
    2.制作img文件:

    #sudo apt-get install android-tools-fsutils
    #cd /opt/tqimx6q/
    #mkimg rootfs_qt5

    执行成功之后可以在/opt/tqimx6q/目录下看到rootfs.img文件。
    注:文件镜像制作成.tgz,和.img文件,具体用哪个以使用的烧写工具的说明为准。

    Kernel源码简介

    内核使用的是 kernel_4.1.15。以下的路径都是在相对于内核根目录而言。由于驱动代码牵涉较广,难以将文件做到一一描述,所以以下提及的驱动源码只是相对主要或者是修改频率比较高的文件。

    驱动 在内核中的源码位置 系统中的设备名称
    emmc/sdcard 驱动
    drivers/mmc/host/sdhci-esdhc-imx.c drivers/mmc/host/sdhci.c drivers/mmc/host/sdhci-pltfm.c /dev/mmcblk*
    LCD 与 LVDS 驱动 drivers/video/fbdev/mxc/* /dev/fb*
    电阻触摸屏驱动 drivers/input/touchscreen/tsc2007.module dev/input/event*
    电容触摸屏驱动 drivers/input/touchscreen/edt-ft5x06.module goodix.module dev/input/event*
    有线网络驱动 drivers/net/phy/* eth0
    串口驱动 drivers/tty/serial/imx.c drivers/tty/serial/mxs-auart.c drivers/tty/serial/serial_core.c /dev/ttySAC*
    sgtl5000声卡驱动 sound/soc/codecs/* /dev/snd/*
    I2C驱动 drivers/i2c/busses/i2c-imx.c /dev/i2c-*
    按键驱动 drivers/input/keyboard/gpio_keys.c dev/input/event*
    红外驱动 drivers/input/keyboard/tq_hs0038.c dev/input/event*
    背光灯驱动 drivers/video/backlight/pwm_bl.c drivers/video/backlight/backlight.c /sys/class/backlight/*
    Pwm驱动 drivers/pwm/pwm-imx.c /sys/class/pwm/*
    RTC驱动 drivers/rtc/rtc-pcf8563.c /dev/rtc0
    看门狗驱动 drivers/watchdog/imx2_wdt.c /dev/watchdog
    多媒体摄像头驱动 drivers/media/platform/mxc/capture/* /dev/video*
    USB控制驱动 drivers/usb/phy/phy-mxs-usb.c /dev/sda*

    编译QT程序

    1.下载qt5.5_example_V1.0.tgz
    2.编译,具体操作查看TQIMX6Q(V3)QT5.5开发境搭建_2019-11-15.pdf

    二次封装库

    例程使用&外设测试

    1.下载demo按照相关说明参考使用例程。
    2.具体操作查看TQIMX6Q功能测试手册V1.1

    OpenIL开发指南

    OpenIL是开放式工业Linux的简称,可为工业用户在实施工业物联网的过程中提供全面的支持,其特性包括:时间敏感网络、工业安全、工业现场网络和总线、支持图像化HMI、远程管理配置、开源生态、支持硬实时等。

    编译bootloader固件

    下载uboot源码TQIMX6_uboot_IMX6_for_OpenIL_Vx.xx.tar.bz2,将其拷贝到根目录/opt目录下,然后在ubuntu系统中执行

    #cd /opt
    #tar xvjf TQIMX6_uboot_IMX6_coreC_for_OpenIL_Vx.xx.tar.bz2 -C /
    #cd /opt/EmbedSky/TQIMX6/uboot-imx/
    #./build.sh

    然后等待编译完成,编译完成后可以看到在此目录下有u-boot.imx文件,此文件可以直接烧录到板卡中启动。

    编译kernel固件

    下载linux源码TQIMX6_linux_for_OpenIL_Vx.xx.tar.bz2,将其拷贝到根目录/opt目录下,然后在ubuntu系统中执行

    #cd /opt
    #tar xjf TQIMX6_IMX6_for_OpenIL_Vx.xx.tar.bz2 -C /
    #cd /opt/EmbedSky/TQIMX6Q/linux-OpenIL-linux
    #./build.sh

    然后等待编译完成,编译完成后可以看到在此目录下有内核zImage文件;和imx6q-sabresd.dtb,应用于imx6q-CoreC板卡。

    制作rootfs固件

    下载文件系统源文件(qt5):rootfs_qt5_IMX6_for_OpenIL_Vx.x.tgz,将其拷贝到根目录/opt/tqimx6q目录下,创建目录/opt/tqimx6q/rootfs_qt5然后在ubuntu系统中执行

    #cd /opt/tqimx6q
    #mkdir -p /opt/tqimx6q/rootfs_qt5 
    #tar xvzf rootfs_qt5_IMX6_for_OpenIL_Vx.x.tgz -C /opt/tqimx6q/rootfs_qt5
    #cd /opt/tqimx6q/rootfs_qt5

    此时完成了文件系统源文件的解压步骤,接着可以自行修改定制qt5的文件系统,如添加修改文件等。

    1. 制作tgz文件:
      #cd /opt/tqimx6q/rootfs_qt5
      #tar czf ../rootfs.tgz *

      执行完成之后可以在/opt/tqimx6q目录下看到rootfs.tgz文件

    2. 制作img文件:
      #cd /opt/tqimx6q/
      #sudo mkimg rootfs_qt5

      执行成功之后可以在/opt/tqimx6q/目录下看到rootfs.img文件。
      :文件镜像制作成.tgz,和.img文件,具体用哪个以使用的烧写工具的说明为准。

      Kernel源码简介

      内核使用的是 kernel_4.9.35。以下的路径都是在相对于内核根目录而言。由于驱动代码牵涉较广,难以文件的做到一一讱述,所以以下提及的驱动源码只是相对主要或者是修改频率比较高的文件。

    驱动 在内核中的源码位置 系统中的设备名称
    emmc/sdcard 驱动 drivers/mmc/host/sdhci-esdhc-imx.c drivers/mmc/host/sdhci.c drivers/mmc/host/sdhci-pltfm.c /dev/mmcblk*
    LCD与LVDS驱动 drivers/video/fbdev/* /dev/fb*
    电阻触摸屏驱动 drivers/embedsky/touch/*(不开源) dev/input/event*
    电容触摸屏驱动 drivers/embedsky/touch/*(不开源) dev/input/event*
    有线网络驱动 drivers/net/phy/* eth0
    串口驱动 drivers/tty/serial/imx.c drivers/tty/serial/mxs-auart.c drivers/tty/serial/serial_core.c /dev/ttySAC*
    sgtl5000声卡驱动 sound/soc/codecs/* /dev/snd/*
    I2C驱动 drivers/i2c/busses/i2c-imx.c /dev/i2c-*
    按键驱动 drivers/input/keyboard/gpio_keys.c dev/input/event*
    背光灯驱动 drivers/video/backlight/pwm_bl.c drivers/video/backlight/backlight.c /sys/class/backlight/*
    Pwm驱动 drivers/pwm/pwm-imx.c /sys/class/pwm/*
    RTC驱动 drivers/rtc/rtc-pcf8563.c /dev/rtc0
    看门狗驱动 drivers/watchdog/imx2_wdt.c /dev/watchdog
    多媒体摄像头驱动 drivers/embedsky/media/capture(不开源) /dev/video*
    USB控制驱动 drivers/usb/phy/phy-mxs-usb.c /dev/sda*

    例程使用

    1. 下载linux例程,天嵌提供部分接口的例程供参考。
    2. 按照以下相关demo说明参考使用例程。

      UART demo

      (8)拷贝uart文件夹到Ubuntu任意目录下
      (9)进入uart目录
      (10)#cd uart
      (11)执行编译脚本(TQIMX6Q系列使用5.3.1的交叉编译器,其他平台参考使用)
      (12)#./build.sh
      (13)短接测试串口的RX和TX
      (14)将执行程序拷贝至文件系统,进行收发数据测试,执行以下命令即可测试/dev/ttySAC1是否可以正常收发数据

      #./uart_app /dev/ttySAC1 -b 115200 -rw 123asd -asc -l

      注:/dev/ttySAC1为你所测试自收发的串口,可用串口有/dev/ttySAC1~3 /dev/ttySAC0为调试串口,串口有输出即可证明串口正常。

      I2C demo

      I2c可参考i2c文件夹的《天嵌I2C应用开发教程.pdf》

      SPI demo

      (7)拷贝spi文件夹到Ubuntu任意目录下
      (8)进入spi目录 #cd spi
      (9)执行编译脚本(TQIMX6Q系列使用5.3.1的交叉编译器,其他平台参考使用) #./build.sh
      (10)将/dev/spidev1.0的发送与接收引脚短接(如果需要测试其他的spi需要修改spi_test.c的static const char *device参数)
      (11)执行以下命令,发送指定数据 #spi_test -s 50000 -p "ABCDEFG"
      (12)若没有指定发送内容则发送以下数组

       uint8_t default_tx[] = {
       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
       0x40, 0x00, 0x00, 0x00, 0x00, 0x95,
       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
       0xF0, 0x0D,
       };

      CAN demo

      (8)拷贝can文件夹到Ubuntu任意目录下
      (9)进入can目录 #cd can
      (10)执行编译脚本(TQIMX6Q系列使用5.3.1的交叉编译器,其他平台参考使用) #./build.sh
      (11)短接can0 can1(H对H,L对L)
      (12)将执行程序拷贝至文件系统,进行收发数据测试,执行以下命令即可测试CAN0、CAN1 之间是否可以正常收发数据 #./can_test

      GPIO demo

      (6)GPIO调试说明
      d./sys/class/gpio/export文件用于通知系统需要导出控制的GPIO引脚编号,/sys/class/gpio/export写编号,比如以下命令,命令成功后生成/sys/class/gpio/gpio50目录,如果没有出现相应的目录,说明此引脚不可导出;
      说明:计算引脚编号,引脚编号 = 控制引脚的寄存器基数 + 控制引脚寄存器位数 #echo 50 > /sys/class/gpio/export
      e.direction文件,定义输入输入方向; #echo out > /sys/class/gpio/gpio50/direction
      f.value文件是端口的数值,为1或0. echo 1 > value

      #echo 1 > /sys/class/gpio/gpio50/value
      #echo 0 > /sys/class/gpio/gpio50/value

      (7)拷贝gpio文件夹到Ubuntu任意目录下
      (8)进入gpio目录 #cd gpio
      (13)执行编译脚本(TQIMX6Q系列使用5.3.1的交叉编译器,其他平台参考使用) #./build.sh
      (9)gpio_in num1~num2 value
      将gpio配置成输入模式,gpio口从num1到num2,将读取到的值打印出来,并与给定的value比较,不一致则会在屏幕打印ERROR
      如 gpio_in 7~14 1
      将gpio7至gpio14配置成输入模式,将读取到的value打印出来,并与1(高电平)比较,若读取的值与指定的不一致则会打印ERROR
      gpio_out pin~pin value
      将gpio配置成输出模式,gpio口从num1到num2,将value值输出到io口
      如 gpio_out 7~14 1
      将gpio7至gpio14配置成输出模式,输出高电平;
      (10)使用万用表测量你所控的gpio脚

      Capture demo

      (5)拷贝capture文件夹到Ubuntu任意目录下
      (6)进入capture目录 #cd capture
      (14)执行编译脚本(TQIMX6Q系列使用5.3.1的交叉编译器,其他平台参考使用) #./build.sh
      (7)接入屏幕及摄像头(源码经测试:支持tq-ov5640,tvp-5150,usb-摄像头的使用)
      (8)运行指令示例:

      ./v4l2_camera -if 0 -of 0 -t 5 -fr 30 -m 0 -t 5 -di /dev/video2 -v 2
      ./v4l2_camera -if 1 -of 0 -t 5 -fr 30 -m 0 -t 5 -di /dev/video0 -r 1
      ./v4l2_camera -iw 720 -ih 576 -ow 800 -oh 480 -fr 30 -m 0 -t 5
      ./v4l2_camera -iw 640 -ih 480 -ow 1366 -oh 768 -fr 30 -m 0 -t 5

    常用设备使用方法

    :本章节的使用方法仅在资源下载的镜像及源码版本上适用,其他版本的镜像及源码,不予保证功能正常使用,请以各自版本说明为准。

    4G全网通拨号上网

    本方法仅保证适用于tq-SIM7100c,SIM7600c等模块,在板卡串口终端上执行

    #cd /test_file/
    #./link_4g.sh

    N720模块使用:

    #cd /etc/ppp/peers/
    #pppd call n720_init &

    修改&取消默认启动程序

    修改脚本/etc/embedsky_conf: 将脚本内的最后一行:/opt/tqPainter &替换成自己的程序, 如果没有这行, 直接在末尾添加你的程序路径。

    Android开发指南

    编译android固件

    注:在编译android源码前请先查看安装编译环境章节建好 android 的编译环境。 下载Android6.0源码。 如果是单包文件:TQIMX6_android_Vx.xx.tar.bz2 ,将其拷贝到根目录/opt目录下,然后在ubuntu系统中执行

    #cd /opt
    #tar xvjf TQIMX6_android_Vx.xx.tar.bz2 -C /
    #cd /opt/EmbedSky/TQIMX6/android-6.0.1-2.1.0

    如果是多包组合文件:TQIMX6_android_Vx.xxs.tar.bz2a*文件,共有tar.bz2aa~tar.bz2ae五个分包文件,将其所有拷贝至/opt目录下,然后在Ubuntu系统中执行

    #cd /opt
    #cat TQIMX6_android_Vx.xxs.tar.bz2a* | tar xvj
    #cd /opt/EmbedSky/TQIMX6/android-6.0.1-2.1.0
    #./build.sh all 8

    编译完成提示:(酷睿i5-8g内存,第一次编译大概:3小时左右)

    #### make completed successfully (01:14 (mm:ss)) ####

    Android compare success ! Use time: 0h1m15s, 75seconds!
    已成功完成Android编译!总用时:0小时1分15秒;合计:75秒!

    镜像生成路径:
    u-boot:
    out/target/product/sabresd_6dq/u-boot.imx
    内核:
    imx6q-CoreC:out/target/product/sabresd_6dq/boot-imx6q.img
    imx6q-E9v2:out/target/product/sabresd_6dq/boot-e9v2.img
    imx6q-E9v3:out/target/product/sabresd_6dq/boot-e9v3.img
    注:分别对应imx6q-CoreC板卡imx6q-E9v2板卡,imx6q-E9v3板卡的内核镜像,使用烧写时,需要重命名为“boot.img”,详见烧写文档。 system:
    out/target/product/sabresd_6dq/system.img
    recovery:
    imx6q-CoreC:out/target/product/sabresd_6dq/recovery-imx6q.img
    imx6q-E9v2:out/target/product/sabresd_6dq/recovery-e9v2.img
    imx6q-E9v3:out/target/product/sabresd_6dq/recovery-e9v3.img

    Android源码简介

    Android 的源码包中包含有内核源码,uboot 源码,与文件系统源码。
    uboot 源码位于:bootable/bootloader/uboot-imx/
    内核源码位于:kernel_imx/
    其它的即为 android 文件系统源码。
    Android6.0使用的内核版本是是 kernel_4.1.15。以下的路径都是在相对于内核根目录而言。由于驱动代码牵涉较广,难以将所有文件做到一一讲述,所以以下提及的驱动源码只是相对主要或者是修改频率比较高的文件。

    驱动 在内核中的源码位置 系统中的设备名称
    emmc/sdcard 驱动 drivers/mmc/host/sdhci-esdhc-imx.c drivers/mmc/host/sdhci.c drivers/mmc/host/sdhci-pltfm.c /dev/mmcblk*
    LCD与LVDS驱动 drivers/video/fbdev/mxc/* /dev/fb*
    电阻触摸屏驱动 drivers/input/touchscreen/tsc2007.module dev/input/event*
    电容触摸屏驱动 drivers/input/touchscreen/edt-ft5x06.module goodix.module dev/input/event*
    有线网络驱动 drivers/net/phy/* eth0
    串口驱动 drivers/tty/serial/imx.c drivers/tty/serial/mxs-auart.c drivers/tty/serial/serial_core.c /dev/ttySAC*
    sgtl5000声卡驱动 sound/soc/codecs/* /dev/snd/*
    I2C驱动 drivers/i2c/busses/i2c-imx.c /dev/i2c-*
    按键驱动 drivers/input/keyboard/gpio_keys.c dev/input/event*
    红外驱动 drivers/input/keyboard/tq_hs0038.c dev/input/event*
    背光灯驱动 drivers/video/backlight/pwm_bl.c drivers/video/backlight/backlight.c /sys/class/backlight/*
    Pwm驱动 drivers/pwm/pwm-imx.c /sys/class/pwm/*
    RTC驱动 drivers/rtc/rtc-pcf8563.c /dev/rtc0
    看门狗驱动 drivers/watchdog/imx2_wdt.c /dev/watchdog
    多媒体摄像头驱动 drivers/media/platform/mxc/capture/* /dev/video*
    USB控制驱动 drivers/usb/phy/phy-mxs-usb.c /dev/sda*

    修改打包固件

    1.修改system.img固件
    将system.img文件拷贝到/opt目录下,然后执行以下命令

    #mkdir /opt/system
    #mount -t ext4 system.img system

    然后可以往/opt/system目录下看到system.img文件的内容,并修改,修改完后执行以下命令会重新打包system.img #umount system

    例程使用

    Uart demo

    下载天嵌提供Android的UART测试串口测试APK程序serialportApp.apk,如果源码没有此程序,可以将其拷贝至./device/fsl/sabresd_6dq/files/serialportApp.apk目录
    进入
    #vi ./device/fsl/imx6/sabresd_6dq.mk 找到PRODUCT_COPY_FILES,添加一行
    device/fsl/sabresd_6dq/files/serialportApp.apk:system/app/serialportApp.apk 保存重新编译system.img即可在android界面上看到UART测试程序
    短接你要测试的UART的RT和TX,即可使用UART程序进行测试

    Can demo

    下载天嵌提供Android的CAN测试串口测试APK程序serialportApp.apk,如果源码没有此程序,可以将其拷贝至./device/fsl/sabresd_6dq/files/CanServer.apk目录
    进入 #vi ./device/fsl/imx6/sabresd_6dq.mk 找到PRODUCT_COPY_FILES,添加一行 device/fsl/sabresd_6dq/files/serialportApp.apk:system/app/CanServer.apk 保存重新编译system.img即可在android界面上看到CAN测试程序
    短接can0、can1的高低脚,即可使用CAN测试程序进行测试  

    常见问题解答

    FAQ

    FAQ详细信息,请查看《TQIMX6Q_FAQ》文档,文档总结了使用TQIMX6Q系列平台所遇到的部分问题及解决方法,如果查看文档仍未解决问题,请拨打技术支持电话或者发送邮件到技术支持邮箱寻求技术支持。

    技术支持说明

    天嵌科技致力于高科技产业发展提供技术与服务,为广大客户提供嵌入式技术软硬件开发工具与解决方案,致力于ARM内核系列CPU的开发和应用,提供低功耗、高性价比的嵌入式产品,提供针对性强、量身定制的客户化设计;无论是新设计还是对现有产品的改型设计,我们都会为您提供高品质的开发服务。
    由于时间有限,手册难免存在纰漏和错误,诚恳的希望各位读者批评和指正。关于修改的bug,我们会在第一时间在论坛上更新,论坛建有技术支持专区,欢迎大家遇到问题去里面寻找解决方法。还可以通过邮件(support@embedsky.net)与我们联系(为了能够方便跟进记录,请参照邮件落款模板发送邮件)。希望能结识更多的朋友,大家一起共同进步。

    邮件落款模板

    烧写镜像文件版本号:xxx (例如:V2.0_R1.0,版本号在文件名后面有)
    使用板卡、系统:xxx (例如:e9 android 4.3)
    联系人:xxxxx
    联系方式:xxxxx
    公司:xxxxxx (例如:天嵌科技、学校等等)

    常规技术支持范围

    1.使用我司的镜像与开发板。
    2.系统或硬件出现问题时(不包含客户自行开发)

    资源下载

    linux固件源码,提取码:ya1w
    Android固件源码,提取码:nfwd
    Linux OpenIL固件源码,提取码:mxou
    出厂固件,提取码:5plf
    linux例程,提取码:79cr
    Android例程,提取码:nth5
    ubuntu工具&开发环境
    windows工具,提取码:4ii2
    原理图,提取码:kppy
    芯片手册,提取码:wzoz