` 本帖最后由 小梅哥 于 2015-9-15 21:13 编辑
上一帖,本人简单介绍了一下FPGA的技术现状以及我们在学习FPGA时遇到的各种问题,最终录制一套优质的视频教程,所以决定开发一套配套的FPGA开发板。
回顾上帖,请看:芯航线FPGA开发平台设计初衷
在正式设计这套FPGA开发板之前,那么我也是经历了自学,做项目,参加培训,整理总结,教学授课,工业项目的过程。在自学时,没有一个好的学习方法,学了一年多,没有丝毫起色,当时确实比一般的同学知道的多一点,我也觉得自己已经基本入门了FPGA,于是就承接了老师一个项目,很简单的一个项目,结果花了三个月时间,也没把项目做出来。一向自诩能力不错的我于是遭受了深深的打击,于是决定一定要学好FPGA,学习FPGA,最好的方式就是参加培训。于是我报了某著名培训班的课程,才只学了一个多月,我就明显的感觉到,自己之前的学习方法是多么的愚笨,多么的没有效率。学完之后,便开始总结归纳,总想把自己这段柳暗花明又一村的经历和经验分享出来。于是我活跃于各大论坛网站,分享一些简单的技术帖子供学习者入门学习,并给网友一一解答疑问。然而,最终发现,这样不是长久之计,众多的朋友,遇到问题并不是因为自己对理论有多么不了解,而是因为他们从一开始就没有一个正确的学习方法,所以我决定用视频教程的方式将自己的一些心得感悟分享出来,以供需要的朋友交流学习。
经历过FPGA学习到项目设计,个人感觉在学习和使用FPGA之间,通常存在以下矛盾:
1、学习FPGA时,希望FPGA开发板板载资源越多越好,以学习足够多的知识内容。 2、开发项目,希望FPGA开发板提供足够用户IO,板载外设越少越好,但又不能只单有一块FPGA芯片,为了能够运行NIOS II系统,大容量高速存储器也是必备的。
3、新技术新外设不断出现,以太网、USB、音频处理、视频处理、数字信号处理,FPGA能干的事情越来越多,越来越向大众化迈进。看到各种高端的技术和应用,好想学,可是手头板子没有集成最新出的功能对应硬件,要学还得再买整块板子,好心塞。 同众多的学习者一样,我曾经在学习时也遇到过这些问题,手头目前还有四块不同厂家的开发板,有的是单核心板,有的则是包含各种外设的全功能板。随着时间的推移,这些开发板也都越来越不值钱,大有食之无味,弃之可惜的感觉。因此,在此次开发芯航线FPGA开发板的过程中,我们也是仔细分析和参考了众多开发板的设计方案,在硬件设计上充分兼顾到学习和开发,以及后期升级三方面需求 开发板主板如下所示:
以下为开发板主板硬件资源一览:
FPGA主芯片EP4CE10F17C8N,拥有10K的逻辑单元,两个独立锁相环,180个用户IO管脚,423936bit嵌入式RAM,46个9位嵌入式硬件乘法器……资源丰富,完全可以满足绝大部分中小型设计的资源需求。
动态刷新随机存取存取存储器(SDRAM)HY57V281620,拥有128Mbit的存储器资源,最高运行速度133MHz,即可使用逻辑直接驱动,用来进行大量数据存储(视频图像数据,ADC采集数据),也可作为NIOS II处理器运行内存,用来运行较大的NIOS II软件系统。
静态随机存取存储器(SRAM)IS61LV25616,拥有512K字节的存储容量,10ns获取时间,数据存取效率远超动态刷新随机存取存储器(SDRAM),可作为高速数据缓存或作为NIOS II处理器的运行内存(相较于使用SDRAM作为存储器的NIOS II系统,使用SRAM作为存储器的NIOS II系统性能要高出20%到30%左右)
电可擦除只读存储器(EEPROM)AT24C64,拥有64K位的存储容量,使用两线制IIC接口,可读可写,掉电数据不丢失,可用来存储各种配置数据(如触摸屏校准参数)
串行FLASH芯片W25Q16,拥有2M字节的存储空间,使用SPI接口,默认作为FPGA芯片的上电配置器件,当使用NIOSII软核时,还可以作为软件代码的存储空间,让NIOS II软件能够畅快运行。同时,在NIOS II中,还可以使用EPCS 控制器,将该存储器当做通用型FLASH进行读写,以存储运行过程中产生的各种数据。
USB转串口芯片CH340,实现USB转串口协议的,使得芯航线开发板能够使用一根普通的USB mini数据线即可与PC进行通信,实现方便灵活的通信和控制。 翠绿色LED灯,LED最为最基础的输出设备,单个LED能够显示两种不同的状态,4个LED组合能够最多显示16种状态,方便设计和调试。
独立按键,三个独立按键,可以作为用户控制按键,实现对系统运行状态的控制
红外遥控接收,开发板自带红外遥控接收器,可接收38KHz的红外遥控信号,从而为开发板提供红外遥控功能,另外,当开发板上用户按键不够用时,也可以使用红外遥控来作为开发板的扩展键盘,以提供更加灵活的系统输入方案。 蜂鸣器,当用户有输入请求或者系统有输出请求时,使用一个蜂鸣器发声来提示用户输入或者输出有效。以获得更加直观的输入输出体验。
同时,为了尽量提升板卡的可扩展性和实用性,芯航线开发板上提供了多个通用或专用接插口,用来方便的扩展各种外设模块,接插口主要有:
两个40Pin的排针接口,该接口与友晶DE2的单个40Pin接口完全兼容,每个接插口提供36个通用IO口,一个5V供电和一个3.3V供电,芯航线团队设计的扩展模块全部围绕这两个接口展开。
一个CMOS摄像头的摄像头接口,该接口兼容市面上主流的CMOS摄像头,方便需要进行图像采集处理的朋友插接摄像头进行项目开发(OV7670,OV7725全兼容)
一个LCD液晶屏的接口,该接口100%兼容正点原子开发的STM32开发板配套液晶屏,方便大家使用手头现有的液晶屏插接到开发板上进行数据显示,同时该接口也可用来插接我们开发的数码管_VGA_PS2摄像头模块,以进行简易逻辑功能设计。我们设开发的4.3寸TFT触摸液晶模组也完美支持该接口,可直接插接在此接口上,进行图像的显示。
三组电源接口,方便喜欢DIY的用户直接从开发板上取电,给外挂模块供电,满足无限创意需求。
这样的设计方案,学习者只需要通过插接不同的模块即可学习不同的功能,例如数码管、VGA、PS2、AD、DA、矩阵键盘、图像采集、USB2.0高速通信。
为了配合开发板主板进行功能学习,到目前为止,我们共设计了5个外设模块,分别为数码管_VGA_PS2学生模块,4*4矩阵按键模块,4通道10位串行ADC和4通道8位串行DAC模块,USB2.0模块以及4.3寸TFT触摸液晶组件。
数码管_VGA_PS2学生模块: 集成8位高亮数码管,8bit VGA驱动电路,PS2键盘鼠标接口电路,方便学生进行本科课程设计和毕业设计。例如数字钟、数字秒表、电梯控制器、出租车计价器、计算器、电子密码锁等本科生课程设计或毕业设计中最常见的题目
4*4矩阵按键模块: 提供16个按键,使用8个通用GPIO口,即可为开发板扩展16个按键输入,使系统有较好的输入体验,方便学生进行本课课程设计和毕业设计,上述提到的很多题目如计算器、电子密码锁都需要用到矩阵键盘
ADDA模块: 4通道10位串行ADC和4通道8位串行DAC模块,ADC使用ti公司生产的TLV1544型模数转换器,该转换器拥有10位分辨率,支持4个外部通道输入以及三个参考电压校准通道,使用标准SPI接口,方便进行模拟数据采集。DAC使用TI公司生产的TLC5620型数模转换器,该转换器拥有8位分辨率,支持4个通道输出,每个通道输出都可支持电压倍增模式。即实际每个通道可达9位分辨率
以下为小梅哥使用该ADDA模块,采用直接数字频率合成(DDS)原理设计的一个双路信号发生器,每个通道输出信号都为100Hz的正弦波,同时两路信号相位相差90度,频率和相位都可以通过上位机软件使用串口更改。
4.3寸的TFT触摸液晶模组: 和很多朋友一样,小梅哥也对视觉效果比较棒的东西有着非常浓厚的兴趣,很早之前就想自己用SOPC设计一台属于自己的示波器或者逻辑分析仪。在没有独立屏幕做显示时,我也曾使用串口,结合上位机软件做过虚拟示波器,但是整体性能受到串口通信速度的限制,因此无法显示频率较高的信号波形,所以为了显示速度较高的信号,因此特意设计了一款4.3寸的TFT触摸液晶模组,该液晶模组使用480*272分辨率的TFT真彩屏,具有16位色彩分辨率,能够显示非常靓丽的图形,该TFT屏的驱动时序与VGA完全一致,只是时间参数稍有不同,因此,想学习VGA驱动的朋友,这个TFT屏绝对是一个绝佳的替代品。虽然在这个720p、1080p都显得有些落后的年代,480*272的分辨率显得非常简陋,但是,进行仪器仪表设计,本身也不需要太高的显示分辨率,因此从整体性价比上来说,这个屏是非常值得用来进行学习和功能开发的。配合电阻触摸屏我们能够实现一些有创意的设计。同时,考虑到很多学校的学生手头有友晶科技DE2系列开发板,因此我们的TFT屏也设计了有兼容DE2开发板通用GPIO的接口,方便学生朋友直接将该屏直接插接到DE2开发板上使用。 以下为小梅哥使用纯Verilog实现的10通道逻辑分析仪工作界面:
USB2.0模块: 在很多时候,我们希望让FPGA与PC机实现高速通信,例如将FPGA使用高速ADC采集到的数据发送到PC机上进行进一步分析处理。为了实现FPGA与PC机实现高速通信,我们特开发了USB2.0通信模块,模块使用经典的USB2.0芯片CY7C68013,与FPGA使用16位slave fifo接口,实现高速USB数据传输。模块通过兼容DE2通用扩展接口的40针接口与FPGA芯片连接,因此,该模块同样适配DE2开发板,方便手头有DE2开发板的同学使用。大家都知道,DE2开发板集成的USB方案是需要使用nios ii软核驱动,这对于时间和经验的同学来说,要想实现,难度太大,而本模块则可以以一个简单fifo的角色存在于电路中,方便用户快速开发。同时,为了满足DIY用户的需求,模块同时将芯片所有IO使用通用排针引出,让用户可以自行发挥扩展。
板卡虽小,创意无限: 数字逻辑,片上系统,均可学习;电压表、示波器、采集卡、逻辑分析仪、频率计、信号发生器、音频分析、视频处理……各种好玩实用项目由你发挥,学术验证、电设竞赛、工业控制多种领域,施展拳脚。
OK,板卡的设计理念就讲到这里,总之一句话,板卡虽简,创意无限。关于板子的更多信息,请前往发烧友众筹去观展。芯航线FPGA学习开发板地址:芯航线FPGA开发板众筹活动 下一贴,小梅哥将对板卡的焊接调试过程进行简单介绍。
小梅哥
2015年9月13日星期日
芯航线电子工作室
`
|