作者:chenzhufly QQ:36886052 ( 转载请注明出处)
1. 概述
这篇文档是关于EE_BeagleBone_Cape硬件系统设计的记录,主要谈谈为为什么要设计这样的一块载板,这块载板有哪些功能,能够干哪些事情。同时谈谈我对TI出品的AM335x硬件设计的一些看法,欢迎大伙拍砖。
2. EE_BeagleBone_Cape系统设计框图图1 系统框图
外扩资源介绍:
1. EP3C16Q240q240+SDRAM 1片 主要看中的就是管脚多,接的东西太多了,呵呵
2. NAND Flash 1片 本来打算从NAND启动的,可惜BeagleBone的板子比较难改,0402封装的电阻不好焊接阿,暂时不碰
3. LCD 1路
4. CAN 1路
5. RS485 1路
6. EEPROM 1片
7. 温度传感器 1路
8. 加速度传感器 1路
9. 串口扩展TL16C554 1片
10. 高速ADC(ADS826) 1路
至于100M网口、USB这个是Beaglebone自带的。
3. EE_BeagleBone_Cape设计来源
看到上面列的这些功能,非常的丰富,当然也会带来大伙的质疑。很多人都认为是简单的功能堆砌,又是一个大而全,华而不实的东西,仅仅是为了吸引大伙的眼球罢了。在这我将和大家分享我的设计初衷,已经回答这些天来大伙的一些疑问。
我以前在贴在里面说过,我设计的这些功能都是从实际的项目中来的,只不过不是一个,而是很多个,有些是已经成功的实施的,我想换个平台;有的是在设计中失败了,我还想在尝试尝试,诸如此类,等等吧,听我慢慢道来.
项目来源1:高速数据采集和传输
要求:信号频率20M,采集时间50ms,网络传输
首先想到的就是ARM+FPGA架构,FPGA干数据采集,ARM干数据传输,而且ARM+FPGA也是一种非常典型架型,在我的工作范围内使用的很平凡。从AM3359的手册上可以看到,GPMC支持同步模式,最大主频100M,这个很诱人,按16bit的数据宽度来算,也可以达到1.6G的带宽,即使打点折扣也很棒了!
当然会有人问,为什么不能用ARM直接驱动ADC采样,在我所接触的芯片中比如S3C6410,AT91SAM9260,AT91SAM9263等等,外设频率都很难达到20M,所以使用FPGA是比较明智的选择。
我现在的这个载板里面有一个采样频率60M的ADC(ADS826) ,还有一片FPGA,主要就是完成这个功能。
项目来源2:数字示波器
接着上面继续聊,有了高速ADC,如果在加入个LCD,就能很方便的实现示波器的功能。
那么就把LCD加进来吧,但是有个问题是为什么把LCD挂在FPGA上面呢?
这个主要就是为了这个项目量身设计的。直接挂在ARM上当然毋庸置疑是可以驱动的,但是在数据采集和实施显示的时候,将消耗掉非常多的系统资源,所以在这个项目里面,必须要用FPGA来刷新LCD,一方面把ADC采集的数据刷到LCD上,另一面处理ARM的控制信息,然后刷新到LCD上。其中的SDRAM也可以取到数据缓存的作用。
其次如果功能简单点,也可以去掉ARM,单独有FPGA + ADC +LCD来实现简易示波器的功能。
项目来源3:现场设备管理-CAN
这是个实在的项目,已经基本完成。主设备节点AT91SAM9260,从设备节点LM3S8962;主从设备节点通过CAN总线连接。
在这里我只想更换个CPU而已,因为项目都已经基本完成了,也无所谓好不好。不过也有一些理由吧.
1) AM3359自带CAN控制器这是个不错的选择,AT91SAM9260还需要外扩一个MCP2515,不管从调试来说,还是从设计来说,AM3359都是要简单一点。
2) 其次是AM3359带两个网口,因为这个项目后续可能还会加个网络摄像头,这样我一块片子就搞定了,不需要在外扩网口,或者增加个路由器了.
项目来源4:串口扩展
苦逼啊!这是来自一个失败的经历,我想验证一下而已。
从手册上可以看到AM3359已经带了6个串口,据说还可以用PRU外扩4个串口,总过就能到到10个串口了,好丰富,所以串口扩展对于AM3359来说可能没有市场。
我们本来打算用S3C6410扩展两个串口,第一次选用了一个SPI接口的扩展芯片,调试的时候总是不稳定;第二次换了个并口TL16C554,据说这玩意很成熟,更加苦逼,只能发不能收,调试了很久无果;又折回头折腾SPI扩展的方案,居然峰回路转发现个BUG,应用程序处理的时候有些问题!第一个方案解决了问题,第二个方案当然就没人理睬了,呵呵.
不过我还是打算深究一下其中的原因,顺便在AM3359上做个验证,说不准哪天就要用到了.
项目来源5:电能数据采集
主要使用ARM + LCD + FPGA + ADC,目前我正在使用,顺便验证一下新平台,呵呵.
我当前采用的架构是AT91SAM9263 挂载LCD,通过外部总线和FPGA通信,FPGA控制ADC进行电能数据的采样。
至于EEPROM可以存放ID,Beaglebone的很多其他载板ID就是存放在EEPROM中
温度传感器只不过是通用设备,可以检测环境的温度
加速度传感器,很多设计中作为防拆设计,其他的在手机中还是很常用的
GPS就更不用说了,大家都很清楚用途。
其他的就不再多说了,呵呵,有心的人自己发掘吧
4. EE_BeagleBone_Cape设计点滴
1) 为了节约空间,FPGA的AS接口没有画,如果要配置EPCS,只能用jtag口下载jic文件了
2) 部分接口不是直接连在BeagleBone上的,采用独立的模块,可以使用杜邦线连接。比如RS232,CAN,RS485,GPS等等
3) 电源部分貌似不能同时上电,同时上电的话FPGA的管脚状态将影响AM3359的SYSBOOT引脚,从而导致AM3359无法正常启动
4) LCD部分可以兼容群创的4.3寸、7寸、10寸屏,已经实测过。
5. EE_BeagleBone_Cape各功能原理图设计
5.1 Beaglebone外扩接口
主要通过P8和FPGA相连,P9有一部分接口也接在FPGA上。
5.2 EP3C16 + SDRAM
常规设计,没啥好说的,只不过我把AS的接口去掉了,这样在配置EPCS芯片的时候,需要转换成JIC的文件格式,通过JTAG下载。
图太大就不贴了,贴了也看不清楚,直接看PDF吧
5.3 NAND这里做了一些兼容设计,可以支持不同类型的NAND Flash
5.4 TFT LCD我使用的群创的屏,4.3寸、7寸、10寸的我都试过,没有问题。
5.5 CAN这里也是可以和TJA1050之类兼容的,我手头正好有SN65HVD232,所以就采用这个了,呵呵
5.6 RS485这个是常用芯片没啥好说的了,我实际焊接的是MAX485
5.7 I2C接口Max7501是因为我手头有,就选用了这个,也做了兼容设计,可以采用LM75等;貌似目前linux还不支持Max7501,苦逼啊。
5.8 加速度传感器焊接很麻烦哦,我没打算调试了,呵呵
5.9 GPS天宝的典型设计,直接把管脚引出就行了,使用的是3.3V TTL电平
5.10 ADC可以参考数据手册中的典型设计。
5.11 串口扩展
6. 实际效果图
6.1 PCB效果图
6.2 焊接效果图
7. 原理图链接
[
本帖最后由 chenzhufly 于 2012-10-25 11:47 编辑 ]