多媒体视频高清处理芯片——Freescale i.MX6 开发板(IAC-IMX6-Kit)评测
扫描二维码
随时随地手机看文章
i.MX 6Dual(简称i.MX6D)是一款来自NXP(前称Freescale)的高端3D图形处理芯片,采用双核ARM Cortex-A9架构。今天给大家介绍的就是基于i.MX6D为主控设计的第三方开发板——Freescale i.MX6 开发板,来自于NXP的合作伙伴Qiyang科技。
此款开发板是Qiyang科技目前主推的一款开发板,Qiyang将其命名为Freescale i.MX6 开发板,内部型号为IAC-IMX6-Kit。废话不多说,先来看看外观图。
1-1 IMX6开发板正面
1-2 IMX6外部接口
从外观上大家就可以轻易地看出来,IAC-IMX6-Kit采用BASE BOARD与SBC/SOM模块的分体式设计思路,这在开发套件的设计中是一种非常常见的做法,好处自然也是不必多说,用户在使用该开发套件进行产品设计时,灵活度更高。另外也便于厂家对于开发板后期进行硬件升级。下面我们就来分别介绍一下底板和核心板的硬件配置。
1. 硬件资源
IMX6底板:采用高密度4层板(沉金)设计,它扩展了LVDS、网络、HDMI、CAN、矩阵键盘、SATA、高速USB Host\Device、SD卡、RS232\485串口,音频等常用接口,如图1-3。
1-3 IMX6底板
IMX6核心板:采用高密度8层板(沉金)设计,名片大小,集成了CPU、DDR3RAM、NandFlash、NOR FLash、网络、B to B(3*100)接插件引出各种常用接口资源,采用5V直流供电,嵌入到产品是方便了不少。
1-4 IMX6核心板
1-5 IMX6核心板底层视图
这样的接口见的不多,但用料还是不错的,避免了针式在安装过程中针脚倾斜。四块DDR3布线规正,做了等长和铺地等处理。
Freescale IMX6核心板资源说明:
1)处理器
- •标配Freescale i.MX6D双核处理器,ARM® Cortex™-A9内核,主频高达1GHz,兼容单核、双核精简、四核
- •带1MBL2缓存,32KB指令和数据缓存,NEON SIMD媒体加速器
2)256MB DDR3 SDRAM,4*256MB,共1GB,批量用户可扩展为2GB
3)丰富的通讯接口
- •3路RS232串口,其中:1路为调试串口,2路RS232与RS485复用
- •1路USB高速OTG,4路USB HOST,其中1路接入MIN_PCIE接口
- •2路CAN接口,支持CAN2.0协议,1路TTL输出,另1路can驱动输出
- •1路工业用以太网,带有ACT、LINK指示灯,AR8035网络芯片采用RGMII模式完美支持10M/100M/1000M网口自适应
4)显示接口
- •2路LVDS接口,每路最高支持1920x1200分辨率
- •HDMI接口,支持HDMI 1.4接口规范
- •CSI&DSI接口
5) McASP音频接口,双声道音频输出,MIC音频输入
6)LCD标准I2C电容屏接口
7)扩展MINI_PCIE 2.0接口
8)EIM总线接口,SIM卡接口
9)宽电压输入,+12V供电,可支持+4.75V~+18V 宽范围电压供电
核心板采用8层PCB板高精度工艺,体积仅86mm*60m;单板超低功耗,小于3W
操作系统支持 Linux3.0+ QT4.8和Android4.2。
上张全家福照片,如图1-6所示。
1-6 IMX6全家福
1-7板载资源
2、连接测试
串口采用交叉串口线与PC联接,通过网络接千兆网口,并接通12V电源,如图所示:
打开程序:secureCRT
串口设置如下:
[!--empirenews.page--]
点击连接图标,然后开发板上电。窗口打印信息如下所示。
Login:后输入root回车。
输入以下命令:cd /usr/test,进入测试程序文件夹下。
1) 蜂鸣器测试:
./buzzer_test 1 //蜂鸣器开
./buzzer_test 0 //蜂鸣器关
root@fire /usr/test$ ls
Imx6_qt_test keybutton shinian.mp3
buzzer_test rs485_test spidev_test
can_test rtc_test watchdog_feed_test
gpio_test serial_test watchdog_notfeed_test
root@fire /usr/test$ ./buzzer_test 1
root@fire /usr/test$ ./buzzer_test 0
2) GPIO测试
root@fire /usr/test$ ./gpio_test 0
QY-IMX6S-v1.x Gpio Start Testing ...
set gpio 'IMX_GPIO4' level '0'
set gpio 'IMX_GPIO16' level '0'
set gpio 'IMX_GPIO7' level '0'
set gpio 'IMX_GPIO17' level '0'
set gpio 'IMX_GPIO8' level '0'
set gpio 'IMX_GPIO18' level '0'
set gpio 'IMX_GPIO9' level '0'
set gpio 'IMX_GPIO19' level '0'
Gpios is output low level, now you can measure each pin!
Press the ENTER after measure each pins!
set gpio 'IMX_GPIO4' level '1'
set gpio 'IMX_GPIO16' level '1'
set gpio 'IMX_GPIO7' level '1'
set gpio 'IMX_GPIO17' level '1'
set gpio 'IMX_GPIO8' level '1'
set gpio 'IMX_GPIO18' level '1'
set gpio 'IMX_GPIO9' level '1'
set gpio 'IMX_GPIO19' level '1'
Gpios is output high level, now you can measure each pin!
Press the ENTER after measure each pins!
Gpio test OK!
root@fire /usr/test$ ./gpio_test 1
QY-IMX6S-v1.x Gpio Start Testing ...
get gpio 'IMX_GPIO4' level '1'
get gpio 'IMX_GPIO16' level '1'
get gpio 'IMX_GPIO7' level '1'
get gpio 'IMX_GPIO17' level '1'
get gpio 'IMX_GPIO8' level '1'
get gpio 'IMX_GPIO18' level '1'
get gpio 'IMX_GPIO9' level '1'
get gpio 'IMX_GPIO19' level '1'
Gpio test ok!
3)RTC时间测试
命令date后加Enter键
root@fire /usr/test$ date
Wed Jan 27 15:42:55 UTC 2016[!--empirenews.page--]
3、linux环境搭建
1)交叉编译环境搭建
按下面的步骤:
mkdir IMX6_pro //创建IMX6_pro文件夹
mv '//tmp/VMwareDnD/2fed2107/fsl-linaro-toolchain.tar.gz' . //复制fsl-linaro-toolchain.tar.gz 到当前文件夹
tar xzvf fsl-linaro-toolchain.tar.gz /opt //解压文件到opt目录
vi /etc/bash.bashrc //修改path路径
在文件的最后一行加入 PATH=/opt/fsl-linaro-toolchain/bin:$PATH
wq命令保存后退出。
linux@ubuntu:~$ source /etc/bash.bashrc //启动新的路径文件
linux@ubuntu:~$ arm-none-linux-gnueabi-g++ -v //查看是否安装成功
当输入arm-none-按Tab后,能自动补齐,或显示出gcc版本信息,恭喜你交叉编译器安装成功!显示窗口如下。
3) 安装NFS(网络共享)文件
命令:sudo apt-get install portmap //更换成rpcbind完成网络端口配对
sudo apt-get install NFS-kernel-server //安装NFS服务
portmap: NFS其实可以被看作是一个RPC SERVER PROGRAM,而要启动一个RPC SERVER PROGRAM,都要做好PORT的对应工作。通俗的说PortMap就是用来做PORT的mapping的。
pc.NFSd:主要复杂登陆权限检测等 必须
portmap:处理RPC程序客户端和服务器端的端口对应(5)
zhu@ubuntu:/opt$ sudo apt-get install portmap
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'rpcbind' instead of 'portmap'
rpcbind is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 227 not upgraded.
zhu@ubuntu:/opt$ sudo apt-get install rpcbind
Reading package lists... Done
Building dependency tree
Reading state information... Done
rpcbind is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 227 not upgraded.
用最新的rpcbind来进行安装
vi /etc/exports //修改与NFS挂载文件及属性
在最后一行加入:/ *(rw,sync,no_subtree_check,no_root_squash)
*:允许所有的网段访问,也可以使用具体的IP
rw:挂接此目录的客户端对该共享目录具有读写权限
sync:资料同步写入内存和硬盘
no_root_squash:root用户具有对根目录的完全管理访问权限。
no_subtree_check:不检查父目录的权限。
注意:中间不能有空格,否则显示:exportfs: /etc/exports:1: syntax error: bad option list(3)
修改/home文件为持载文件夹,起动NFS服务。
挂载文件系统到/mnt,挂载完成后显示如下,可以看到共享文件中的内容了。
sudo mount -t NFS localhost:/home /mnt //挂载home到共享文件夹
解除挂载:sudo unmount /mnt
NFS服务遇到的问题:
在输入sudo apt-get install NFS-kernel-server时提示:
Unable to locade NFS-kernel-server.
解决办法修复apt-get : sudo apt-get -f install[!--empirenews.page--] 修复安装(4)
4) 应用程序测试。
复制驱动的程序,buzzer_test(驱动源程序),include(头文件)并编译。输入内容及执行情况如下:
5) 连通网络:
查看开发板的ip地址。
root@fire /$ ifconfig
can0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP RUNNING NOARP MTU:16 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:142
can1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP RUNNING NOARP MTU:16 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:143
eth0 Link encap:Ethernet HWaddr DC:07:C1:01:26:A9
inet addr:192.168.154.71 Bcast:192.168.154.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1211 errors:0 dropped:0 overruns:0 frame:0
TX packets:203 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:132973 (129.8 Kb) TX bytes:19446 (18.9 Kb)
通讯测试:
root@fire /$ ping 192.168.154.30
PING 192.168.154.30 (192.168.154.30): 56 data bytes
64 bytes from 192.168.154.30: seq=0 ttl=64 time=4.658 ms
64 bytes from 192.168.154.30: seq=1 ttl=64 time=0.584 ms
64 bytes from 192.168.154.30: seq=2 ttl=64 time=0.520 ms
64 bytes from 192.168.154.30: seq=3 ttl=64 time=0.499 ms
64 bytes from 192.168.154.30: seq=4 ttl=64 time=0.510 ms
64 bytes from 192.168.154.30: seq=5 ttl=64 time=0.514 ms
可以用ifconfig eth0 192.168.154.71来临时修改开发板的IP地址,也可以在开发板上电时,通过setenv方式来修改IP地址等信息。两者的区别在于再次给开发板上电时,前者的ip参数不会被保留,后者会保存下来。现在以后者为例来进行修改,注意与主机的ubuntu地址在同一网段内。方法如下视图。
MX6Q QIYANG U-Boot > printenv
bootdelay=3
baudrate=115200
ethaddr=08:00:3e:26:0a:5b
netmask=255.255.255.0
loadaddr=0x10800000
rd_loadaddr=(0x1300000)
netdev=eth0
ethprime=FEC0
uboot=u-boot.bin
kernel=uImage
NFSroot=/opt/eldk/arm
bootargs_NFS=setenv bootargs ${bootargs} root=/dev/NFS ip=dhcp NFSroot=${serverip}:${NFSroot},v3,tcp
bootcmd_net=run bootargs_base bootargs_NFS; tftpboot ${loadaddr} ${kernel}; bootm
bootcmd_mmc=run bootargs_base bootargs_mmc; mmc dev 3; mmc read ${loadaddr} 0x800 0x2500; bootm
bootcmd=run bootcmd_mmc
loadkernel=tftp ${kernel};mmc dev 3;mmc erase 0x800# 0x2000; mmc write ${loadaddr} 0x800 0x2500
machid=0xF94
ethact=FEC0
bootargs_mmc=setenv bootargs ${bootargs} root=/dev/mmcblk0p1 rootwait rw video=mxcfb0:dev=ldb,1024x600M@60,if=RGB666 ldb=sin0 video=mxcfb1:dev=lcd
bootargs_base=setenv bootargs console=ttymxc0,115200 fec_mac=DC:07:C1:01:26:A9
ipaddr=192.168.154.71
serverip=192.168.154.30
stdin=serial
stdout=serial
stderr=serial
Environment size: 937/8188 bytes[!--empirenews.page--]
编写自己的应用程序,并在开发板上通过NFS运行。
#include
int main(void)
{
printf("Hello Word!\n");
return 0;
}
编译,并拷贝到共享目录下。
linux@ubuntu:~/IMX6_pro/usr_test$ arm-none-linux-gnueabi-gcc hello.c -o hello //编译成开发板的应用程序
linux@ubuntu:~/IMX6_pro/usr_test$ sudo mv hello /home/work/ //传生成的hello.bin文件到共享文件
2)开发板上运行此应用程序:
在SecureCRT中输入以下内容。
root@fire /mnt/work$ ls
buzzer_test gpio_test hello rtc_test u-boot.bin
root@fire /mnt/work$ ./hello
Hello Word!
OK,调试完成了。
参考资料:
(1)NFS文件共享参考:http://xouou.iteye.com/blog/2142842
(2)NFS安装包安装:http://jingyan.baidu.com/article/22a299b51648e09e19376ae7.html
(3)参考:http://blog.pureisle.net/archives/2233.html
本文系21ic原创,未经许可严禁转载