赞
踩
参考:NXP I.MX6ULL芯片介绍以及资料的获取
作者:一只青木呀
发布时间:2020-09-26 10:54:26
网址:https://blog.csdn.net/weixin_45309916/article/details/108808573
I.MX6ULL芯片是NXP(恩智浦收购飞思卡尔)官方的一款芯片。
官方网址:https://www.nxp.com/
注:ARM架构信息要去ARM官网查询,官网地址:https://www.arm.com/。
I.MX6ULL芯片是ARM 和I.MX6U系列
要学嵌入式Linux 驱动开发肯定需要一个硬件平台,也就俗称的开发板,本书使用的是正点原子出品的I.MX6U-ALPHA/Mini 开发板。ALPHA 是全功能开发板,Mini 是精简版。这两款都是以NXP 的I.MX6ULL 为核心的Cortex-A7 开发平台,板载资源丰富,非常适合以前学过Cortex-M 内核单片机(比如STM32)的工程进阶嵌入式Linux 开发。工欲善其事,必先利其器,本章我们就先来详细了解一下未来将会陪伴我们很长一段时间的朋友——I.MX6U-ALPHA/Mini 开发平台。
正点原子目前已经拥有多款STM32、I.MXRT 以及FPGA 开发板,这些开发板常年稳居淘宝销量冠军,累计出货超过10W 套。这款ALPHA 开发板,是正点原子推出的第一款Linux 开发板,采用底板+核心板的形式。接下来我们分别介绍I.MX6U-ALPHA 开发板的底板和核心板。
首先,我们来一下I.MX6U-ALPHA 开发板的底板资源图,V2.4 版本以前底板如图5.1.1.1所示:
图5.1.1.1 I.MX6U-ALPHA 开发板V2.4 以前版本底板资源图
V2.4 及以后版本底板资源如图5.1.1.2 所示:
图5.1.1.2 I.MX6U-ALPHA 开发板V2.4 及以后版本底板资源图
图5.1.1.1 和5.1.1.2 这两个底板在外观上最主要的区别有两点:
①、USB_OTG 座换成了Type-C,并且去掉了USB OTG 的HOST 座。
②、USB_TTL 这个串口接口也更换成了Type-C。
I.MX6U-ALPHA 开发板底板资源十分丰富,把I.MX6UL/ULL 的内部资源发挥到了极致,基本所有I.MX6UL/ULL 的内部资源都可以在此开发板上验证,同时扩充丰富的接口和功能模块,整个开发板显得十分大气。
开发板的外形尺寸为100mm*180mm 大小,板子的设计充分考虑了人性化设计,并结合正
点原子多年的开发板设计经验,经过多次改进,最终确定了这样的设计。
正点原子I.MX6U-ALPHA 开发板底板板载资源如下:
◆1 个核心板接口,支持I.MX6UL/6ULL 等核心板
◆1 个电源指示灯(蓝色)
◆1 个状态指示灯(红色)
◆1 个六轴(陀螺仪+加速度)传感器芯片,ICM20608
◆1 个高性能音频编解码芯片,WM8960
◆1 路CAN 接口,采用TJA1050 芯片
◆1 路485 接口,采用SP3485 芯片
◆1 路RS232 串口(母)接口,采用SP3232 芯片
◆1 个ATK 模块接口,支持正点原子蓝牙/GPS/MPU6050/手势识别等模块
◆1 个光环境传感器(光照、距离、红外三合一)
◆1 个摄像头模块接口
◆1 个OLED 模块接口
◆1 个USB 串口,可用于代码调试
◆1 个USB SLAVE(OTG)接口,用于USB 从机通信
◆1 个有源蜂鸣器
◆1 个RS232/RS485 选择接口
◆1 个串口选择接口
◆1 个TF 卡接口(在板子背面)
◆2 个10M/100M 以太网接口(RJ45)
◆1 个录音头(MIC/咪头)
◆1 路立体声音频输出接口
◆1 路立体声录音输入接口
◆1 个小扬声器(在板子背面)
◆2 个扬声器外接接口,左右声道。
◆1 组5V 电源供应/接入口
◆1 组3.3V 电源供应/接入口
◆1 个直流电源输入接口(输入电压范围:DC6~18V)
◆1 个启动模式选择配置接口
◆1 个RTC 后备电池座,并带电池
◆1 个复位按钮,可用于复位MPU 和LCD
◆1 个功能按钮
◆1 个电源开关,控制整个板的电源
◆1 个Mini PCIE 4G 模块接口
◆1 个Nano SIM 卡接口
◆1 个SDIO WIFI 接口
正点原子I.MX6U-ALPHA 开发板底板的特点包括:
1)、接口丰富。板子提供十来种标准接口,可以方便的进行各种外设的实验和开发。
2)、设计灵活。我们采用核心板+底板形式,板上很多资源都可以灵活配置,以满足不同条
件下的使用;我们引出了105 个IO 口,极大的方便大家扩展及使用。
3)、资源丰富。板载高性能音频编解码芯片、六轴传感器、百兆网卡、光环境传感器以及各
种接口芯片,满足各种应用需求。
4)、人性化设计。各个接口都有丝印标注,且用方框框出,使用起来一目了然;部分常用
外设大丝印标出,方便查找;接口位置设计合理,方便顺手。资源搭配合理,物尽其用。
接下来,我们来看I.MX6ULL 核心板资源图,正点原子的I.MX6ULL 核心板根据存储芯片的不同分为EMMC 和NAND 两种,根据对外提供的接口可以分为邮票孔和BTB 两种。本教程主要使用与教学的,所以只会讲解BTB 接口的核心板,BTB 接口的NAND 版本核心板如图5.1.3.1 所示:
图5.1.3.1 I.MX6ULL NAND BTB 接口核心板资源图
从图5.1.3.1 可以看出,I.MX6ULL 核心板板载资源丰富,可以满足各种应用的需求。整个核心板的外形尺寸为46mm*36mm 大小,非常小巧,并且采用了贴片板对板连接器,使得其可以很方便的应用在各种项目上。I.MX6ULL NAND 版核心板为工业级工作温度,可以应用在温度要求严格的场合。
正点原子I.MX6ULL NAND 版核心板板载资源如下:
◆CPU:MCIMX6Y2CVM05AB(工业级)或MCIMX6Y2CVM08AB(工业级),主频分别为528MHz 和800MHz(实际为792MHz),BGA289
◆外扩DDR3L:NT5CC128M16JR-EK,256MB 字节,工业级
◆NAND FLASH:MT29F2G08ABAEAWP-IT 或MT29F4G08ABADAWP-IT,分别为256MB/512MB 字节,均为工业级
◆两个2*30 的防反插BTB 座,共引出120 PIN 。
BTB 接口的EMMC 版本核心板如图5.1.3.2 所示:
图5.1.3.2 I.MX6ULL EMMC BTB 接口核心板资源图
从图5.1.3.2 可以看出,EMMC 版本的核心和NAND 版本的基本一样,不同之处在于将NAND 换成了EMMC,将DDR3L 换成了512MB 的商业级。因此正点原子的EMMC 核心板为商业级的工作温度范围,如需工业级的请联系定制。
正点原子I.MX6ULL EMMC 版核心板板载资源如下:
◆CPU:MCIMX6Y2CVM08AB(工业级),800MHz(实际792MHz),BGA289
◆外扩DDR3L:NT5CC256M16EP-EK,512MB 字节,商业级。
◆EMMC:KLM8G1GET,这是一个8GB 的EMMC 芯片。
◆两个2*30 的防反插BTB 座,共引出120 PIN
正点原子I.MX6ULL 核心板的特点包括:
1)体积小巧。核心板仅46mm*36mm 大小,方便使用到各种项目里面。
2)集成方便。核心板使用120P BTB 连接座,可以非常方便的集成到客户PCB 上,更换简单,方便维修测试。
3)资源丰富。核心板板载:256MB/512MB DDR3L、可以选择NAND 或EMMC 等存储器,可以满足各种应用需求。
4)性能稳定。核心板采用6 层板设计,单独地层、电源层,且关键信号采用等长线走线,保证运行稳定、可靠。
5)不管是NAND 还是EMMC 核心板均通过了CE 和FCC 认证。
6)人性化设计。底部放有详细丝印,方便安装;按功能分区引出IO 口,方便布线。
资源说明部分,这两个开发板我们将分为两个部分说明:硬件资源说明和软件资源说明。
这里我们首先详细介绍I.MX6U-ALPHA 开发板的各个部分,我们将按逆时针的顺序依次介绍:
核心板蓝色电源指示灯
8GB EMMC
24MHz 无源晶振
I.MX6ULL 主控芯片,
MCIMX6Y2CVM08AB/
MCIMX6Y2CVM05AB
512MB DDR3L
32.768KHz 无源晶振
1、CAN 接口
这是开发板板载的CAN 总线接口(CAN),通过2 个端口和外部CAN 总线连接,即CANH和CANL。这里提醒大家:CAN 通信的时候,必须CANH 接CANH,CANL 接CANL,否则可能通信不正常!
2、RS232/485 选择接口
这是开发板板载的RS232(COM3)/485 选择接口(JP1),因为RS485 基本上就是一个半双工的串口,为了节约IO,我们把RS232(COM3)和RS485 共用一个串口,通过JP1 来设置当前是使用RS232(COM3)还是RS485。这样的设计还有一个好处。就是我们的开发板既可以充当RS232 到TTL 串口的转换,又可以充当RS485 到TTL485 的转换。(注意,这里的TTL 高电平是3.3V)
3、I.MX6ULL 核心板接口
这是开发板底板上面的核心板接口,由2 个230 的贴片板对板接线端子(3710F 公座)组成,可以用来插正点原子的I.MX6UL/ULL 核心板等,从而学习I.MX6UL/6ULL 等芯片,达到一个开发板,学习多款SOC 的目的,减少重复投资。
4、RGBLCD 接口
这是转接板自带的RGB LCD 接口(LCD),可以连接各种正点原子的RGB LCD 屏模块,并且支持触摸屏(电阻/电容屏都可以)。采用的是RGB888 格式,可显示1677 万色,色彩显示丰富。
5、后备电池接口
这是I.MX6UL/ULL 后备区域的供电接口,可以用来给I.MX6UL/ULL 的后备区域提供能量,在外部电源断电的时候,维持SNVS 区域数据的存储,以及RTC 的运行。
6、USB HOST(OTG)
V2.4 版本以前底板有此接口,V2.4 及以后版本底板没有此接口了!
这是开发板板载的一个侧插式的USB-A 座(USB_HOST),由于I.MX6U 的USB 支持OTG功能,所以USB 既可作HOST,又可做SLAVE。我们可以通过这个USB-A 座,连接U 盘/USB鼠标/USB 键盘等其他USB 从设备,从而实现USB 主机功能。不过特别注意,由于USB HOST和USB SLAVE 是共用一个USB 端口,所以两者不可以同时使用。
7、USB 串口/串口1
这是USB 串口同I.MX6U 的串口1 进行连接的接口(JP5),标号RXD 和TXD 是USB 转串口的2 个数据口(对CH340C 来说),而U1_TX(TXD)和U1_RX(RXD)则是I.MX6U 串口1的两个数据口。他们通过跳线帽对接,就可以连接在一起了,从而实现I.MX6U 的串口通信。
设计成USB 串口,是出于现在电脑上串口正在消失,尤其是笔记本,几乎清一色的没有串口。所以板载了USB 串口可以方便大家调试。而在板子上并没有直接连接在一起,则是出于使用方便的考虑。这样设计,你可以把I.MX6U-ALPHA 开发板当成一个USB 转TTL 串口,来和其他板子通信,而其他板子的串口,也可以方便地接到开发板上。
8、USB SLAVE(OTG)
①、V2.4 版本以前底板
这是开发板板载的一个MiniUSB 头(USB_SLAVE),用于USB 从机(SLAVE)通信,与上面的USB HOST 一起作为OTG 功能。通过此MiniUSB 头,开发板就可以和电脑进行USB通信了。注意:该接口不能和USB HOST 同时使用。
开发板总共板载了两个MiniUSB 头,一个(USB_TTL)用于USB 转串口,连接CH340C芯片;另外一个(USB_SLAVE)用于I.MX6U 内部USB。同时开发板可以通过此MiniUSB 头供电,板载两个MiniUSB 头(不共用),主要是考虑了使用的方便性,以及可以给板子提供更大的电流(两个USB 都接上)这两个因素。
②、V2.4 及以后版本底板
这是开发板板载的一个Type-C 接口,用于USB OTG 通信。通过此Type-C 接口,开发板就可以和电脑进行USB 通信了,实现OTG 功能开发板总共板载了两个Type-C 接口,一个(USB_TTL)用于USB 转串口,连接CH340C芯片;另外一个用于I.MX6U 内部USB。
9、USB 转串口
这是开发板板载的一个USB 转串口接口,用于USB 连接CH340C 芯片,从而实现USB 转串口。同时,此接头也是开发板的电源提供口,V2.4 版本一般的底板此接口使用Mini USB,在V2.4 及以后版本底板采用Type-C 接口。
10、摄像头模块接口
这是开发板板载的一个摄像头模块接口(P1),摄像头模块(需自备),对准插入到此插槽中。
11、启动(BOOT)拨码开关
I.MX6U 支持多种启动方式,比如SD 卡、EMMC、NAND、QSPI FALSH 和USB 等,要想从某一种设备启动就必须先设置好启动拨码开关。I.MX6U-ALPHA 开发板用了一个8P 的拨码开关来选择启动方式,正点原子开发板支持从SD 卡、EMCM、NAND 和USB 这四种启动方式,这四种启动方式对应的拨码开关拨动方式已经写在了开发板上。大家在使用的时候根据自己的实际需求设置拨码开关即可。
12、TF 卡接口
这是开发板板载的一个标准TF 卡接口(TF_CARD),该接口在开发板的背面,采用小型的TF 卡接口,USDHC 方式驱动,有了这个TF 卡接口,就可以满足海量数据存储的需求。
13、光环境传感器
这是开发板板载的一个光环境三合一传感器(U9),它可以作为:环境光传感器、近距离(接近)传感器和红外传感器。通过该传感器,开发板可以感知周围环境光线的变化,接近距离等,从而可以实现类似手机的自动背光控制。
14、蜂鸣器
这是一个有源蜂鸣器,通过高低电平控制蜂鸣器的开关。
15、SDIO WIFI 接口
这是开发板上的一个SDIO WIFI(P4)接口,可以通过此接口连接正点原子出品的SDIO WIFI模块。SDIO WIFI 接口和TF 卡共用一个USDHC 接口,因此不能同时和TF 卡使用。
16、ATK 模块接口
这是开发板板载的一个正点原子通用模块接口(JP2),目前可以支持正点原子开发的GPS模块、蓝牙模块、MPU6050 模块、激光测距模块和手势识别模块等,直接插上对应的模块,就可以进行开发。后续我们将开发更多兼容该接口的其他模块,实现更强大的扩展性能。
17、左右声道喇叭接口
开发板板载了一个高性能的音频解码芯片WM8960,此芯片可以驱动左右声道2 个8Ω,1W 的小喇叭,这两个接口用于外接两个左右声道小喇叭。不过在I.MX6U-ALPHA 开发板的背面已经默认焊接了一个小喇叭,这个小喇叭接到了右声道上,因此如果要在此接口的右声道上外接小喇叭,那么必须先将开发板上自带的喇叭拆掉,否则WM8960 驱动能力可能不足。
18、耳机输出接口
这是开发板板载的音频输出接口(PHONE),该接口可以插3.5mm 的耳机,当WM8960 放音的时候,就可以通过在该接口插入耳机,欣赏音乐。此接口支持耳机插入检测,如果耳机不插入的话默认通过喇叭播放音乐,如果插入耳机的话就关闭喇叭,通过耳机播放音乐。
19、录音输入接口
这是开发板板载的外部录音输入接口(LINE_IN),通过咪头我们只能实现单声道的录音,而通过这个LINE_IN,我们可以实现立体声录音。
20、复位按键
这是开发板板载的复位按键(RESET),用于复位I.MX6U,还具有复位液晶的功能,因为液晶模块的复位引脚和I.MX6U 的复位引脚是连接在一起的,当按下该键的时候,I.MX6U 和液晶一并被复位。
21、用户按键KEY
这是开发板板载的1 个机械式输入按键(KEY0),可以做为普通按键输入使用。
22、红色用户LED 灯
这是开发板板载的1 个LED 灯,为红色,用户可以使用此LED 灯。在调试代码的时候,使用LED 来指示程序状态,这是非常不错的一个辅助调试方法。
23、蓝色电源指示LED 灯
这是开发板电源指示LED 灯,为蓝色,当板子供电正常的时候此灯就会常亮。如果此灯不亮的话就说明开发板供电有问题(排除LED 灯本身损坏的情况)。
24、WM8960 音频DAC
这是一颗欧胜公司出品的音频DAC 芯片,用于实现音乐播放与录音。
25、MIC(咪头)
这是开发板的板载录音输入口(MIC),该咪头直接接到WM8960 的输入上,可以用来实现录音功能。
26、Nano SIM 卡接口
这是开发板上的Nano SIM 卡接口,如果要使用4G 模块的话就需要在此接口中插入Nano SIM 卡。
27、ICM20608 六轴传感器
这是开发板板载的一个六轴传感器芯片(U6),型号为ICM20608,此芯片采用SPI 接口与I.MX6U 相连接。ICM20608 内部集成1 个三轴加速度传感器和1 个三轴陀螺仪,该传感器在姿态测量方面应用非常广泛。所以喜欢玩姿态测量的朋友,也可通过本开发板进行学习。
28、Mini PCIE 4G 接口
这是开发板板载的一个Mini PCIE 座,但是本质上走的USB 协议,通过此接口可以连接4G模块,比如高新兴物联的ME3630。接上4G 模块以后I.MX6U-ALPHA 开发板就可以实现4G上网功能,对于不方便布网线或者没有WIFI 的场合来说是个不错的选择。
29、DC6~16V 电源输入
这是开发板板载的一个外部电源输入口(DC_IN),采用标准的直流电源插座。开发板板载了DC-DC 芯片(JW5060T),用于给开发板提供高效、稳定的5V 电源。由于采用了DC-DC 芯片,所以开发板的供电范围十分宽,大家可以很方便的找到合适的电源(只要输出范围在DC6~16V 的基本都可以)来给开发板供电。在耗电比较大的情况下,比如用到4.3 屏/7 寸屏/网口的时候,建议使用外部电源供电,可以提供足够的电流给开发板使用。
30、电源开关
这是开发板板载的电源开关(K1)。该开关用于控制整个开发板的供电。这是一个两段式拨动开关,拨到右边关闭开发板电源,整个开发板都将断电,电源指示灯(PWR)会随之熄灭。
拨到右边打开开发板电源,整个板子开始供电,电源指示灯(PWR)点亮。
31、5V 电源输入/输出
这是开发板板载的一组5V 电源输入输出排针(23)(VOUT2),该排针用于给外部提供5V的电源,也可以用于从外部接5V 的电源给板子供电。
同样大家在实验的时候可能经常会为没有5V 电源而苦恼不已,正点原子充分考虑到了大家需求,有了这组5V 排针,你就可以很方便的拥有一个简单的5V 电源(USB 供电的时候,最大电流不能超过500mA,外部供电的时候,最大可达3000mA)。
32、3.3V 电源输入/输出
这是开发板板载的一组3.3V 电源输入输出排针(23)(VOUT1),用于给外部提供3.3V 的电源,也可以用于从外部接3.3V 的电源给板子供电。
大家在实验的时候可能经常会为没有3.3V 电源而苦恼不已,有了I.MX6U-ALPHA 开发板,你就可以很方便的拥有一个简单的3.3V 电源(最大电流不能超过3000mA)。
33、3 路USB HOST 接口
这是开发板板载的3 路USB HOST 接口,I.MX6U 有两个USB 接口,正点原子的I.MX6U-ALPHA 开发板通过GL850 芯片将I.MX6U 的USB2 扩展成了4 路USB HOST,其中一路用于连接4G 模块,另外3 路作为USB HSOT,用户可以通过这三路USB HOST 接口连接USB 鼠
标、USB 键盘、U 盘等设备。
34、引出的IO 口
这是开发板IO 引出端口JP6,采用216 排针,总共引出31 个IO 口。
35、以太网接口1(RJ45)
I.MX6U 有两个网络接口:ENET1 和ENET2,这是ENET1 网络接口,可以用来连接网线,实现网络通信功能。该接口使用I.MX6U 内部的MAC 控制器外加PHY 芯片,实现10/100M 网络的支持。
36、以太网接口2(RJ45)
这是开发板板载的以太网接口2,也就是I.MX6U 的ENET2 网络接口。
37、RS232 接口(母)
这是开发板板载的另外一个RS232 接口(COM3),通过一个标准的DB9 母头和外部的串口连接。通过这个接口,我们可以连接带有串口的电脑或者其他设备,实现串口通信
38、RS485 接口
这是开发板板载的RS485 总线接口(RS485),通过2 个端口和外部485 设备连接。这里提醒大家,RS485 通信的时候,必须A 接A,B 接B。否则可能通信不正常。
上面我们详细介绍了正点原子I.MX6U-ALPHA 开发板的硬件资源。接下来,我们将向大家简要介绍一下I.MX6U-ALPHA 开发板的软件资源。软件资源分为3 部分:Linux 系统驱动软件资源、裸机例程、Linux 驱动例程,我们依次来看一下这三类软件资源的情况。关于Linux 系统软件资源如表5.2.2.1 所示:
表5.2.2.1 开发板Linux 系统软件资源
接下来看一下I.MX6U-ALPHA 开发板的裸机例程,如表5.2.2.2 所示:
表5.2.2.2 正点原子I.MX6U-ALPHA 开发板裸机例程
从上表可以看出,正点原子的I.MX6U-ALPHA 开发板裸机例程似乎不是很多,不像STM32、RT1052 那样六七十个裸机例程,这是因为嵌入式Linux 和单片机的开发方式以及应用场合不同。单片机学名叫做Microcontroller,也就是微控制器,主要用于控制相关的应用,因此单片机的外设都比较多,比如很多路的IIC、SPI、UART、定时器等等。嵌入式Linux 开发主要注重于高端应用场合,比如音视频处理、网络处理等等。比如一个机器人,高性能处理器加Linux 系统(或者其他系统)作为机器人的大脑,主要负责接收各个传感器采集的数据然后对原始数据进行处理,得到下一步执行指令,这个往往需要很高的性能。当处理完成得到下一步要做的动作之后大脑就会将数据发给控制机器人各个关节电机的驱动控制器,这些驱动控制器一般都是单片机做的。所以大家在学习嵌入式Linux 开发的时候一定不要深陷裸机,我们之所以讲解裸机是为了给嵌入式Linux 打基础,让大家了解所使用的SOC、了解GCC 那一套工作流程,最终的目的都是为了嵌入式Linux 做准备的。
看完裸机例程以后我们最后再来看一下正点原子为I.MX6U-ALPHA 开发板准备的嵌入式Linux 驱动例程,如表5.2.2.3 所示:
表5.2.2.3 正点原子I.MX6U-ALPHA 开发板Linux 驱动例程
因为有些外设驱动在Linux 内核里面已经集成了,因此并没有编写独立的驱动,我们会在相应的章节里面对这些驱动进行讲解。关于正点原子I.MX6U-ALPHA 开发板的软件资源就讲解到这里,软件资源我们也会持续更新的。
核心板资源参考图5.1.3.1 和图5.1.3.2 中的标注部分,我们将按逆时针的顺序依次介绍:
I.MX6U-ALPHA 开发板采用底板+核心板的形式,I.MX6U-ALPHA 开发板底板采用2 个2*30 的3710F(公座)板对板连接器来同核心板连接,接插非常方便,底板上面的核心板接口原理图如图5.3.1.1 所示:
图5.3.1.1 底板转接板接口部分原理图
图中的J1 和J2 就是底板上的转接板接口,由2 个2*30PIN 的3710F 板对板公座组成,总共引出了核心板上面105 个IO 口,另外,还有:电源、PMIC_ON_REQ、ONOFF、USB、VBAT、RESET 等信号。
I.MX6U-ALPHA 开发板底板上面,总共引出了31 个IO 口,如图5.3.2.1 所示:
图5.3.2.1 引出IO 口
图中JP6 就是引出的IO,一共31 个IO,外加一个GND。Cortex-A 系列的板子首要任务就是保证板子的稳定性,然后再考虑IO 的引出。所以相比于STM32 这种单片机,I.MX6U-ALPHA开发板引出的IO 就要少很多了。
I.MX6U-ALPHA 开发板板载的USB 串口和I.MX6U 的串口是通过JP5 连接起来的,如图5.3.3.1 所示:
图5.3.3.1 USB 串口/串口1 选择接口
图中TXD/RXD 是相对CH340C 来说的,也就是USB 串口的发送和接收脚。而UART1_RXD和UART1_TXD 则是相对于I.MX6U 来说的。这样,通过对接,就可以实现USB 串口和I.MX6U的串口通信了。图5.3.3.1 中的U20 和U21 是SGM3157 模拟开关,在底板掉电以后将I.MX6U的UART1_TXD 和UART1_RXD 这两个IO 与CH340C 的TXD 和RXD 断开,因为CH340C 的TXD 和RXD 这两个IO 带有微弱的3.3V 电压,如果不断开的话会将这微弱的3.3V 电压引入到核心板上,可能会影响到启动。
ALPHA 底板载了RGB LCD 接口,此部分电路如图5.3.4.1 所示:
图5.3.4.1 RGB LCD 接口
图中,RGBLCD 就是RGB LCD 接口,采用RGB888 数据格式,并支持触摸屏(支持电阻屏和电容屏)。该接口仅支持RGB 接口的液晶(不支持MCU 接口的液晶),目前正点原子的RGB 接口LCD 模块有:4.3 寸(ID:4342,480272 和ID:4384,800480)、7 寸(ID:7084,800480和ID:7016,1024600)和10 寸(ID:1018,1280*800)等尺寸可选。
图中3 个SGM3157 模拟开关,用于控制来自I.MX6U 的LCD_DATA23(LCD_R7)、LCD_DATA15(LCD_G7)和LCD_DATA7(LCD_B7)和来自RGBLCD 屏的LCD_DATA23S、LCD_DATA15S 和LCD_DATA7S 的通断。这是因为这几个信号有用来设置I.MX6U 的BOOT_CFG4[7]/BOOT_CFG2[7]/BOOT_CFG1[7],同时又是RGBLCD 屏的ID 信号,因此他们存在冲突。如果不加切换,在启动的时候,I.MX6U 就可能读到错误的启动配置信息,从而导致启动失败(不运行代码)。加这三个模拟开关,就是为了让I.MX6U 在启动的时候可以正常读取BOOT_CFG4[7]/BOOT_CFG2[7]/BOOT_CFG1[7]的值,同时在启动后,用户代码又可以读取正确的RGBLCD ID 值。互不影响。三个SGM3157 的使能信号默认都是由LCD_VSYNC 控制(刚好满足LCD 时序)。
图中的I2C2_SCL 和I2C2_SDA 为I2C2 的两根数据线,分别连接到UART5_TXD 和UART5_RXD 这两个IO 上。BLT_PWM 是LCD 的背光控制IO,连接在I.MX6U 的GPIO1_IO8上,用于控制LCD 的背光。液晶复位信号RESET 则是直接连接在开发板的复位按钮上,和MCU 共用一个复位电路。
I.MX6U 开发板的复位电路如图5.3.5.1 所示:
图5.3.5.1 复位电路
因为I.MX6U 是低电平复位的,所以我们设计的电路也是低电平复位的
I.MX6U 开发板的启动模式设置端口电路如图5.3.6.1 所示:
图5.3.6.1 启动模式设置接口
I.MX6U 支持从多种不同的设备启动,关于I.MX6U 的详细启动方式请参考《第九章I.MX6U 启动方式详解》。
I.MX6U-ALPHA 开发板的VBAT 供电电路如图5.3.7.1 所示:
图5.3.7.1 启动模式设置接口
上图的VDD_COIN_3V 通过核心板上的BAT54C,接VDD_SNVS_IN 脚,从而给核心板的SNVS 区域供电。这部分原理图在核心板上,如图5.3.7.2 所示:
图5.3.7.2 核心板VBAT 供电原理图
如图5.3.7.2 所示,VDD_SNVS_IN 使用VDD_COIN_3V (接CR1220 电池)和VDD_SNVS_3V3 混合供电的方式,在有外部电源(VDD_SNVS_3V3)的时候,CR1220 不给VDD_SNVS_IN 供电,而在外部电源断开的时候,则由CR1220 给其供电。这样,VDD_SNVS_IN总是有电的,以保证RTC 的走时。
I.MX6U-ALPAH 开发板板载了一个母头的RS232 接口,电路原理图如图5.3.8.1 所示:
图5.3.8.1 RS232 串口
因为RS232 电平不能直接连接到I.MX6U,所以需要一个电平转换芯片。这里我们选择的是SP3232(也可以用MAX3232)来做电平转接,同时图中的JP1 用来实现RS232(UART3)/RS485的选择。所以这里的RS232/RS485 都是通过串口3 来实现的。图中RS485_TX 和RS485_RX 信号接在SP3485 的DI 和RO 信号上。
I.MX6U-ALPAH 开发板板载的RS485 接口电路如图5.3.9.1 所示:
图5.3.9.1 RS485 接口
RS485 电平也不能直接连接到I.MX6U,同样需要电平转换芯片。这里我们使用SP3485 来做485 电平转换,其中R21 为终端匹配电阻,而R19 和R20 则是两个偏置电阻,以保证静默状态时485 总线维持逻辑1。
RS485_RX/RS485_TX 连接在JP1 上面,通过JP1 跳线来选择是否连接在I.MX6U 上面,SP3485 的RE 引脚连接通过一系列的电路连接到了RS485_RX 引脚上,这样就可以通过RS485_RX 引脚来控制RS485 的接收和发送状态,完全将RS485 当做一个串口来使用。
正点原子I.MX6U-ALPHA 开发板板载的CAN 接口电路如图5.3.10.1 所示:
图5.3.10.1 CAN 接口电路
CAN 总线电平也不能直接连接到I.MX6U,同样需要电平转换芯片。这里我们使用TJA1050来做CAN 电平转换,其中R10 为终端匹配电阻。
CAN1_TX/CAN1_RX 直接连接在I.MX6U 的UART1_CTS/UART1_RTS 上面。
1、V2.4 版本以前底板USB HUB 原理图
V2.4 版本以前的正点原子I.MX6U-ALPHA 开发板使用GL850 这个一扩四的USB HUB 芯片,用于将I.MX6U 的USB2 扩展为4 个USB HOST 接口,如图5.3.11.1 所示:
图5.3.11.1 USB HUB 接口电路
2、V2.4 及以后版本底板OTG 原理图
V2.4 及以后版本的正点原子I.MX6U-ALPHA 开发板使用SL2.1A 这个一扩四的USB HUB芯片,用于将I.MX6U 的USB2 扩展为4 个USB HOST 接口,如图5.3.11.2 所示:
图5.3.11.2 USB HUB 接口电路
I.MX6U 带有两个USB 接口,但是对于Linux 应用来说两个USB 太少了,如果我们要连接鼠标、键盘、U 盘等设备的时候两个USB 口完全不够用。因此I.MX6U-ALPHA 开发板通过GL850G 或SL2.1A 将I.MX6U 的USB2 外扩出了4 个USB HOST 接口,其中有一路(UHB_USB2)外接了4G 模块,因此提供给用户的就只剩下了3 个USB HOST 接口,如果3 个USB HOST 还不够用的话就可以外接一个USB HUB。
1、V2.4 版本以前底板OTG 原理图
I.MX6U-ALPHA 也有一路USB OTG 接口,USB OTG 接口使用了I.MX6U 的USB1,USB OTG 接口如图5.3.12.1 所示:
图5.3.12.1 USB OTG 接口
图中的USB_OTG 就是USB SLAVE 接口,可以将开发板作为USB 从机,比如通过USB进行系统烧写等。右侧的USB1_HOST 是USB HOST 接口,可以将开发板作为USB 主机,这样就可以外接USB 键盘/鼠标、U 盘等设备。这里正点原子将USB OTG 的SLAVE 和HOST 接口都做到了开发板上,这样大家就不需要再额外去购买一个USB OTG 线了,方便大家开发。
2、V2.4 及以后版本底板OTG 原理图
I.MX6U-ALPHA 也有一路USB OTG 接口,USB OTG 接口使用了I.MX6U 的USB1,USB OTG 接口如图5.3.12.2 所示:
图5.3.12.2 USB OTG 接口
图中的USB_OTG 就是USB Type-C 接口,可以将开发板作为USB 从机,比如通过USB 进行系统烧写等。Type-C 接口是支持主从机双模式的,通过Type-C OTG 线可以将此可以将开发板作为USB HOST(主机),这样就可以外接USB 键盘/鼠标、U 盘等设备。如果要用到USB OTG的HOST 功能,需要另外购买一条Type-C OTG 线。
I.MX6U-ALPHA 开发板板载了一个光环境传感器,可以用来感应周围光线强度、接近距离和红外线强度等,该部分电路如图5.3.13.1 所示:
图5.3.13.1 光环境传感器电路
图中的U9 就是光环境传感器:AP3216C,它集成了光照强度、近距离、红外三个传感器功能于一身,被广泛应用于各种智能手机。该芯片采用IIC 接口,连接在I.MX6U 的I2C1 接口上,IIC_SCL 和IIC_SDA 分别连接在UART4_TXD 和UART4_RXD 上,AP_INT 是其中断输出脚,连接在I.MX6U 的GOIO1_IO01 上。
I.MX6U-ALIPHA 开发板板载了一个六轴传感器,电路如图5.3.14.1 所示:
图5.3.14.1 六轴传感器
六轴传感器芯片型号为:ICM20608,该芯片内部集成了:三轴加速度传感器和三轴陀螺仪,这里我们使用SPI 接口来访问。
ICM20608 支持IIC 和SPI 两种接口,I.MX6U-ALPHA 开发板使用SPI 接口,目的是为了在开发板上放一个SPI 外设,学习Linux 下的SPI 驱动开发(因为笔者购买过很多Linux 开发板,发现基本都没有SPI 外设,不方便学习SPI 驱动)。ICM20608 通过SPI 接口连接到I.MX6U 的ECSPI3 接口上,SCLK、SDI、CS 和SDO 分别连接到I.MX6U 的UART2_RXD(ECSPI3_SCLK)、UART2_CTS(ECSPI3_MOSI)、UART2_TXD(ECSPI3_SS0)和UART2_RTS(ECSPI3_MISO)。
I.MX6U-ALPHA 开发板板载总共有2 个LED,其原理图如图5.3.15.1 所示:
图5.3.15.1 LED
其中右侧的PWR BLUE 是系统电源指示灯,为蓝色。DS0 为用户LED 灯,连接在I.MX6U的GPIO1_IO03 上,此灯为红色。
I.MX6U-ALPHA 开发板板载1 个输入按键,其原理图如图5.3.16.1 所示:
图5.3.16.1 输入按键
KEY0 用作普通按键输入,分别连接I.MX6U 的UART1_CTS 引脚上,这里使用外部10K上拉电阻。
I.MX6U-ALPHA 开发板板载了一个摄像头模块接口,连接在I.MX6U 的硬件摄像头接口(CSI)上面,其原理图如图5.3.17.1 所示:
图5.3.17.1 摄像头模块接口
图中P1 接口可以用来连接正点原子摄像头模块。其中,I2C2_SCL 和I2C2_SDA 是摄像头的SCCB 接口,分辨连接在I.MX6U 的UART5_TXD 和UART5_RXD 引脚上。CSI_RESET 和CSI_PWDN 这2 个信号是不属于I.MX6U 硬件摄像头接口的信号,通过普通IO 控制即可,这两个线分别接在I.MX6U 的GPIO1_IO02 和GPIO1_IO04。
此外,CSI_VSYNC/CSI_HSYNC/CSI_D0/CSI_D1/CSI_D2/CSI_D3/ CSI_D4/CSI_D5/CSI_D6
/CSI_D7/CSI_PCLK/CSI_MCLK 等信号,接I.MX6U 的硬件摄像头接口。
I.MX6U-ALPHA 开发板板载了一个有源蜂鸣器,其原理图如图5.3.18.1 所示:
图5.3.18.1 有源蜂鸣器
有源蜂鸣器是指自带了震荡电路的蜂鸣器,这种蜂鸣器一接上电就会自己震荡发声。而如果是无源蜂鸣器,则需要外加一定频率(2~5Khz)的驱动信号,才会发声。这里我们选择使用有源蜂鸣器,方便大家使用。
BEEP 信号直接连接在I.MX6U 的SNVS_TAMPER1 引脚上,可以通过控制此引脚来控制蜂鸣器开关。
正点原子ALPHA 开发板板载了一个TF 卡(小卡)接口,其原理图如图5.3.19.1 所示:
图5.3.19.1 TF 卡接口
图中SD_CARD 为TF 卡接口,该接口在开发板的底面。TF 卡采用4 位uSDHC 方式驱动,非常适合需要高速存储的情况。图中:USDHC1_DATA0 ~ DATA3/USDHC1_CLK/USDHC1_CMD 分别连接在I.MX6U 的SD1_DATA0~DATA3/SD1_CLK/SD1_CMD 引脚上。USDHC1_CD_B 是TF 卡检测引脚,用于检测TF 卡或SDIO WIFI 插拔过程,连接到I.MX6U 的UART1_RTS 引脚上。注意:TF 卡接口
和SDIO WIFI 接口共用一个SDIO,因此TF 卡和SDIO 不能同时使用!
I.MX6U-ALPHA 开发板板载一个SDIO WIFI 接口,如图5.3.20.1 所示:
图5.3.20.1 SDIO WIFI 接口
SDIO WIFI 接口用于连接正点原子出品的RTL8189 SDIO WIFI 模块,USDHC1_DATA0~ DATA3/USDHC1_CLK/USDHC1_CMD 分别连接到I.MX6U 的I.MX6U 的SD1_DATA0~DATA3/SD1_CLK/SD1_CMD 引脚上。WIFI_INT 和WIFI_REG_ON 连接到I.MX6U
的SNVS_TAMPER2 和SNVS_TAMPER0 引脚上。
注意:TF 卡接口和SDIO WIFI 接口公用一个SDIO,因此TF 卡和SDIO 不能同时使用!!
I.MX6U-ALPHA 开发板板载4G Mini PCIE 接口,如图5.3.21.1 所示:
图5.3.21.1 4G 模块
U8 就是Mini PCIE 接口的4G 模块座子,用于连接Mini PCIE 接口的4G 模块,比如高新兴的ME3630 模块。U11 是Nano SIM 卡座,用于插入Nano SIM 卡。4G 模块虽然采用Mini PCIE 接口,但是实际走的USB 接口,这里连接到了GL850G 或SL2.1A 扩展出来的一个USB HOST 接口上(USB_HUB2)。
I.MX6U-ALPHA 开发板板载了ATK 模块接口,其原理图如图5.3.22.1 所示:
图5.3.22.1 ATK 模块接口
如图所示,JP2 是一个1*6 的排座,可以用来连接正点原子推出的一些模块,比如:蓝牙串口模块、GPS 模块、MPU6050 模块、激光测距模块、手势识别模块和RGB 彩灯模块等。有了这个接口,我们连接模块就非常简单,插上即可工作。
图中:UART3_RXD/UART3_TXD 连接到了I.MX6U 的UART3 上,和RS232、RS485 共用一个串口,在使用ATK 接口的时候需要将JP1 跳线帽全部拔掉,防止RS232 和RS485 干扰到模块。而GBC_KEY 和GBC_LED 则分别连接在I.MX6U 的GPIO1_IO01 和JTAG_MOD 这两个引脚上。特别注意:GBC_LED/ GBC_KEY 和AP_INT/6D_INT 共用GPIO1_IO01 和JTAG_MOD。
注意!正点原子I.MX6U-ALPHA开发板V2.4版本以前的底板使用的网络PHY 为LAN8720,V2.4 及其以后的版本使用的网络PHY 为SR8201F,而且网络PHY 地址有改变,大家一定要看准自己所使用的底板版本号!
1、V2.4 以前版本的底板
I.MX6U-ALPHA 开发板板载了两个以太网接口(RJ45),分别为ENET1 和ENET2,其中ENET1 网口的原理图如图5.3.23.1 所示:
图5.3.23.1 ENET1 接口电路
ENET2 网络接口原理图如图5.3.23.2 所示:
图5.3.23.2 ENET2 网络接口
I.MX6U 内部自带两个网络MAC 控制器,每个网络MAC 需要外加一个PHY 芯片来实现网络通信功能。V2.4 版本以前的底板,采用LAN8720A 这颗芯片作为I.MX6U 的PHY 芯片,该芯片采用RMII 接口与I.MX6U 通信,占用IO 较少,且支持auto mdix(即可自动识别交叉/直连网线)功能。板载两个自带网络变压器的RJ45 头(HR91105A),一起组成两个10M/100M自适应网卡。
2、V2.4 及以后的版本的底板
I.MX6U-ALPHA 开发板板载了两个以太网接口(RJ45),分别为ENET1 和ENET2,其中ENET1 网口的原理图如图5.3.23.3 所示:
图5.3.23.3 ENET1 接口电路
ENET2 网络接口原理图如图5.3.23.4 所示:
图5.3.23.4 ENET2 网络接口
I.MX6U 内部自带两个网络MAC 控制器,每个网络MAC 需要外加一个PHY 芯片来实现网络通信功能。V2.4 及其以后版本的底板采用SR8201F 这颗芯片作为I.MX6U 的PHY 芯片,该芯片采用RMII 接口与I.MX6U 通信,这颗芯片占用IO 也较少,也支持auto mdix(即可自动识别交叉/直连网线)功能。板载两个自带网络变压器的RJ45 头(HR91105A),一起组成两个10M/100M 自适应网卡。
不管是V2.4 以前的还是以后的底板,对于ENET1 和ENET2 他们都共用ENET_MDIO 和ENET_MDC 这两根线,这两根线连接到了I.MX6U 的GPIO1_IO06 和GPIO1_IO07 这两个IO上。ENET1 和ENET2 都有一个复位引脚,分别为ENET1_RSET 和ENET2_RESET,这两个IO分别连接到了I.MX6U 的SNVS_TAMPER7/SNVS_TAMPER8 这两个引脚上。
V2.4 版本以前的底板WM8960 芯片接到I.MX6ULL 的I2C2 上,触摸屏也连接到了I2C2上,可能会出现触摸的时候干扰到WM8960 音频芯片的情况。因此在V2.4 及以后版本的底板上将WM8960 芯片连接到了I.MX6ULL 的I2C1 上。
V2.4 版本以前的底板WM8960 高性能音频编解码芯片其原理图如图5.3.24.1 所示:
图5.3.24.1 V2.4 版本以前SAI 音频编解码芯片
V2.4 及以后版本底板的WM8960 原理图如图5.3.24.2 所示:
图5.3.24.2 V2.4 及以后版本SAI 音频编解码芯片
WM8960 是一颗低功耗、高性能的立体声多媒体数字信号编解码器。该芯片内部集成了24位高性能DAC&ADC,并且自段EQ 调节,支持3D 音效等功能。不仅如此,该芯片还结合了立体声差分麦克风的前置放大与扬声器、耳机和差分、立体声线输出的驱动,减少了应用时必需的外部组件,直接可以驱动耳机(16Ω@40mW)和喇叭(8Ω/1W),无需外加功放电路。
图中,SPK-和SPK+连接了一个板载的8Ω1W 小喇叭(在开发板背面)。MIC 是板载的咪头,可用于录音机实验,实现录音。PHONE 是3.5mm 耳机输出接口,可以用来插耳机。LINE_IN则是线路输入接口,可以用来外接线路输入,实现立体声录音。
该芯片采用SAI 与I.MX6U 的SAI 接口连接,图中:SAI2_TX_SYNC/SAI2_TX_BCLK/SAI2_RX_DATA/SAI2_TX_DATA/SAI2_MCLK/ 分别接在MCU 的:JTAG_TDO/JTAG_TDI/JTAG_TCK/JTAG_nTRST/JTAG_TMS 上。特别注意:WM8960和JTAG 共用了很多信号,所以WM8960 和JTAG 接口不能同时使用!并且,经过实测,WM8960会干扰到JTAG,如果要使用JTAG 那么就必须将与WM8960 复用的这几根线断开!这也是为什么正点原子I.MX6U-ALPHA 开发板开发板上面没有留JTAG 接口的原因。
WM8960 需要一个I2C 接口去配置,V2.4 以前底板使用I.MX6U 的I2C2,I2C2_SCL 和I2C2_SDA 分别连接到了I.MX6U 的UART5_TXD 和UART5_RXD 这两个引脚上。V2.4 及以后版本底板WM8960 连接到了I2C1 接口上,I2C1_SCL 和I2C1_SDA 分别连接到了I.MX6U 的UART4_TXD 和UART4_RXD 这两个引脚上
I.MX6U-ALPHA 开发板板载的电源供电部分,其原理图如图5.3.25.1 所示:
图5.3.25.1 电源
图中,总共有2 个稳压芯片:U16/U17,DC_IN 用于外部直流电源输入,经过U16 DC-DC芯片转换为5V 电源输出,其中VD1 是防反接二极管,避免外部直流电源极性搞错的时候,烧坏开发板。K1 为开发板的总电源开关,F1 为2A 自恢复保险丝,用于保护USB。U17 为3.3V稳压芯片,给开发板提供3.3V 电源。
这里还有USB 供电部分没有列出来,其中VUSB 就是来自USB 供电部分,详见5.3.26 节。
I.MX6U-ALPHA 开发板板载了两组简单电源输入输出接口,其原理图如图5.3.27.1 所示:
图5.3.26.1 电源
图中,VOUT1 和VOUT2 分别是3.3V 和5V 的电源输入输出接口,有了这2 组接口,我们可以通过开发板给外部提供3.3V 和5V 电源了,虽然功率不大(最大1000mA),但是一般情况都够用了,大家在调试自己的小电路板的时候,有这两组电源还是比较方便的。同时这两组端口,也可以用来由外部给开发板供电。
图中D1 和D2 为TVS 管,可以有效避免VOUT 外接电源/负载不稳的时候(尤其是开发板外接电机/继电器/电磁阀等感性负载的时候),对开发板造成的损坏。同时还能一定程度防止外接电源接反,对开发板造成的损坏。
I.MX6U-ALPHA 开发板板载了一个USB 串口,V2.4 版本以前底板原理图如图5.3.27.1 所示:
图5.3.27.1 V2.4 版本以前底板上的USB 串口
V2.4 及以后版本底板上的串口原理图如图5.3.27.2 所示:
图5.3.27.2 V2.4 版本以前底板上的USB 串口
图5.3.27.1 和5.3.27.2 最大的区别就是,一个用的Mini USB 座,一个用的Type-C 座,其他部分完全想通。
USB 转串口芯片,我们选择的是CH340C,是国内芯片公司南京沁恒的产品,稳定性非常不错所以还是多支持下国产。CH340C 内置晶振,因此就不需要再在外面连接一个晶振。图中可以看出CH340C 的电源为3.3V,并且是独立供电的,U19 是一个LDO 芯片,负责给CH340C提供3.3V 的电源。CH340C 的电源不受开发板电源开关控制,只要接上USB 线CH340 就会上电。图中RXD/TXD 接JP5 的RXD/TXD,是CH340 芯片的串口接收和发送脚,可以通过跳线帽连接到I.MX6U 的串口1 上。
USB_TTL 是CH340C 和电脑通信的接口,V2.4 版本以前是Mini USB 口,V2.4 及以后版本换为了Type-C 接口。同时可以给开发板和CH340C 供电,VUSB 就是来自电脑USB 的电源,USB_TTL 是本开发板的主要供电口。
I.MX6U-ALPHA 开发板配套的I.MX6U 核心板,采用MCIMX6Y2CVM08AB(800MHz,实际792MHz)作为主控CPU,为工业级。自带32KB 的L1 指令和数据Cache、128KB 的L2 Cache,集成NEON,集成双精度硬件浮点计算单元VFPv3,并具有128KB OCRAM、2 个通用定时器(GPT)、4 个周期定时器(EPIT)、8 个PWM、1 个SDMA 控制器、4 个ECSPI、3 个看门狗、3 个SAI、4 个IIC、7 个串口、2 个USB(高速,带PHY)、2 个FlexCAN、2 个12 位ADC、1 个SPDIF 接口、1 个SRTC、1 个RTC、2 个USDHC 接口、1 个RGB LCD 控制器(ELCDIF)、2 个10/100M 以太网MAC 控制器、1 个摄像头接口、1 个硬件随机数生成器、以及124 个通用IO 口等,根据芯片型号的不同主频可以为528Mhz、700MHz(实际696MHz)、800MHz(实际792MHz),轻松应对各种应用。
SOC 部分的原理图如图5.5.1.1~图5.5.1.5(因为原理图比较大,缩小下来可能有点看不清,请大家打开开发板光盘的原理图进行查看)所示:
图5.5.1.1 SOC 部分原理图1
图5.5.1.2 SOC 部分原理图2
图5.5.1.3 SOC 部分原理图3
图5.5.1.4 SOC 部分原理图4
图5.5.1.5 MCU 部分原理图5
MCIMX6Y2CVM05AB/08AB 芯片的原理图由5 个部分组成,接下来依次看一下这五部分的具体内容:
图5.5.1.1:此部分原理图主要是I.MX6U 的部分IO 原理图,比如SNVS_TAMPER0~9、JTAG 外设IO、USDHC1 外设IO、UART 外设IO、USB 外设IO 等。
图5.5.1.2:此部分原理图也是I.MX6U 的IO 原理图,主要包括NAND Flash 外设IO、USDHC2 外设IO、CSI 摄像头IO 等。
图5.5.1.3:此部分原理图也是I.MX6U 的IO 原理图,包括LCD 外设IO、ENET 外设IO、GPIO1_IO01~09 这一组GPIO。
图5.5.1.4:此部分原理图是I.MX6U 的DRAM 外设IO。用于连接DDR 设备,比如正点原子ALPHA 开发板所使用的DDR3L。
图5.5.1.5:此部分原理图是I.MX6U 的电源部分。
I.MX6U 核心板采用2 个2*30 的3710M(母座)板对板连接器来同底板连接(在转接板底面),接插非常方便,转接板上面的底板接口原理图如图5.5.2.1 所示:
图5.5.2.1 底板接口
图中,J1 和J2 是2 个2*30 的板对板母座(3710M),和底板的接插非常方便,方便大家嵌入自己的项目中去。该接口总共引出105 个IO 口,另外,还有USB、电源、复位、ONOFF 等信号。
I.MX6U NAND 版本核心板板载了一个NAND Flash,此部分电路如图5.5.3.1 所示:
5.5.3.1 NAND Flash
对于Linux 系统而言,是需要一个存储数据、系统的存储芯片,比如QSPI Flash、NAND Flash、EMMC 等。正点原子的I.MX6U-ALPHA 开发板有两种核心板,这两种核心板的FLASH存储芯片不同,一个使用的NAND FLASH、一个使用的EMMC。图5.5.3.1 中的是NAND Flash的原理图,经过测试,可以支持256MB、512MB、2GB 的NAND FLASH 存储芯片。
I.MX6U EMMC 核心板板载了8GB 的EMMC,此部分电路如图5.5.4.1 所示:
5.5.4.1 EMMC
EMMC 也是存储Flash,相比NAND Flash,EMMC 使用简单(和SD 类似)、速度快、容量高。目前EMMC 已经逐渐的取代了NAND Flash,尤其是在手机、平板领域。
I.MX6U 核心板板载了DDR3L,此部分电路如图5.5.5.1 所示:
5.5.5.1 DDR3L
图中,U5 就是DDR3L 芯片,根据配置的不同,一共有两种型号,分别为:NT5CC256M16EP-EK(512MB)和NT5CC128M16JR-EK(256MB)。该芯片挂在I.MX6U 的MMDC 接口上。
I.MX6U 对于供电有严格的要求,尤其是上电顺序,正点原子的I.MX6U 核心板供电主要分5 部分:SNVS 供电、DCDC_3V3 供电、ARM/SOC 内核供电、DDR3L 供电和SD 卡供电,我们依次来看一下,首先是SNVS 供电,I.MX6U 的数据手册要求,SNVS 必须最先上电,此部分供电电路如图5.5.6.1 所示:
图5.5.6.1 SVS_3V3 供电
图中,U7 是一颗LDO 芯片,将5V 转化为3.3V,作为SNVS_3V3,由于SNVS_3V3 电流不大,所以一个LDO 芯片就可以了。接下来是DCDC_3V3,也就是核心板的主电源,如图5.5.6.2所示:
图5.5.6.2 DCDC_3V3
U8 是一个DCDC 芯片,用于将5V 转换为3.3V,但是电流大,MP2144 最大输出2A 大电流,因此作为核心板的3.3V 主电源。这里要注意,U8 的使能引脚使用了I.MX6U 的PMIC_ON_REQ 引脚来控制,当SNVS_3V3 供给I.MX6U 的VDD_SNVS_IN 引脚以后,I.MX6U的PMIC_ON_REQ 引脚就会输出高电平,从而产生DCDC_3V3,DCDC_3V3 也是I.MX6U 的VDD_HIGH_IN 电源。接下来就是ARM/SOC 内核电源,如图5.5.6.3 所示:
图5.5.6.3 ARM/SOC 电源
U6 也是一片DCDC,用于产生ARM/SOC 内核电压,此内核电压可以通过I.MX6U 的GPIO_DVFS 和PMIC_STBY_REQ 来调节。U6 的使能脚连接到了DCDC_3V3_PG 信号上,此信号是由U8 产生的,当U8 输出3.3V 电压以后DCDC_3V3_PG 信号就会产生,为一个高电平信号。通过DCDC_3V3_PG 来控制VDD_ARM_SOC_IN 电源的产生,这样就保证了VDD_HIGH_IN 比ARM_SOC_IN 先上电的要求。接下来看一下DDR3L 电源,正点原子的I.MX6U 核心板使用的是DDR3L,DDDR3L 的工作电压为1.35V,此部分电源电路如图5.5.6.4所示:
图5.5.6.4 DDR3L 电路
U11 也是一个DCDC 芯片,用于将5V 电源转换为1.35V 供DDR3L 使用。接下来看一下SD 卡部分电路,如图5.5.6.5 所示:
图5.5.6.5 SD 卡电源
U9 是一片LDO,用于将5V 电源转为3.3V 或1.8V 供SD 卡使用,因为高速SD 卡需要1.8V 供电,因此此路电源电压是可调的,通过SD1_VSELECT 来选择使用3.3V 还是1.8V,SD1_VSELECT 连接到了I.MX6U 的GPIO1_IO05 上。
最后还有I.MX6U 其他外设电源,如图5.5.6.6 所示:
图5.5.6.6 I.MX6U 其他外设电源
为了让大家更好的使用正点原子I.MX6U-ALPHA 开发板,我们在这里总结该开发板使用的时候尤其要注意的一些问题,希望大家在使用的时候多多注意,以减少不必要的问题。
①、1 个USB 供电最多500mA,且由于导线电阻存在,供到开发板的电压,一般都不会有5V,如果使用了很多大负载外设,比如4.3 寸屏、网络、摄像头模块等,那么可能引起USB 供电不够,所以如果是使用4.3 屏的朋友,或者同时用到多个模块的时候,建议大家使用一个独立电源供电。如果没有独立电源,建议可以同时插2 个USB 口,并插上仿真器,这样供电可以更足一些。
②、当你想使用某个IO 口用作其他用处的时候,请先看看开发板的原理图,该IO 口是否有连接在开发板的某个外设上,如果有,该外设的这个信号是否会对你的使用造成干扰,先确定无干扰,再使用这个IO。
③、开发板上的跳线帽比较多,大家在使用某个功能的时候,要先查查这个是否需要设置跳线帽,以免浪费时间。
④、当液晶显示白屏的时候,请先检查液晶模块是否插好(拔下来重插试试)。
⑤、对于V2.4 版本以前的开发板,USB OTG 的USB SLAVE 和USB HOST 共用同一个USB 口,所以,他们不可以同时使用。使用的时候多加注意。
⑥、当需要从底板上拆转接板下来的时候,请左右晃动取下,不要太大幅度,否则有可能拆坏座子。
至此,本手册的实验平台(正点原子I.MX6U-ALPHA 开发板)的硬件部分就介绍完了,了解了整个硬件对我们后面的学习会有很大帮助,有助于理解后面的代码,在编写软件的时候,可以事半功倍,希望大家细读!另外正点原子开发板的其他资料及教程更新,都可以在技术论坛www.openedv.com 下载到,大家可以经常去这个论坛获取更新的信息。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。