• TQi.MX6UL
  • 产品选型

    TQi.MX6UL接口说明

    产品名称 TQi.MX6UL_B
    架构 Cortex_A7
    CPU NXP iMX6UL
    主频 528MHz
    内存 256MB
    FLASH 256MB
    设计工艺 底板+核心板
    核心板引脚数 160pin
    核心板层数 6层
    电源管理芯片 分立电源电路
    核心板尺寸 50*40mm
    支持系统 Linux4.1+QT5.5
    底板层数、尺寸 2层;182.49*112.47mm
    底板供电电源 12V1A
    USB_Host 4路(2.0)
    USB_OTG 1路(2.0)
    串口 最多支持8路
    以太网 2路,100M/10M
    GPIO 3路,扩展接口引出
    ADC 最多支持10路
    PWM 2路,扩展接口引出
    SPI 2路,扩展接口引出
    IIC 2路(其中扩展接口出1路)
    CAN 2路
    音频 1路PHONE,2路输出
    LCD 40P 0.5FPC,最大分辨率:1366*768
    SD卡 1路
    RS485 1路(与UART2复用)
    Camera 可支持USB摄像头
    Jtag 1路
    工作环境温度
    配套模块 链接
    产品图片
    应用领域 适用工业控制、工业物联网、医疗电子、数据采集、仪器仪表、数字终端、手持仪器、数据通迅、消费电子、安全防护、集中器、网关等

    烧录固件

    1. 启动方式介绍
      tq-imx6ul/tq-imx6ull 提供 3 种启动方式,左边(靠近耳机接口)为 SD/USB 启动端,右边为 FLASH 启动端。通过启动开关来切换不同的启动方式。
    2. 烧录相关说明
      出厂默认已经烧写Linux系统,NAND启动模式下可以正常启动系统,如果需要更换更新版本的系统,则需要使用USB、SD卡或TFTP烧录方式重新烧录板子。
      注:烧录前建议先连接串口线,如烧录失败,根据串口打印信息分析错误原因。

    USB烧录

    1. 将开发板拨码拨为USB启动(SD/USB端),通过USB otg接口连接板子和电脑;
    2. 下载mfgtools_for_6ul_v2.2.zip (提取码:6nrb)烧写工具,烧录方法参考:TQIMX6UL_COREB镜像烧写.pdf第三章节。
    3. 烧录成功后断电,拨回NAND启动(flash端)启动。

    SD卡烧录

    1. 制作烧录卡
      (1)Windows下制作烧录卡
      下载Windows_TQSDMaker.zip (提取码:7yq5),详细的Windows下制作烧录卡信息请查看使用手册:TQSDMaker用户使用手册.pdf
      (2)Linux下制作烧录卡
      下载images_imx6ul_v2.0.tar.bz2 (提取码:470h),详细的Linux下制作烧录卡信息请查看:TQIMX6UL_COREB镜像烧写.pdf
    2. 功制作SD烧录卡后,将拨码启动方式拨为01(SD卡启动),插卡上电进行烧录操作;
    3. 烧录成功后断电拨回NAND启动(10)启动。

    TFTP烧录

    如果无法从 nand 启动,在 tftp 烧写前要先制作 sd 启动卡,如果nand可以启动可以直接进入uboot菜单进行TFTP烧录操作,详细的TFTP烧录可查看手册:<<TQIMX6UL_COREB镜像烧写.pdf>>TFTP烧录章节。

    1. 搭建TFTP服务器,具体可参考安装编译环境章节
    2. 放置要烧写的镜像置TFTP目录,相应镜像名修改为 u-boot.imx zImage tq-imx6ul.dtb rootfs.img(烧写镜像的名子可以在 uboot 中设置的,这里使用默认镜像名)
    3. 接上串口,上电。在uboot倒数完之前,按空格键中断自动启动。
      ...
      Date: 2010-01-01 (Friday)    Time:  3:45:13
      Hit any key to stop autoboot:  0 #读秒倒数

      出现以上字段之前按

    4. 进入命令行菜单选择menu->0->6,设置TFTP服务器参数
    5. 进入命令行菜单选择menu->n,选择相应选项更新所要更新的镜像即可
      ##### TQ-IMX6UL U-boot MENU ##### 
      [TFTP MODE] 
      ####################################### 
      [1] Download u-boot to Nand Flash [uboot.imx]       --tftp 更新 u-boot 
      [2] Download Logo image to Nand Flash [logo.bmp]    --tftp 更新 logo 
      [3] Download Linux Kernel to Nand Flash [zImage]    --tftp 更新内核 
      [4] Download Device tree blob(*.dtb) [tq-imx6ul.dtb]    --tftp 更新设备树 
      [5] Download UBIFS image to Nand Flash [rootfs.img]     --tftp 更新文件系统 
      [7] Download all (uboot,kernel,dtb,rootfs)          --tftp 更新全部镜像 
      [8] Boot the system                         --启动系统 
      [9] Format the Nand Flash                   --格式化 nand flash 
      [0] Set the boot parameters                     --设置其他参数 
      [p] Test network (Ping PC's IP) [pc:192.168.1.35,arm:192.168.1.41] --测试 pc 与 arm 网络是否连通 
      [r] Restart u - boot                        --重启 u-boot 
      [k] Test kernel Image (zImage)                  --测试内核 
      [d] Test dtb Image (*.dtb)                  --测试设备树 
      [a] test kernel and dtb                     --测试内核和设备树 
      [q] Return Main menu                        --返回主菜单 
      Please press a key to continue : 
    6. 更新完按8启动系统

    串口调试

    连接串口线

    TQi.MX6UL串口接线图

    Windows平台使用终端

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

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

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

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

    扩展模块

    模块名称 TQIMX6UL TQIMX6ULL
    5寸高清电容屏 OK OK
    TN92 7寸电容/电阻屏 OK OK
    TN83 7寸电阻屏 OK OK
    7寸高清屏 OK OK
    10.4寸电阻屏 OK OK
    WIFI(RTL8723+BT) OK OK
    4G(SIM7600) OK OK
    4G(N720) OK OK

    功能配置

    切换屏幕、设置网络环境等uboot使用请查看TQIMX6UL_COREB_uboot菜单手册.pdf第六章。

    安装编译环境

    1.下载gcc-linaro-4.9-20190425.tar.bz2(提取码:vub7)文件,将其拷贝到根目录/opt下,然后在ubuntu系统中执行

    #cd /opt
    #tar jxvf gcc-linaro-4.9-20190425.tar.bz2 -C /
    #echo PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/EmbedSky/linaro-4.9/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin:/opt/EmbedSky/linaro-4.9/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/sysroot/usr/bin">> /etc/environment
    #source /etc/environment
    #arm-linux-gnueabihf-gcc -v

    搭建nfs服务器

    在Ubuntu系统中执行以下命令,可以在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文件

    硬件开发指南

    pin脚功能

    pin 引脚名称 功能描述 使用注意事项备注 pin 引脚名称 功能描述 使用注意事项备注
    1 VDD_5V 供电功能 2 GND
    3 VDD_5V 供电功能 4 GND
    5 USB_OTG1_VBUS USB OTG功能 USB OTG电源脚 6 USB_OTG2_DP USB HOST功能 数据线正极
    7 USB_OTG1_ID USB OTG扩展ID引脚 8 USB_OTG2_DM 数据线负极
    9 USB_OTG1_DP 数据线正极 10 UART1_TXD 串口1(调试串口)发送 对应节点/dev/ttySAC0
    11 USB_OTG1_DM 数据线负极 12 UART1_RXD 串口1(调试串口)接收
    13 UART2_TXD 串口2发送 对应节点/dev/ttySAC1 14 UART3_TXD 串口3发送 对应节点/dev/ttySAC2
    15 UART2_RXD 串口2接收 16 UART3_RXD 串口3接收
    17 UART4_TXD 串口4发送 对应节点/dev/ttySAC3 18 UART5_TXD 串口5发送 对应节点/dev/ttySAC4
    19 UART4_RXD 串口4接收 20 UART5_TXD 串口5接收
    21 GND 22 GND
    23 SD1_CLK SD卡时钟脚 对应节点/dev/mmcblk* 24 SD1_CMD SD卡命令/回应脚 对应节点/dev/mmcblk*
    25 SD1_DATA0 SD卡数据0脚 26 SD1_DATA1 SD卡数据1脚
    27 SD1_DATA2 SD卡数据2脚 28 SD1_DATA3 SD卡数据3脚
    29 UART1_RTS(SD1_CD) SD卡检测脚 30 JTAG_TDO(I2S_LRCK) JTAG功能 JTAG和音频I2S信号复用
    31 JTAG_nTRST(I2S_SDOUT) JTAG功能  JTAG和音频I2S信号复用 32 JTAG_TDI(I2S_BCLK)
    33 JTAG_TCK(I2S_SDIN) 34 JTAG_TMS(I2S_MCLK)
    35 CSI_PIXCLK(I2C1_SCL) IIC1时钟 对应i2c节点为/dev/i2c-0 36 CSI_HSYNC(I2C2_SCL) IIC2时钟 连接声卡、RTC、电容电阻触摸,对应i2c节点为/dev/i2c-1
    37 CSI_MCLK(I2C1_SDA) IIC1数据 38 CSI_VSYNC(I2C2_SDA) IIC2数据
    39 GND 40 GPIO_8(PWM_LCD) LCD功能 LCD背光脚,通过PWM频率控制背光
    41 CAP_INT LCD功能 电容触摸中断脚 42 CAP_RST 电容触摸复位脚
    43 GPIO_1(TSYP) 触摸屏接口 44 GPIO_2(TSYM) 触摸屏接口
    45 GPIO_3(TSXP) 触摸屏接口 46 GPIO_4(TSXM) 触摸屏接口
    47 GND 48 GND
    49 LCD_PCLK LCD功能 LCD时钟脚 50 LCD_HSYNC LCD功能 行同步信号
    51 LCD_DE 52 LCD_VSYNC 场同步信号
    53 LCD_DATA22 54 LCD_DATA23
    55 LCD_DATA20 56 LCD_DATA21
    57 LCD_DATA18 58 LCD_DATA19
    59 LCD_DATA16 60 LCD_DATA17
    61 LCD_DATA14 62 LCD_DATA15
    63 LCD_DATA12 64 LCD_DATA13
    65 LCD_DATA10 66 LCD_DATA11
    67 LCD_DATA8 68 LCD_DATA9
    69 LCD_DATA6 70 LCD_DATA7
    71 LCD_DATA4 72 LCD_DATA5
    73 LCD_DATA2 74 LCD_DATA3
    75 LCD_DATA0 76 LCD_DATA1
    77 GND 78 BOOT 启动方式选择 通过底板上的轻触开关,接地即进入烧写模式
    79 RTC_VCC RTC供电功能 为RTC时钟供电 80 PMIC_ON_REQ 电源唤醒信号脚
    81 GND 82 GND
    83 ETH1_TXP 以太网接口1 84 ETH1_RXP 以太网接口1
    85 ETH1_TXM 86 ETH1_RXM
    87 悬空 88 悬空
    89 悬空 90 悬空
    91 NET1_ACT 以太网接口1 92 NET1_SPD 以太网接口1
    93 GPIO_9(PWM2_OUT) PWM功能 对应节点/sys/class/pwm/* 94 GPIO_5 核心板引出,底板悬空,预留接口
    95 GND 96 GND
    97 CSI_DATA5(SPI1_NSS) SPI功能 对应节点/dev/spidev0.0 98 CSI_DATA7(SPI1_MISO) SPI功能 对应节点/dev/spidev0.0
    99 CSI_DATA4(SPI1_CLK) 100 CSI_DATA6(SPI1_MOSI)
    101 UART3_CTS(CAN1_TX) CAN功能 对应节点can0 102 UART2_CTS(CAN2_TX) CAN功能 对应节点can1
    103 UART3_RTS(CAN1_RX) 104 UART2_RTS(CAN2_RX)
    105 ADC1 留空 106 ADC2 留空
    107 ADC3 留空 108 ADC4 留空
    109 UART1_CTS(USB2_RST) USB功能 USB2 复位引脚 110 SNVS_TAMPER4(AUD_INT) 降低省电模式下的VSNV功耗
    111 SNVS_TAMPER8(CAN1_2_STBY) CAN功能 省电开关 112 SNVS_TAMPER0(NET_RST)
    113 SNVS_TAMPER1(SD1_RST) SD卡功能 SD卡复位脚 114 SNVS_TAMPER6(ET2_INT)
    115 SNVS_TAMPER7(GPIO5_IO7) LED功能(LED2) 对应节点/sys/class/leds/LED2 116 SNVS_TAMPER2(GPIO5_IO2) LED功能(LED1) 对应节点/sys/class/leds/LED1
    117 CSI_DATA1(SPI2_NSS) SPI功能 对应节点/dev/spidev1.0 118 JTAG_MOD(GPIO1_IO10) 核心板引出,底板悬空,预留接口
    119 CSI_DATA0(SPI2_CLK) 120 CSI_DATA3(SPI2_MISO) SPI功能 对应节点/dev/spidev1.0
    121 悬空 122 CSI_DATA2(SPI2_MOSI)
    123 GND 124 GND
    125 NET2_TX_CLK 以太网接口2 126 NET2_TXD0 以太网接口2
    127 NET2_TXEN 128 NET2_TXD1
    129 NET2_RXER 130 NET2_RXD0
    131 NET2_CRS_DV 132 NET2_RXD1
    133 GND 134 GND
    135 GPIO_6(NET_MDIO) 以太网功能(MDIO总线) 数据线(MDIO) 136 GPIO_7(NET_MDC) 以太网功能(MDIO总线) 时钟线(MDC)

    性能参数

    板卡性能参数表

    功耗参数

    工作条件 电源电压 电源电流 基本功耗 电源电流峰值 最大功耗
    系统启动过程 12v 210mA 2.52w 230mA 2.76w
    待机基本界面 12v 170mA 2.04w 180mA 2.16w
    播放视频
    接通网络
    工作条件 电源电压 电源电流 基本功耗 电源电流峰值 最大功耗
    系统启动过程 12v 250mA 3.00w 330mA 3.96w
    待机基本界面 12v 220mA 2.64w 240mA 2.88w
    播放视频
    接通网络
    工作条件 电源电压 电源电流 基本功耗 电源电流峰值 最大功耗
    系统启动过程 12v 100mA 1.20w 120mA 1.44w
    待机基本界面 12v 90mA 1.08w 90mA 1.08w
    播放视频
    接通网络
    工作条件 电源电压 电源电流 基本功耗 电源电流峰值 最大功耗
    系统启动过程 5v 160mA 0.80w
    待机基本界面
    播放视频
    接通网络

    Linux开发指南

    编译bootloader固件

    下载uboot源码TQIMX6UL_uboot_V2.1.tar.bz2 (提取码:4bug),将其拷贝到根目录/opt目录下,然后在ubuntu系统中执行

    #cd /opt
    #tar xjf TQIMX6UL_uboot_V2.0.tar.bz2 -C /
    #cd /opt/EmbedSky/TQIMX6UL/uboot-imx
    #./build.sh

    然后等待编译完成,编译完成后可以看到在此目录下有
    imx6ul使用uboot:u-boot-imx6ul.imx
    imx6ull使用uboot:u-boot-imx6ull.imx
    文件可以直接烧录到对应的板卡中启动,具体使用的是哪款板卡可以查看官网的产品信息。

    编译kernel固件

    下载linux源码TQIMX6UL_linux_V2.2.tar.bz2 (提取码:yltg),将其拷贝到根目录/opt目录下,然后在ubuntu系统中执行

    #cd /opt
    #tar xjf TQIMX6UL_linux_V2.0.tar.bz2 -C /
    #cd /opt/EmbedSky/TQIMX6UL/linux-imx-4.1.15
    #./build.sh

    然后等待编译完成,编译完成后可以看到在此目录下有
    imx6ul、imx6ull使用kernel:zImage
    tq-imx6ul设备树文件:
    tq-imx6ul_net0_net1.dtb
    tq-imx6ul_net0_uart.dtb
    tq-imx6ull设备树文件:
    tq-imx6ull_net0_net1.dtb
    tq-imx6ull_net0_uart.dtb
    文件可以直接烧录到对应板卡中启动,具体使用的是哪款板卡可以查看官网的产品信息。设备树文件分别是双网卡,单网卡+串口复用的设备树,具体使用设备树视客户使用情况而定。

    制作rootfs固件

    下载系统源文件rootfs_general_v1.2.tgz (提取码:j1oa),将其拷贝到根目录/下,然后在ubuntu系统中执行:

    #mkdir rootfs               //新建文件夹
    #tar xvf rootfs_general_v1.0.tgz -C ./rootfs/       //解压到/rootfs,注意不要解压到根目录下
    #/opt/EmbedSky/linaro-4.9/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/mkubi256M_2k ./rootfs

    执行完之后会在当前目录下生成rootfs_2k.img文件,此文件可直接烧写到板卡启动。

    Kernel源码简介

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

    驱动 在内核中的源码位置 系统中的设备名称
    emmc/sdcard 驱动 drivers/mmc/host/sdhci-esdhc-imx.c /dev/mmcblk*
    drivers/mmc/host/sdhci.c
    drivers/mmc/host/sdhci-pltfm.c
    LCD 驱动 drivers/video/fbdev/mxc/mxc_edid.c /dev/fb*
    drivers/video/fbdev/mxc/mxc_dispdrv.c
    drivers/video/fbdev/mxc/mxc_lcdif.c
    drivers/video/fbdev/mxc/mxc_ipuv3_fb.c
    电阻触摸屏驱动 drivers/input/touchscreen/imx6ul_tsc.c dev/input/event*
    电容触摸屏驱动 drivers/input/touchscreen/goodix.c dev/input/event*
    有线网络驱动 drivers/net/ethernet/freescale/fec_main.c eth0
    串口驱动 drivers/tty/serial/imx.c /dev/ttySAC*
    drivers/tty/serial/mxs-auart.c
    drivers/tty/serial/serial_core.c
    sgtl5000声卡驱动 sound/soc/imx/* /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/clk/clk-pwm.c /sys/class/pwm/*
    RTC驱动 drivers/rtc/rtc-pcf8563.c /dev/rtc0
    看门狗驱动 drivers/watchdog/imx2_wdt.c /dev/watchdog
    ADC驱动 drivers/iio/adc/imx7d_adc.c /sys/devices/platform/soc/2100000.aips-bus/2198000.adc/iio\:device0/in_voltage%d_raw

    编译QT程序

    1.下载qt例程tqPainter.tar.gz(提取码:uetq)
    2.查看手册搭建环境及编译QT5.5开发环境搭建.pdf

    例程使用

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

    Uart demo

    1.拷贝uart文件夹到Ubuntu任意目录下
    2.进入uart目录

    #cd uart

    3.执行编译脚本(TQIMX6Q系列使用5.3.1的交叉编译器,其他平台参考使用)

    #./build.sh

    4.短接测试串口的RX和TX
    5.将执行程序拷贝至文件系统,进行收发数据测试,执行以下命令即可测试/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

    1.拷贝spi文件夹到Ubuntu任意目录下
    2.进入spi目录

    #cd spi

    3.执行编译脚本

    #./build.sh

    4.将/dev/spidev1.0的发送与接收引脚短接(如果需要测试其他的spi需要修改spi_test.c的static const char *device参数)
    5.执行以下命令,发送指定数据

    #spi_test -s 50000 -p "ABCDEFG"

    6.若没有指定发送内容则发送以下数组

        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

    1.拷贝can文件夹到Ubuntu任意目录下
    2.进入can目录

    #cd can

    3.执行编译脚本

    #./build.sh

    4.短接can0 can1(H对H,L对L)
    5.将执行程序拷贝至文件系统,进行收发数据测试,执行以下命令即可测试CAN0、CAN1之间是否可以正常收发数据

    #./can_test

    GPIO demo

    (1)拷贝gpio文件夹到Ubuntu任意目录下
    (2)进入gpio目录

    #cd gpio

    (3)执行编译脚本

    #./build.sh

    (4)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配置成输出模式,输出高电平;
    (5)使用万用表测量你所控的gpio脚

    常用设备使用方法

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

    Wifi热点发送功能

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

    #cd /test_file/
    #./send_ap.sh

    默认账号:test 密码:12345678
    修改账号密码方法:

    #vim  /etc/hostapd.conf  

    账号对应项:ssid=test
    密码对应项:wpa_passphrase=12345678

    Wifi连接热点功能

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

    #cd /test_file/
    #./link_wifi.sh

    默认账号:CDMA-yalu密码:1234567890
    wifi用户、密码修改:

    #vim /etc/wpa_supplicant.conf 

    账号对应项:ssid="CDMA-yalu"
    密码对应项:psk="1234567890"

    4G全网通拨号上网

    1.tq-SIM7100,SIM7600使用,在板卡串口终端上执行

    #/test_file/link_4g_sim7600.sh

    2.N720模块使用,在板卡串口终端上执行

    #/test_file/link_4g_N720.sh

    注:使用N720如果报错,很可能是串口出错,可以

    #vi /etc/ppp/peers/tq_N720_connect

    修改/dev/ttyUSB0为/dev/ttyUSB1或者/dev/ttyUSB2,保存重新拨号。

    SSH远程登陆

    1.先在开发板中配置好网络,例如下面命令是将以太网的ip设置为192.168.1.6:

    #ifconfig eth0 192.168.1.6

    2.然后在PC中执行ssh root@192.168.1.6可以登录开发板(前提是网络能够互相ping通)

    FTP获取文件

    1.按照环境搭建章节搭建好ftp服务器
    2.在开发板上执行以下命令可以获取电脑中的文件:

    #ftpget -u ftpname -p 123 192.168.1.xxx filename

    其中123为用户ftpname的密码,192.168.1.xxx为ftp服务器的ip,filename为需要获取的文件名。

    常用外设使用方法

    RTC使用

    插上电池,确保电池有电,进入系统后通过以下命令设置时间:

    # date -s "2019-04-28 15:06:00"
    Sun Apr 28 15:06:00 UTC 2019
    # hwclock -w
    # date 
    Sun Apr 28 15:06:09 UTC 2019

    最好设置和自己手机上一样的时间。设置完成后断开12V电源,等待5秒以上。重新接上电源进入系统使用date或hwclock命令查看当前时间,观察时间是否正确。最好断电一天后第二天再上电看时间是否还正确。RTC能够保存时间,要测试精准度最好断电一天后第二天再上电看时间是否还正确。

    UART使用

    tq-imx6ul/tq-imx6ull有8个串口:

    串口 设备名 功能 电平 板子上的丝印
    串口0 /dev/ttySAC0 调试串口 RS232 CON1
    串口1 /dev/ttySAC1 用户自定义 RS485 CON2
    串口2 /dev/ttySAC2 用户自定义 RS232 CON3
    串口3 /dev/ttySAC3 用户自定义 RS232 CON4
    串口4 /dev/ttySAC4 用户自定义 RS232 CON5
    串口5 /dev/ttySAC5 用户自定义 TTL CON6
    串口6 /dev/ttySAC6 用户自定义 TTL CON7
    串口7 /dev/ttySAC7 用户自定义 TTL CON8

    板载的串口均为3线串口。除了串口0用作调试串口,其它串口用户都可以使用。
    注意:
    1.串口6、7与网卡复用,默认不使用串口功能,如果要使用请烧写对应板卡的单网卡+网卡复用(imx6ul为:tq-imx6ul_net0_uart.dtb,imx6ull为:tq-imx6ull_net0_uart.dtb)的设备树文件。
    2.串口1默认是485电平,即在默认情况下测试CON2是不通的。若要使用TTL电平,把R194、R200 NC掉,把 R255、R256接成33R的电阻;UART2为TTL电平输出。具体请参考硬件手册。
    例如测试CON4与CON5的通信,短接上CON4的rx与CON5的tx,执行命令:

    # serialapp --sd /dev/ttySAC4 --rd /dev/ttySAC3 -R -B115200 -l3

    CAN使用

    短接can0与can1的H与L,以下是测试过程:

    # ifconfig can0 down
    # ip link set can0 type can bitrate 1000000 triple-sampling on
    # ifconfig can0 up
    flexcan 2090000.can can0: writing ctrl=0x012320d4
    # ifconfig can1 down 
    # ip link set can1 type can bitrate 1000000 triple-sampling on 
    # ifconfig can1 up 
    flexcan 2094000.can can1: writing ctrl=0x012320d4
    # candump can1&                             #监听can1
    # cansend can0 111#1122334455667788                 #can0发送数据
      can1  111   [8]  11 22 33 44 55 66 77 88  #can1接收到的数据

    LED控制

    控制LED只是设置一下高低电平即可。系统有2个led灯,具体操作是一样的,只有路径有不一样,led1的操作目录是/sys/class/leds/LED1/,led2的操作目录是/sys/class/leds/LED2/。下面以led1为例,简单说明如何使用:
    点亮LED1,在命令行输入下列命令:

    #echo 0 > /sys/class/leds/led1/brightness

    熄灭LED1,在命令行输入下列命令:

    #echo 1 > /sys/class/leds/led1/brightness

    GPIO使用

    注:控制gpio需要保证该引脚已经配置成普通gpio,例如控制GPIO5_IO2

    #echo 130 > /sys/class/gpio/export
    #echo out > /sys/class/gpio/gpio130/direction
    #echo 1 > /sys/class/gpio/gpio130/value
    #echo 0 > /sys/class/gpio/gpio130/value

    说明: a./sys/class/gpio/export文件用于通知系统需要导出控制的GPIO引脚编号,/sys/class/gpio/export写编号,比如以下命令,命令成功后生成/sys/class/gpio/gpio130目录,如果没有出现相应的目录,说明此引脚不可导出; 计算引脚编号,引脚编号 = 控制引脚的寄存器基数 + 控制引脚寄存器位数 b.value文件是端口的数值,为1或0,echo写入高低电平之后可以使用万用表测量该引脚是否可控。 c.direction文件,定义输入输入方向;

    PWM使用

    在命令行中设置PWM输出,调出pwm0目录下设备节点,*为你要设的pwm。 在命令行输入下列命令:

    #echo 0 > /sys/class/pwm/pwmchip*/export 
    #echo 1 > /sys/class/pwm/pwmchip*/pwm0/enable //设置使能
    #echo 1000000 > /sys/class/pwm/pwmchip*/pwm0/period  //设置周期
    #echo 500000 > /sys/class/pwm/pwmchip*/pwm0/duty_cycle   //设置占空比

    背光控制

    在命令行中设置背光亮度:

    #echo xxx >/sys/class/backlight/backlight/brightness 

    其中xxx为0~6的数值,表示背光的亮度,0为最暗,6为最亮
    在代码中设置背光亮度:

    Int fd = Open(“/sys/class/backlight/backlight/brightness”,O_RDWR);
    write(fd,”6”,2);    //设置背光值为50
    Close(fd);

    音频使用

    播放音频,接耳机或喇叭后执行:

    #aplay /root/test_utils/music_20s.wav

    录音执行:

    #arecord -Dhw:0,1 -d 10 -f cd -r 44100 -c 2 -t wav test.wav

    修改&取消默认启动程序

    修改/etc/embedsky_conf文件,/opt/PDA/bin/tqpda &是默认开机启动qt程序,若要取消开机启动程序,在其前面加#注释掉即可;若要修改默认启动程序将其替换自己要的程序即可。  

    常见问题解答

    FAQ

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

    技术支持说明

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

    邮件落款模板

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

    常规技术支持范围

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

    资源下载

    Linux固件源码,提取码:8xch
    出厂固件,提取码:adxc
    Linux例程,提取码:y9gb
    Linux工具&开发环境,提取码:ejsd
    Windows工具,提取码:fn5h
    原理图,提取码:kl0i
    芯片手册,提取码:34jc