EPM240开发板原理图

合集下载

基于EPM240c100-5芯片步进电机控制器设计

基于EPM240c100-5芯片步进电机控制器设计

2012届毕业设计任务书一、课题名称:基于EPM240T100-5芯片步进电机控制器设计二、指导老师:王勇三、设计内容与要求1、课题概述步进电动机的技术已很成熟,特别适合于小功率开环定位系统,至今还没有能取代它的更适合产品,今后将继续稳步发展和完善化在功率稍大和要求高响应高速度的系统,则更多地让位给交流伺服系统。

在现代工业控制和医疗器械中广泛的使用,但是目前主要是应用单片机进行时序控制,在应用现成的驱动器,这样势必会提高仪器仪表的成本和使用范围,本毕业设计针对ASIC芯片来进行一个三相步进电机控制和驱动系统,系统结构简单,体积小,成本低,移植性强。

2、设计内容与要求(1).确定设计方案,绘制方框图;(2).设计各部分电路,要求在一片EPM240C100-5芯片上实现主控制功能,驱动电路可另行设计实现,在保证实现基本功能和主要技术指标的前提下注意降低成本,以获取较高的性价比;(3).分析各单元电路的工作原理和特性;(4).画出整机电路图,用QUARTUS II软件仿真所有子电路,并在实际电路板上调试实现功能,说明电路调试的基本方法;(5).要求设计键盘控制功能具有启动/停止、连续/单步、正转/反转、8档加速/8档减速等功能,且能消除键盘抖动;(6).可以使用矩阵键盘或者独立键盘。

3、技术指标:(1).芯片选择:CPLD中的MAX II EPM240C100-5芯片;(2).步进电机:四相步进电机;(3).驱动功率:加驱动芯片ULN2003达5W;(4).逻辑工作电压:DC5V,驱动电压12V(5).步进精度或角度:3°(6).使用环境:-20~85℃。

(7).要求控制与驱动之间加光耦隔离四、设计参考书及参考网址1、潘松主编《EDA技术与VHDL》,清华大学出版社2、唐亚平主编《EDA技术应用》,化学工业出版社3、宋振辉主编《EDA技术与VHDL》,北京大学出版社4、徐志军王金明尹廷辉编蓍《EDA技术与VHDL设计》,电子工业出版社5、参考网址:/等五、设计说明书要求1、封面2、目录3、内容摘要(200~400字左右,中英文)4、正文(设计方案比较与选择,设计方案原理、计算、分析、论证,设计结果的说明及特点)5、结束语6、附录(参考文献、图纸、材料清单等)六、设计进程安排第1周:资料准备与借阅,了解课题思路。

EPM240开发板简介(送USB Blaster下载线)

EPM240开发板简介(送USB Blaster下载线)

CPLD 开发板EPM240 系列产品简介一. 产品简介CPLD 开发板EMP240 是一套基于Altera MAXⅡ240 芯片的学习开发平台,我们为用户提供了丰富的板载资源及例子程序(Verilog和VHDL),很容易实现产品的直接应用及再次开发。

本开发板供CPLD编程初学者学习使用,也可作为系统板嵌入到用户的产品供用户进行二次开发以便缩短产品开发周期,同时也可以作为毕业设计的开发平台,让您轻轻松松做好您的毕业设计,因为我们附带了众多功能实现的源代码,我们还将无偿提供板载资源的的资料,来提高您的创新性。

整体效果图二系统资源八位共阴数码管;8个LED灯;8 个独立按键;一个八位拔码开关;1个RS-232接口;1个PS/2接口;LCD1620字符液晶接口;1路步进电机接口;1路直流电机控制端口;USB接口和外接接口两种电源供电方式;采用50M有源晶振、ALTERA新一代MAX II CPLD EPM240一个红外接收头;1个DS18B20外置端口;1路独立继电器输;1路蜂鸣器;JTAG接口一个;I2C存储器24LC02扩展I/0,用户可以接其它用户设备,可以和自己的目标系统进行直接连接使用.。

三. CPLD 开发板实验代码(提供以下实验原代码,采用Verilog 编写,部分也采用VHDL 语言编写)实验一译码1、38译码2、与门实验二 LED显示1、LED 闪烁2、LED流水灯实验三数码管1、数码管静态显示2、数码管动态显示3、数字时钟实验四按键控制LED1、键值显示2、拔码开关译码3、按键控制继电器实验五音乐演奏1、七色音符演奏2、MUSIC播放实验六红外接收1、红外接收编码分析实验七电机控制1、PWM 脉宽调制控制直流电机转速2、步进电机调速控制实验八 LCD显示1、LCD1602显示控制实验九通讯1、串口发送2、串口接收实验十 PS/21、PS/2键盘键值显示2、PS/2鼠标功能仿真实验十一综合测试1、多功能综合测试四配套资料及软件1.完整的电路原理图(PDF格式);2.所有实验提供源代码;3.提供开发板上的所有芯片资料;4.赠送 QUARTUS 7.0完全开发视频教材(市面上买不到的视频教材);5. 提供 QUARTUS 7.0完全破解版软件及注册码;7. CPLD开发资料,用户手册等。

笔记16 基于EPM240的入门实验(第1版书中)

笔记16 基于EPM240的入门实验(第1版书中)

笔记16基于E P M240的入门实验一、学习板简介B J E P M240学习板是特权同学和知名电子技术网站w w w.e d n c h i n a.c o m合作推出的一款F P G A/C P L D入门级学习板,该学习板在ED N助学活动期间以低廉的价格提供给所有注册会员,并且赠送免费的P C B板㊂学习板以齐全的资料㊁良好的代码风格博得了广大网友的一致认可,很适合初学者入门学习,该板子的一切相关问题都可以在E D N网站的C P L D/F PG A助学小组(h t t p://g r o u p.e d n c h i n a.c o m/1375/)里进行讨论㊂1.B J E P M240学习板功能框图图5.1是整板系统的功能框图,从图中可以清楚地看到以A l t e r a的C P L D芯片E P M240T100为主的学习板上丰富的外设资源及其位置分布情况㊂2.B J E P M240学习板基本配置①主芯片使用的是A l t e r a公司的MA XⅡ系列E P M240T100C5,该芯片有240个逻辑单元,等效宏单元192个,资源比较丰富,内有8K bF l a s h的存储空间㊂②50MH z有源晶振,作为系统主时钟㊂③低电平复位按键,使用E P M240的全局复位引脚㊂④8色V G A接口1个,让大家掌握计算机显示器的驱动原理㊂⑤R S232串口1个,通过串口调试助手轻松实现U A R T通信协议㊂⑥P S/2接口1个,实现键盘解码,配合串口调试助手在P C机上显示键值㊂⑦70n s快速读/写的S R AM芯片I S62L V25670U,具有32K B存储空间,让大家熟悉S R AM的读/写操作㊂⑧E E P R OM芯片A T24C02,让大家熟悉使用V e r i l o g进行I2C通信㊂⑨4个独立按键,进行V e r i l o g脉冲采样和按键消抖控制㊂笔记16基于E P M240的入门实验186图5.1B J E P M240学习板资源分布及功能框图⑩4个流水灯,配合4位按键进行J o h n s o n计数器实验㊂췍蜂鸣器,实现简单的分频计数器㊂췍2位数码管,使用其进行计数实验㊂췍外接信号电平转换芯片S N74L V C4245,可以与单片机等5V器件进行通信,预留16针总线接口㊂췍使用电源开关和电源指示灯,系统稳定可靠㊂3.E P M240T100C5芯片介绍选用目前市场性价比较高的A l t e r a公司MA XⅡ系列的C P L D㊂A l t e r a推出的MA XⅡ器件系列是一款革命性的C P L D产品,它基于突破性的C P L D架构,达到业界所有C P L D系列中单个I/O引脚的最低成本和最小功耗㊂这些器件采用新的查找表(L U T)体系,采用笔记16 基于E P M 240的入门实验187T S M C 的0.18μm 嵌入F l a s h 工艺,使其裸片尺寸仅为同样工艺器件的1/4㊂MA X Ⅱ系列和上一代MA X 产品相比,成本降低了一半,功耗只有其1/10,同时保持MA X 系列原有的瞬态启动㊁单芯片㊁非易失性和易用性㊂新的系列器件容量翻了两番,性能是上一代MA X C P L D 的两倍多,使消费类㊁通信㊁工业和计算机产品的设计者能够采用MA X Ⅱ系列器件代替昂贵且不够灵活的小型A S I C 和A S S P ㊂MA X Ⅱ系列器件的主要特征:①成本优化的架构:新型MA X ⅡC P L D 架构包括基于L U T 的L A B 阵列㊁非易失性F l a s h 存储模块和J T A G 控制电路㊂②低功耗:MA X Ⅱ器件是动态功耗较低的C P L D ㊂③高性能:MA X Ⅱ器件支持高达300MH z 的内部时钟,可为用户提供更高的系统级性能㊂通过改善布线结构,引脚间的延时与其他同容量的C P L D 相比大大降低,目前降低到3.6n s ㊂MA X Ⅱ系列引脚与引脚之间的最大延时见表5.1,其中t P D 1为最大距离引脚之间的延迟时间(即对角上的引脚之间),t P D 2为最小距离引脚的延迟时间(即相邻的引脚之间)㊂④用户F l a s h 存储器:MA X ⅡC P L D 内的用户F l a s h 存储器是一个大小为8K b㊁用户可访问且可编程的F l a s h 存储器块,可用于用户自己定义的数据㊂⑤实时在系统可编程能力(I S P ):MA X Ⅱ器件支持实时在系统可编程㊂⑥灵活的多电压内核:MA X Ⅱ架构支持多电压,允许器件在1.8V ㊁2.5V 或3.3V 电压环境下工作㊂⑦J A T G 翻译器:MA X ⅡC P L D 具有一种被称为J A T G 翻译器的功能,这种功能允许通过MA X Ⅱ器件执行定制的J T A G 指令,配置单板上不兼容J T A G 协议的器件,从而简化了单板管理㊂⑧I /O 能力:MA X ⅡC P L D 的I /O 能力加强了其易用性和系统集成能力㊂表5.2列出了MA X Ⅱ器件支持的I /O 标准㊂表5.1 M A X Ⅱ系列引脚与引脚之间的最大延时参 数E P M 240E P M 570E P M 1270E P M 2210单 位t P D 14.55.46.06.6n s t P D 23.63.63.63.6n s表5.2 M A X Ⅱ的I /O 标准I /O 标准性能/MH z 3.3VL V T T L /L V C MO S 3002.5VL V T T L /L V C MO S 2201.8VL V T T L /L V C MO S2001.5VL V C M O S 1503.3VP C I334.B J E P M 240学习板实验例程B J E P M 240学习板主要就是为大家提供一个硬件学习的平台㊂H D L 设计与以往的软件开发不同,需要学习者具备并行设计的思想,本学习板由浅入深为大家提供了13个具有详笔记16基于E P M240的入门实验188细注释的例程,相信大家在学习完这些例程后能够轻松入门F P G A/C P L D的开发㊂例程清单:①分频计数实验;②按键消抖实验;③J o h n s o n计数器实验;④数码管显示实验;⑤乘法器设计实验;⑥V G A接口实验;⑦串口通信实验;⑧P S2键盘解码实验;⑨I2C通信实验;⑩S R AM读写实验;췍MA XⅡ内部震荡时钟使用实例;췍MA XⅡ的U F M模块使用实例;췍Q u a r t u sⅡ调用M o d e l S i m仿真实例㊂二、分频计数实验这个实验可以说是V e r i l o g入门最基础的实验了,这里不做太多的理论分析,实践是硬道理㊂蜂鸣器与C P L D的接口电路如图5.2所示,当C P L D的I/O口(F M)为高电平时,三极管截至,蜂鸣器不发声;当C P L D的I/O(F M)为低电平时,三极管导通,蜂鸣器发声㊂在V e r i l o g代码设计中,把分频输出的信号c l k_d i v与F M引脚对应,大家就可以真真切切地感受到什么是分频了㊂在代码里,用了20位的计数器c n t循环计数,一个周期有220即大约1M分频㊂因为主时钟频率是50MH z(周期是20n s),所以20m s为一个计数周期㊂蜂鸣器就以40m s的周期发声(其中20m s高电平,20m s低电平),如果大家希望蜂鸣器的发声频率改变,那么可以改变c n t的值㊂接口定义如表5.3所列㊂图5.2蜂鸣器接口电路图表5.3分频计数实验接口定义信号名称方向描述c l k i n p u t时钟信号,50MH zr s t_n i n p u t复位信号,低电平有效c l k_d i v o u t p u t分频信号,连接到蜂鸣器笔记16 基于E P M 240的入门实验189V e r i l o g 代码如下:m o d u l ec l k d i v(c l k ,r s t _n ,c l k _d i v);i n pu tc l k ;//50M H zi n p u tr s t _n ;//低电平复位信号o u t pu tc l k _d i v ;//分频信号,连接到蜂鸣器//--------------------------------------------------------------------------------------------------------------------------r e g[19:0]c n t ;//分频计数器a l w a y s @(p o s e d g ec l ko rn e g e d ger s t _n )//异步复位i f (!r s t _n )c n t <=20ʎd 0;e l s ec n t <=c n t +1ʎb 1;//寄存器c n t 大约20m s 进行循环计数//--------------------------------------------------------------------------------------------------------------------------r e g c l k _d i v _r ;//c l k _d i v 信号值寄存器a l w a y s @(p o s e d g ec l ko rn e g e d g er s t _n )i f (!r s t _n )c l k _d i v _r <=1ʎb 0;e l s ei f (c n t ==20ʎh f f f f f )c l k _d i v _r <=~c l k _d i v _r ; //每20m s 让c l k _d i v _r 值翻转一次a s s i g nc l k _d i v =c l k _d i v _r ;e n d m o d u l e第1个a l w a y s 语句里实现了20位计数器c n t 的循环计数;第2个a l w a ys 语句对c n t 的计数值做判断,满足条件(每一个计数周期)时就会相应的对c l k _d i v _r 进行翻转㊂如此以来,就实现了c l k _d i v 的输出为每一个计数周期(大约20m s )变化一次,从而达到了控制蜂鸣器发声频率的目的㊂三、按键消抖实验键盘分编码键盘和非编码键盘㊂键盘上闭合键的识别由专用的硬件编码器实现㊁并产生键编码号或键值的键盘称为编码键盘,如计算机键盘;而靠软件编程来识别的键盘称为非编码键盘㊂在一般嵌入式应用中,用的最多的是非编码键盘,也有用到编码键盘的㊂非编码键盘又分笔记16基于E P M240的入门实验190为独立键盘和行列式(又称矩阵式)键盘㊂如图5.3所示,按键在闭合和断开时,触点会存在抖动现象㊂在按键按下或者释放的时候都会出现一个不稳定的抖动时间,如果不处理好这个抖动时间,就无法处理好按键编码,所以在设计中必须有效消除按键抖动㊂图5.3按键波形如图5.4所示,4个独立按键一端接地,另一端在上拉的同时连接到C P L D的I/O口㊂当I/O口(S W0/S W1/S W2/S W3)的电平为高时,说明按键没有被按下;当I/O口的电平为低时,说明按键被按下了㊂如图5.5所示,4个发光二极管通过一个510Ω的限流电阻后与C P L D的I/O口连接;发光二极管的负极接地㊂因此,C P L D的I/O口输出高电平时,二极管导通,则点亮;CP L D的I/O口输出低电平时,二极管截止,则不亮㊂图5.4独立按键接口图5.5发光二极管接口该实验需要实现一个简单操作:3个按键分别控制3个发光二极管亮或暗㊂例如,按键1控制发光二极管1,上电初始发光二极管1不亮,当检测到按键1被按下后,发光二极管1点亮,按键1再次被按下时,发光二极管1则不亮,如此反复㊂该实验需要把握好按键消抖检测的设计技巧,其接口定义如表5.4所列㊂笔记基于的入门实验1//--------------------------------------------------------------------------------------------------------------------------r e g [2:0]k e y _r s t ;a l w a y s @(p o s e d g ec l k o rn e g e d ger s t _n )i f (!r s t _n )k e y _r s t <=3ʎb 111;e l s ek e y_r s t <={s w 3_n ,s w 2_n ,s w 1_n };r e g [2:0]k e y_r s t _r ;//每个时钟周期的上升沿将k e y _r s t 信号锁存到k e y_r s t _r 中a l w a y s @(p o s e d g ec l k o rn e g e d g er s t _n )i f (!r s t _n )k e y _r s t _r <=3ʎb 111;e l s ek e y _r s t _r <=k e y_r s t ;//当寄存器k e y _r s t 由1变为0时,k e y_a n 的值变为高,维持一个时钟周期w i r e [2:0]k e y _a n =k e y _r s t _r&(~k e y_r s t );//--------------------------------------------------------------------------------------------------------------------------r e g [19:0]c n t ;//计数寄存器a l w a y s @(p o s e d g ec l k o rn e g e d g er s t _n )i f (!r s t _n )c n t <=20ʎd 0;//异步复位笔记16基于E P M240的入门实验192e l s ei f(k e y_a n)c n t<=20ʎd0;e l s ec n t<=c n t+1ʎb1;r e g[2:0]l o w_s w;a l w a y s@(p o s e d g ec l k o rn e g e d g er s t_n)i f(!r s t_n)l o w_s w<=3ʎb111;e l s ei f(c n t==20ʎhf f f f f)//满20m s,将按键值锁存到寄存器l o w_s w中,c n t==20ʎh f f f f fl o w_s w<={s w3_n,s w2_n,s w1_n};//--------------------------------------------------------------------------------------------------------------------------r e g[2:0]l o w_s w_r;//每个时钟周期的上升沿将l o w_s w信号锁存到l o w_s w_r中a l w a y s@(p o s e d g ec l k o rn e g e d g er s t_n)i f(!r s t_n)l o w_s w_r<=3ʎb111;e l s el o w_s w_r<=l o w_s w;//当寄存器l o w_s w由1变为0时,l e d_c t r l的值变为高,维持一个时钟周期w i r e[2:0]l e d_c t r l=l o w_s w_r[2:0]&(~l o w_s w[2:0]);r e g d1;r e g d2;r e g d3;a l w a y s@(p o s e d g ec l ko rn e g e d g er s t_n)i f(!r s t_n)b e g i nd1<=1ʎb0;d2<=1ʎb0;d3<=1ʎb0;e n de l s eb e g i n//某个按键值变化时,L E D将做亮灭翻转i f(l e d_c t r l[0])d1<=~d1;i f(l e d_c t r l[1])d2<=~d2;i f(l e d_c t r l[2])d3<=~d3;e n da s s i g nl e d_d3=d1?1ʎb1:1ʎb0;//L E D翻转输出a s s i g nl e d_d2=d2?1ʎb1:1ʎb0;a s s i g nl e d_d1=d3?1ʎb1:1ʎb0;e n d m o d u l e笔记16 基于E P M 240的入门实验193也许初学者看到这段代码会有点吃力,这里有很多的a l w a y s 和w i r e ㊂的确是这样,一个好的V e r i l o g 代码,不应该把一大堆寄存器的赋值都放到一个a l w a ys 语句里,那样虽然看上去代码很简捷,但是维护起来却很痛苦㊂所以,设计中往往应该一个(或者少数几个)寄存器的赋值对应单独的一个a l w a ys 来执行㊂其次是w i r e 连线很多,要是仔细研究代码,大家就不难发现所有寄存器的连线关系设计者都考虑到了,设计者必须对自己代码要实现的每一个细节都做到心中有数,细化到每一个寄存器㊁每一条连线㊂上面说的是代码风格,下面就看看按键消抖的设计思想㊂前两个a l w a ys 语句其实是对输入键盘进行两次锁存,k e y _r s t 和k e y _r s t _r 是前后两次采样时刻获得的键值㊂k e y _a n 是通过一定的逻辑关系,在键值从1(没按)到0(按键)变化时刻得到一个时钟宽度的高脉冲,这里的k e y_a n 是为了后面20m s 消抖复位时使用的㊂第3个a l w s y s 做(大约)20m s 的计数,这个计数器会在k e y _a n 高脉冲时复位,也就是说,一旦发现按键出现从0到1的释放抖动,就对计数寄存器清零;然后隔20m s 会再读取键值,把这个键值放到寄存器l o w _s w 中㊂接下来的一个a l w a y s 语句就是把l o w _s w 的值锁存到l o w _s w _r 里,这样一来,l o w _s w 和l o w _s w _r 就是前后两个时钟周期里的键值了,为什么要这样呢?看下面这个语句:w i r e [2:0]l e d _c t r l =l o w _s w _r [2:0]&(~l o w _s w [2:0]);仔细分析会发现当没有键按下时,l o w _s w=l o w _s w _r =3 b 111,此时的l e d _c t r l =3 b 000;只有当l o w _s w _r 和l o w _s w 的某一位分别为1和0时,才可能使l e d _c t r l 的值改变(也就是把l e d _c t r l 的某一位拉高一个时钟周期),这就意味着当键值由0跳变到1时(按键释放时)才可能把l e d _c t r l 拉高㊂回顾前面的20m s 赋键值,也就是说每20m s 内如果出现按键被按下,那么有一个时钟周期里l e d _c t r l 是会被拉高的;而再看后面的代码,l e d _c t r l 的置高就使得相应L E D 灯的亮灭做一次翻转,这就达到了目的㊂四、J o h n s o n 计数器实验所谓J o h n s o n 计数器,无非就是复杂一点的流水灯实验㊂流水灯加上了按键控制,流水灯的开启关闭和变化方向在按键的控制下进行㊂本实验使用带停止控制的双向4位J o h n s o n 计数器,可以通过L E D 灯直观地在学习板上进行演示㊂该工程的接口定义如表5.5所列㊂19图5.6 数码管接口带小数点的共阴极数码管对应的段选如图5.7所示㊂如表5.6所列,对S M 0~S M 7进行编码得到相应的显示数字或字符(不带小数点显示)㊂笔记基于的入门实验5图5.7 V e r i l o g m o d u l el e d _s e g7(c l k ,r s t_n ,s m _c s 1_n ,s m _c s 2_n ,s m _d b);i n pu tc l k ;//50M H zi n pu tr s t _n ;//复位信号,低有效o u t p u ts m _c s 1_n ,s m _c s 2_n ;//数码管片选信号,低有效o u t p u t [6:0]s m _d b ;//7段数码管(不包括小数点)r e g[24:0]c n t ;//计数器,最大可以计数到225ˑ20n s ʈ640m sa l w a y s @(p o s e d g ec l ko rn e g e d ger s t _n )i f (!r s t _n )c n t <=25ʎd 0;e l s ec n t <=c n t +1ʎb 1;//循环计数r e g[3:0]n u m ;//显示数值笔记16基于E P M240的入门实验196a l w a y s@(p o s e d g ec l ko rn e g e d g er s t_n)i f(!r s t_n)n u m<=4ʎd0;e l s ei f(c n t==24ʎhf f f f f f)n u m<=n u m+1ʎb1;//每(大约)640m s增1//--------------------------------------------------------------------------------------------------------------------------//共阴极:不带小数点//;0,1,2,3,4,5,6,7,//d b3f h,06h,5b h,4f h,66h,6d h,7d h,07h//;8,9,a,b,c,d,e,f,灭//d b7f h,6f h,77h,7c h,39h,5e h,79h,71h,00hp a r a m e t e r s e g0=7ʎh3f,s e g1=7ʎh06,s e g2=7ʎh5b,s e g3=7ʎh4f,s e g4=7ʎh66,s e g5=7ʎh6d,s e g6=7ʎh7d,s e g7=7ʎh07,s e g8=7ʎh7f,s e g9=7ʎh6f,s e g a=7ʎh77,s e g b=7ʎh7c,s e g c=7ʎh39,s e g d=7ʎh5e,s e g e=7ʎh79,s e g f=7ʎh71;r e g[6:0]s m_d b r;//7段数码管(不包括小数点)a l w a y s@(n u m)c a s e(n u m)//N U M值显示在两个数码管上4ʎh0:s m_d b r<=s e g0;4ʎh1:s m_d b r<=s e g1;4ʎh2:s m_d b r<=s e g2;4ʎh3:s m_d b r<=s e g3;4ʎh4:s m_d b r<=s e g4;4ʎh5:s m_d b r<=s e g5;4ʎh6:s m_d b r<=s e g6;4ʎh7:s m_d b r<=s e g7;4ʎh8:s m_d b r<=s e g8;笔记16 基于E P M 240的入门实验1974ʎh 9:s m _d b r <=s e g 9;4ʎh a :s m _d b r <=s e g a ;4ʎh b :s m _d b r <=s e g b ;4ʎh c :s m _d b r <=s e g c ;4ʎh d :s m _d b r <=s e g d ;4ʎh e :s m _d b r <=s e g e ;4ʎh f :s m _d b r <=s e g f ;d e f a u l t :;e n d c a s ea s s i gns m _d b =s m _d b r ;a s s i g ns m _c s 1_n =1ʎb 0;//数码管1常开a s s i g ns m _c s 2_n =1ʎb 0;//数码管2常开e n d m o d u l e设计中用了一个计数器进行定时,每个定时周期显示的数据递增,而相应的译码逻辑触发后,译码输出数据就发生变化,从而改变数码管显示的数值㊂六、乘法器设计实验乘法器是众多数字系统中的基本模块㊂从原理上说它属于组合逻辑范畴;但从工程实际设计上来说,它往往会利用时序逻辑设计的方法来实现,属于时序逻辑的范畴㊂通过这个实验使大家能够掌握利用F P G A /C P L D 设计乘法器的思想,并且能够将设计的乘法器应用到实际工程中㊂乘法器的设计方法有两种:组合逻辑设计方法和时序逻辑设计方法㊂采用组合逻辑设计方法,电路事先将所有的乘积项全部计算出来,最后进行加法运算㊂采用时序逻辑设计方法,电路将部分已经得到的乘积结果右移,然后与乘积项相加并保存和值,反复迭代上述步骤直到计算出最终乘积㊂在该实验中就是要利用时序逻辑设计方法来设计一个16位乘法器,既然是利用时序逻辑设计方法,那么就得利用时钟信号控制乘法器运算㊂利用时序逻辑设计方法的优点是,可以使整体设计具备流水线结构的特征,能适用在各种实际工程设计中㊂在提及乘法器的速度时,可以先了解一下数据吞吐量的概念㊂数据吞吐量是指芯片在一定时钟频率条件下所能处理的有效数据量㊂假设本实验设计的乘法器时钟频率可达300MH z,那么该芯片的数据吞吐量是多少呢?由于完成一次乘法运算需要1个以上的时钟周期,所以,即使采用300MH z 的时钟频率,芯片每秒钟能处理的有效数据吞吐量也一定小于300MH z ㊂对于16位乘法器而言,a i n 和b i n 均为0x F F F F 时,芯片的运算量最大,计算所需的时间也最长,这种情况才能作为计算数据吞吐量的依据㊂19如图5.8所示,综合后的R T L 视图很好地表现出了代码设计中移位累加的设计思想㊂图5.8 乘法器综合后R T L 视图图5.9是该乘法器代码的一个功能仿真波形㊂a i n =89,b i n =33,yo u t =a i n ˑb i n =2937㊂我们发现这个乘法器的吞吐量并不大,在使能信号s t a r t 有效后大约经过了16个时钟周期才输出最终的运算结果㊂大家可以利用流水线设计方法让它在以后的每个时钟周期都输出一个运算结果,这样就能够大大提高吞吐量;或者也可以使用一个大的并行乘法器进行设计,这样会消耗大量的逻辑资源㊂感兴趣的朋友可以自己尝试实现一下㊂笔记16 基于EP M 240的入门实验199图5.9 乘法器实验仿真波形七、V G A 接口实验这里要讲的V G A 显示用的是通用的计算机显示器㊂它的应用背景以及更多的知识建议大家到网络上搜寻,相关文章很多㊂它的接口如图5.10所示㊂图5.10 V G A 接口标准V G A 接口一共有15个接口(拔下任何一台V G A 液晶或是C R T 显示器看看就知道了),真正用到的信号接口不多,就5个㊂H S Y N C 是行同步信号,V S Y N C 是场同步信号,同步信号就是为了让V G A 显示器接收部分知道送来的数据是对应哪一行哪一列的哪一个像素点㊂V G A _R ㊁V G A _G ㊁V G A _B 是三原色信号,这三个信号接口的输入都是模拟信号(标准为0~0.7V ),所以它们都有相应的地线需要连接㊂我们使用的这块学习板的接口做得比较简单,直接用I /O 口去连接V G A 的5个信号接口,并且三原色信号接口输入的只可能是数字信号(0或1),因此驱动液晶屏上显示的颜色最多也就8种㊂一般来说,可以在F P G A /C P L D 和V G A 接口之间加一个D A C 芯片,这样就可能实现65536种或者更多色彩的显示㊂V G A 接口时序如图5.11所示,场同步信号V SY N C 在每帧开始的时候产生一个固定宽度的低脉冲,行同步信号H S Y N C 在每行开始的时候产生一个固定宽度的低脉冲,数据在某些固定的行和列交汇处有效㊂图5.11 V G A 接口时序图20详细的源代码请参考配套光盘㊂八、串口通信实验先简单说说串口通信(U A R T ),该实验只针对R S 232标准㊂如图5.12所示,该接口电路使用了MA X 3232C S E 作为电平转换芯片㊂典型的R S 232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平+5~+15V ,负电平-5~-15V ㊂接收器典型的工作电平为+3~+12V 与-3~-12V ㊂由于发送电平与接收电平的差仅为2~3V ,所以其共模抑制能力较差,再加上双绞线上的分布电容,其传送距离最大约为15m ,最高速率为20K b /s㊂R S 232是为点对点(即只用一对收㊁发设备)通信而设计的,其驱动器负载为3~7k Ω㊂图5.12是MA X 3232C S E 的硬件原理图㊂对C P L D /F P G A 设计者而言,只需要关心与其接口的R S 232_T X 和R S 232_R X 两个信号㊂R S 232_T X 是数据发送端口,R S 232_R X 是数据接收端口㊂简单的串口帧格式如图5.13所示㊂该实验要实现的功能是:C P L D 实时监测R S 232_R X 信号是否有数据,若接收到数据,则把接收到的数据通过R S 232_T X 发回给对方㊂上位机用的是串口调试助手㊂笔记16基于E P M240的入门实验201图5.12M A X3232C S E硬件原理图图5.13简单的串口帧格式在代码设计中,发送数据的波特率是可选的,可以是9600b p s,19200b p s,38400b p s, 57600b p s或115200b p s㊂这部分在模块s p e e d_s e l e c t里,用户可以根据需要进行配置㊂发送的数据帧格式为:1位起始位(保持一个传输位周期的低电平),8位数据,无校验位,1位停止位㊂如图5.14所示,该设计分为4个模块实现,主要是依据数据流的方向进行模块划分㊂m y_u a r t_r x模块主要是完成数据的接收,s p e e d_s e l e c t(s p e e d_r x)模块主要响应m y_u a r t_r x模块发出的使能信号进行波特率计数,并且回送一个数据采样使能信号㊂m y_u a r t_t x模块在m y_u a r t_r x模块接收好一个完整的数据帧后启动,将接收到的数据返回给对方,它的波特率控制是由s p e e d_s e l e c t(s p e e d_t x)模块产生的㊂该工程的顶层接口定义如表5.11所列㊂20图5.14串口实验R T L视图表5.11串口通信实验接口定义信号名称方向描述c l k i n p u t时钟信号,50MH zr s t_n i n p u t复位信号,低电平有效信号名称方向描述r s232_r x i n p u t R S232接收数据信号r s232_t x o u t p u t R S232发送数据信号大家在消化代码的时候可能会看到顶层做了以下两个例化,需要说明的是这两个例化都是针对一个相同的模块s p e e d_s e l e c t,但是例化后的名字不同,分别为s p e e d_r x和s p e e d_t x㊂它们综合后是两个不同的模块,相互独立,不可以复用㊂s p e e d_s e l e c t s p e e d_r x(.c l k(c l k),//波特率选择模块.r s t_n(r s t_n),.b p s_s t a r t(b p s_s t a r t1),.c l k_b p s(c l k_b p s1));s p e e d_s e l e c t s p e e d_t x(.c l k(c l k),//波特率选择模块.r s t_n(r s t_n),.b p s_s t a r t(b p s_s t a r t2),.c l k_b p s(c l k_b p s2));九㊁P S/2键盘解码实验相信大家对P S/2都不会陌生,我们所使用的鼠标㊁键盘大多都是基于P S/2接口设计的㊂笔记基于的入门实验3 .15 P S /2标准接口虽然基于U S如图5.1表5.12所列应答位仅在主机对设备的通信中使用㊂如果数据位中1的个数为奇数校验位就为0因此总进行奇校验(图5.16 P S /2数据帧格式P C 通过P S /2接口与从设备通信时,总在时钟的下降沿读取数据㊂下面介绍键盘编码返回值,键盘的返回值并不是和一般A S C I I 码相对应㊂键盘的处理器如果发现有键被按下㊁释放或按住,将发送扫描码的信息包到计算机㊂扫描码有两种不同类型的通码和断码,当一个键被按下或按住,就发送通码;当一个键被释放,就发送断码㊂每个按键被分配了唯一的通码和断码,这样主机通过查找唯一的扫描码就可以测定是哪个按键㊂每个键一整套的通断码组成了扫描码集,有三套标准的扫描码集,分别是第一套㊁第二套和第三套㊂所有现代的键盘默认使用第二套扫描码㊂虽然多数第二套通码都只有一个字节宽,但也有少数扩展按键的通码是2字节或4字节宽,这类的通码第1个字节总是为8 h e 0㊂正如有键按下,通码就被发往计算机一样,只要键一释放,断码就会被发送㊂每个键都有它自己唯一的通码,也都有唯一的断码㊂幸运的是你不用总是通过查表来找出按键的断码,在笔记16基于E P M240的入门实验204通码和断码之间存在着必然的联系㊂多数第二套断码有2字节长,它们的第1个字节是8 h f0;第2个字节是这个键的通码㊂扩展按键的断码通常有3个字节,它们前2个字节是8 h e0㊁8 h f0,最后1个字节是这个按键的通码㊂下面举个实例进行说明㊂通码和断码是以什么样的序列发送到计算机,从而使得字符G 出现在字符显示框的呢?因为这是一个大写字母,需要依次发生下面的事件:按下S h i f t键,按下G键,释放G键,释放S h i f t键㊂与这些时间相关的扫描码如下:S h i f t键的通码 8 h12 ㊂G键的通码 8 h34 ,G键的断码 8 h f08 h34 ,S h i f t键的断码 8 h f08 h12 ㊂因此发送到计算机的数据应该是:8 h128 h348 h f08 h348 h f08 h12㊂第二套键盘扫描码以及工程源代码参考配套光盘㊂如图5.17所示,P S/2接口P I N1和P I N5连接到C P L D的I/O口,C P L D只要根据这两个接口的一定时序关系进行解码即可㊂图5.17P S/2接口如果是第1次接触P S/2协议的朋友,上面这些说明可能还不足以深入认识P S/2接口,但是边练边学,遇到不明白的再回头找资料也是一个不错的学习手段㊂下面要开始动手实践了,我们要做的是一个相对比较容易的实验,达到入门的目的即可,有兴趣的朋友可以在这个基础上继续更深入的研究㊂该实验要实现C P L D通过P S/2接收键盘的数据,然后把接收到的大写字母A~Z的键值转换成相应的A S C I I码,再通过串口传送给P C机;只要字母按键被按下,就能在串口调试助手里显示相应字母㊂顶层模块的接口定义如表5.13所列㊂表5.13P S/2键盘解码实验接口定义信号名称方向描述c l k i n p u t时钟信号,50MH zr s t_n i n p u t复位信号,低电平有效p s2k_c l k i n p u t P S/2接口时钟信号信号名称方向描述p s2k_d a t a i n p u t P S/2接口数据信号r s232_t x o u t p u t R S232发送数据信号笔记16 基于E P M 240的入门实验205如图5.18所示,除了顶层模块(p s 2_k e y ),3个底层模块分别为P S /2传输处理模块(p s 2s c a n )㊁串口传输模块(m y _u a r t _t x )以及串口波特率选择模块(s pe e d _s e l e c t )㊂图5.18 P S /2接口R T L 视图该代码下载完成后,接上P S /2键盘(注意:P S /2一般不支持热拔插,最好C P L D 下载后在掉电状态下插入P S /2键盘,然后上电),随后打开串口调试助手,如果按下键盘上A~Z 任意键,串口调试助手即可显示相应字母㊂十、I 2C 通信实验做本实验前,希望大家能先对I 2C 协议有足够的了解,最好是以前用C 语言或者汇编做过I 2C 通信的实验㊂如果对I 2C 不是很熟悉,那么建议先去看A T 24C X X 的d a t a s h e e t,周立功翻译的中文版也可以,但是最好是去看看官方英文版本的d a t a s h e e t,毕竟那才是最权威的参考资料㊂首先来简单回顾一下基于A T 24C 02的I 2C通信协议㊂如图5.19和图5.20所示,分别是该实验中要涉及的单字节写时序和随机读时序㊂图5.19 单字节写时序I 2C 通信中只涉及两条信号线,即时钟线S C L 和数据线SD A ㊂时钟线为高电平时均可锁存数据,即时钟线上升沿和下降沿之间㊂当时钟线S C L 为高电平时,如果把数据线S D A 从高笔记16 基于E P M 240的入门实验206图5.20 随机读时序电平拉到低电平,则表示通信开始;如果把数据线S D A 从低电平拉到高电平,则表示通信结束㊂器件地址(D E V I C E A D D R E S S )的定义如图5.21所示㊂最低位(L S B )R /W 表示读或者写状态,1表示读,0表示写㊂图5.21 器件地址字节定义该工程的接口定义如表5.14所列㊂表5.14 I 2C 通信实验接口定义信号名称方 向描 述c l ki n p u t 时钟信号,50MH z r s t _n i n p u t 复位信号,低电平有效s w 1i n p u t 按键1,低电平有效㊂按下执行写入操作s w 2i n pu t 按键2,低电平有效㊂按下执行读操作s c lo u t p u t A T 24C 02的时钟端口信号名称方 向描 述s d ai n o u tA T 24C 02的数据端口s m _c s 1_n o u t p u t 数码管1片选信号,低电平有效s m _c s 2_n o u t p u t 数码管2片选信号,低电平有效s m _d b [6:0]o u t pu t 数码管段选信号(不包括小数点)代码中分了两个模块,i i c _c o m 模块除了执行与I 2C 通信有关的代码设计外,还执行按键检测;而l e d _s e g 7模块只是驱动数码管显示从A T 24C 02指定地址读出的数据㊂对于这个通信过程,内部使用了一段式状态机进行设计,如图5.22所示㊂i i c _c o m 模块中设置了两个按键S W 1和S W 2,当S W 1按下的时候执行写入操作,当S W 2按下的时候执行读出操作㊂代码中有几个宏定义:笔记16 基于EP M 240的入门实验207图5.22 I 2C 通信状态机`d e f i n eD E V I C E _R E A D8ʎb 1010_0001//被寻址器件地址(读操作)`d e f i n e D E V I C E _W R I T E 8ʎb 1010_0000//被寻址器件地址(写操作)`d e f i n e W R I T E _D A T A 8ʎb 1101_0001//写入E E P R O M 的数据`d e f i n eB Y T E _A D D R8ʎb 0000_0011//写入/读出E E P R O M 的地址寄存器把代码烧入C P L D 中,此时数码管显示00,因为我们的显示值初始化时是d i s _d a t a =8 h 00㊂按下S W 2执行读操作,此时数码管显示的数据是E E P R OM 在地址存放的数据㊂先后按下S W 1和S W 2键,数码管显示的数据是代码中设置的WR I T E _D A T A 值㊂十一㊁S R A M 读/写实验S R AM 芯片时序操作大同小异,在这里总结一些它们共性的东西,也提一些用V e r i l o g 简单地快速操作S R AM 的技巧㊂这里就以本实验使用的I S 62L V 25670U 为例进行说明,其引脚定义如表5.15所列㊂表5.15 S R A M 引脚定义序 号引 脚描 述1A 0~A 14地址输入2C E n芯片使能输入,低有效3O E n输出使能输入,低有效4W E n写使能输入,低有效序 号引 脚描 述5I /O 0~I /O 7数据输入/输出6V C C电源7G N D数字地在硬件连接的时候,很多人喜欢直接把输出使能信号O E n 和片选信号C E n 接地,这样一来不仅节省了处理器和S R AM 连接的引脚数,而且在读/写S R AM 的时候只要对写使能信号W E n 操作就可以了,简化了代码部分㊂S R AM 接口硬件原理图如图5.23所示㊂因为在硬件上已经把C E n 和O E n 拉低了,所以在不进行写S R AM 的时候,实际上。

epm240实验板说明书.

epm240实验板说明书.

第1章 EPM240-CPLD实验板1.1 概述学习单片机、CPLD其实关键是实践,从51入门是个好选择,但不要停留在起点,学单片机方法得当是瞬间的事!但用好,就不好说了,一辈子都要努力随着产品控制技术的进步,CPLD与单片机的联系越来越密切,学会灵活应用CPLD已经作为我们工程技术人员的基本要求,抓紧时间学习吧,面对复杂的任务您就能应对自如,您的未来将更美好。

CPLD 开发板EMP240 是一套基于Altera MAX II240 芯片的学习开发平台,我们为用户提供了丰富的板载资源及例子程序(Verilog和VHDL),很容易实现产品的直接应用及再次开发。

本开发板供CPLD编程初学者学习使用,也可作为系统板嵌入到用户的产品供用户进行二次开发以便缩短产品开发周期,同时也可以作为毕业设计的开发平台,让您轻轻松松做好您的毕业设计,因为我们附带了众多功能实现的源代码,我们还将无偿提供板载资源的的资料,来提高您毕业的创新性,您的肯定就是我们最好的褒奖。

开发板提供丰富的接口资源和实例程序。

从易到难,一步步引导用户学习开发。

开发实例有VHDL和Verilog两个版本,同时还包括详细的使用手册和丰富的配套经典学习资料,非常适合CPLD,FPGA,VHDL,Verilog HDL开发学习者使用。

让用户理论和实际相结合,合理安排学习开发时间。

详细的说明文档,包括原理图讲解,实验操作及现象说明,QuartusII软件使用指导书,以及入门操作指导视频。

本开发板供CPLD编程初学者学习使用,也可作为系统板嵌入到用户的产品供用户进行二次开发以便缩短产品开发周期,同时也可以作为毕业设计的开发平台,让您轻轻松松做好您的毕业设计。

1.2 实验板的基本结构实验板是由美国ALTERA公司MAXII系列器件中的EPM240T100C5芯片以及可供设计者选择的丰富的外围接口器件组成。

EPM240T100C5芯片采用20MHz的石英晶体振荡器作为主时钟信号源。

CPLD EMP240原理图

CPLD EMP240原理图

P1 1 VCCIN 2 VCCO 3
P0P101 N0VCCIN P0P102 N0VCCO P0P103
VCC3.3 4 5 6
P0P104 P0P105 P0P106 N0VCCUSB VCCUSB N0VCC+5 VCC+5
U1C 13 63 9 31 45 59 80 94 DS2 LED0 VCCINT (3.3V or 2.5V) P0U1C063 VCCINT (3.3V or 2.5V) VCCIO1 VCCIO1 P0U1C045 VCCIO1
1
2
BANK 2
BANK 1
N0LED2 LED2 2P0U1A02 IO N0LED3 LED3 3P0U1A03 IO N0LED4 LED4 4P0U1A04 IO N0LED5 LED5 5P0U1A05 IO N0LED6 LED6 6P0U1A06 IO N0FM FMP0U1A07 7 IO N0INT INT 8P0U1A08 IO 12 P0U1A012 IO/GCLK0 N0CLK clk 14 P0U1A014 IO/GCLK1 N0ADB0 ADB015 P0U1A015 IO N0ADB1 ADB116 P0U1A016 IO N0ADB2 ADB217 P0U1A017 IO N0ADB3 ADB318 P0U1A018 IO N0ADB4 ADB419 P0U1A019 IO N0ADB5 ADB520 P0U1A020 IO N0ADB6 ADB621 P0U1A021 IO N0ADB7 ADB726 P0U1A026 IO N0/WR /WR 27 P0U1A027 IO N0/RD /RD 28 P0U1A028 IO
P0B0
N0B0 B0 N0B1 B1 N0B2 B2 N0B3 B3 N0B4 B4 N0B5 B5 N0B6 B6 N0B7 B7

QC-CPLD开发板原理图

QC-CPLD开发板原理图
1
2
3
4
5
6
A
青创电子 QC E-TECH
EPM240&EPM570开发板
Sheet1.sch 最 小 核 心 系 统 Sheet2.sch 外 围 设 备
Sheet1 Sheet1.sch
A
B
B
Sheet2 Sheet2.sch
Cபைடு நூலகம்
C
D Title Size B Date: File: 1 2 3 4 5 2013-5-30 E:\E\240\d电路图\V6\All-V6.Sch Sheet of Drawn By: 6 Number Revision
IO(B2) IO(B2) IO(B2) IO(B2) IO(B2) IO(B2) IO(B2) IO(B2) IO(B2) IO(B2) GNDINT IO/GCLK3 VCCINT IO/GCLK2 IO(B2) GNDIO VCCIO2 IO(B2) IO(B2) IO(B2) IO(B2) IO(B2) IO(B2) IO(B2) IO(B1)
VCC33
R19 2.2k 2
VCC33 CPLD_84
R20 2.2k 2
2
2
2
E VCC33 CPLD_77
CPLD_78
CPLD_4
CPLD_100 CPLD_98 CPLD_97 CPLD_91 CPLD_89 CPLD_87 CPLD_92 CPLD_96 CPLD_95 L8 L7 L6 L5 L4 L3 L2 L1 B8*8 R8 R7 R6 R5 R4 R3 R2 R1
D
1
2
3
4
5
6
接插件
J1 4 3 2 1 CON4 CPLD_88 CPLD_90 CPLD_39 CPLD_37

EPM240开发板例程-交通灯

EPM240开发板例程-交通灯

EPM240开发板例程--交通灯--**************库定义、包定义********************LIBRARY ieee;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;--******************实体定义***********************ENTITY jtd ISPORT(clk : in STD_LOGIC;--时钟输入rst : in STD_LOGIC;--复位键row : out STD_LOGIC_VECTOR(3 downto 0);--输出组控制r,y,g,bell : out STD_LOGIC);END jtd;--******************构造体定义*********************ARCHITECTURE led OF jtd IS--纵向路口控制灯为row1和row3;横向路口控制灯为row2和row4constant yellow_time: integer:=2;--路口的黄灯维持秒数constant green_time: integer:=10;--路口的绿灯和红灯维持秒数signal p : integer range 0 to 3;--扫描计数器signal f : integer range 0 to 3;--状态控制寄存器signal clk_500 : std_logic;--扫描时钟signal clk_1h : std_logic;--1s时钟signal r0,y0,g0 : std_logic;--纵向路口控制信号signal r1,y1,g1 : std_logic;--横向路口控制信号BEGINbell<='0';--*************500Hz分频程序********************process(clk)variable cnt1 : integer range 0 to 200;variable cnt2 : integer range 0 to 250;beginif clk'event and clk='1' thenif cnt1=200 thencnt1:=0;if cnt2=250 thencnt2:=0;clk_500<=not clk_500;elsecnt2:=cnt2+1;end if;elsecnt1:=cnt1+1;end if;end if;end process;--***********1Hz分频程序和扫描信号产生******************** process(clk_500)variable cnt1 : integer range 0 to 250;beginif clk_500'event and clk_500='1' thenif(p=3)thenp<=0;elsep<=p+1;end if;if cnt1=250 thencnt1:=0;clk_1h<=not clk_1h;elsecnt1:=cnt1+1;end if;end if;end process;--************交通灯状态控制进程********************* process(rst,clk_1h,clk_500)variable load0,load1 : integer;beginif rst='0' then--复位信号f<=0;load0:=green_time;load1:=green_time;r0<='0';y0<='0';g0<='1';r1<='1';y1<='0';g1<='0';elsif clk_1h'event and clk_1h='1' thencase f iswhen 0=>if load0=0 then --纵向绿灯load0:=yellow_time;f<=1;elseload0:=load0-1;r0<='0';y0<='0';g0<='1';r1<='1';y1<='0';g1<='0';end if;when 1=>if load0=0 then --纵向黄灯load1:=yellow_time;f<=2;elseload0:=load0-1;r0<='0';y0<='1';g0<='0';r1<='1';y1<='0';g1<='0';end if;when 2=>if load1=0 then --横向黄灯load1:=green_time;f<=3;elseload1:=load1-1;r0<='1';y0<='0';g0<='0';r1<='0';y1<='1';g1<='0';end if;when 3=>if load1=0 then --横向绿灯load0:=green_time;f<=0;elseload1:=load1-1;r0<='1';y0<='0';g0<='0';r1<='0';y1<='0';g1<='1';end if;when others=>r0<='1';y0<='0';g0<='0';r1<='1';y1<='0';g1<='0';end case;end if;end process;--*************交通灯扫描进程*************************process(p)begincase p iswhen 0=>row<="1110";r<=r0;y<=y0;g<=g0;when 1=>row<="1101";r<=r1;y<=y1;g<=g1;when 2=>row<="1011";r<=r0;y<=y0;g<=g0;when 3=>row<="0111";r<=r1;y<=y1;g<=g1;end case;end process;end led;。

EPM240_570_T100原理图

EPM240_570_T100原理图

L1
L2 LedR
L3 LedY
L4 LedR
L5 LedY
L6 LedR
L7 LedY
L8 LedR LedY PIN21 LS1
PIN44 K
PIN47
PIN48
PIN49
PIN50
PIN51
PIN52
PIN53
SPEAKER C2 1K 1K 1K 1K 1K 1K 1K 1K U2 C1 104 104 1 3 4 5 11 10 13 8 C1+ C1C2+ C2Vcc GND Vs+ Vs16 15 2 6 14 7 12 9 232_R1 232_R2 PIN17 PIN20 C4 104 C5 104 C3 104 3V3 R5 R6 R7 R8 R9 R10 R11 R12
R71 0R R72 1 R73 1 0R 2 0R 2
C22 10uF 3 2 1
4148
GND
R70 0R
PIN37 PIN90 PIN39 2 2 PIN88
5
29 30 33 34 35 36 37 38 39 40 41 42 43 44 47 48 49 50 51
EPM240T100C5N
PIN73 PIN74 PIN75 PIN76 PIN77 PIN78 PIN81 PIN82
1 2 3 4 5 6 7 8
RS232
红外发射和接收
3V3 R64 560R IrDA_T S8050 Q1 IRDAT1 C21 10uF
3V3 R39 51R
R67 1K
5V 1 RLY1 RELAY-DPST 2 3 4 6 4 2 P2 OUT1 2P_OUT

BJ-EPM实验板介绍

BJ-EPM实验板介绍

BJ-EPM240CPLD开发板介绍BJ-EPM240学习板是特权同学和知名电子技术网站合作推出的一款FPGA/CPLD入门级学习板,该学习板在EDN助学活动期间以低廉的价格提供给所有注册会员,并且赠送免费的PCB板。

学习板以齐全的资料、良好的代码风格博得了广大网友的一致认可,很适合初学者入门学习。

该板子的一切相关问题都可以在EDN网站的CPLD/FPGA助学小组(网址:/1375/)里进行讨论。

该开发板配套北航出版社2010年6月出版的《深入浅出玩转FPGA》进行深入学习,并且特权同学录制了同名的《深入浅出玩转FPGA》视频教程配套。

1.BJ-EPM240学习板功能框图图1和图2是整板系统的功能框图,从图中可以清楚地看到EPM240T100学习板上丰富的外设资源及其位置分布情况。

图1 BJ-EPM学习板顶层资源分布及功能框图图2 BJ-EPM学习板底层资源分布及功能框图2.BJ-EPM240学习板基本配置●主芯片使用的是 Altera公司的MAX II系列EPM240T100C5,该芯片有240个逻辑单元,等效宏单元192个,资源比较丰富,内有8Kbit Flash的存储空间。

●50MHz有源晶振,作为系统主时钟。

●低电平复位按键,使用EPM240的全局复位管脚。

●8色VGA接口1个,让大家掌握电脑显示器的驱动原理。

●RS232串口1个,通过串口调试助手轻松实现UART通信协议。

●PS/2 接口1个,实现键盘解码,配合串口调试助手在PC机上显示键值。

●70ns快速读写的SRAM芯片IS62LV256-70U,具有32KB存储空间,让大家熟悉SRAM的读写操作。

●EEPROM 芯片AT24C02,让大家熟悉使用verilog进行I2C通信。

●4个独立按键,进行verilog脉冲采样和按键消抖控制。

●4个流水灯,配合4位按键进行Johnson计数器实验。

●蜂鸣器,实现简单的分频计数器。

●2位数码管,使用其进行计数实验。

epm240原理图

epm240原理图
1 U1B IO IO IO IO IO IO IO IO IO/GCLK2 IO/GCLK3 IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO 52 53 54 55 56 57 58 61 62 64 66 67 68 69 70 71 72 73 74 75 76 77 78 81 82 83 84 85 86 87 88 89 90 91 92 95 96 97 98 99 100 1 IO 52 IO 53 IO 54 IO 55 IO 56 IO 57 IO 58 IO 61 CLK2 CLK3 IO 66 IO 67 IO 68 IO 69 IO 70 IO 71 IO 72 IO 73 IO 74 IO 75 IO 76 IO 77 IO 78 IO 81 IO 82 IO 83 IO 84 IO 85 IO 86 IO 87 IO 88 IO 89 IO 90 IO 91 IO 92 IO 95 IO 96 IO 97 IO 98 IO 99 IO 100 IO 1
IO 54 IO 55 IO 57 IO 61 IO 67 IO 69 IO 71 IO 73 IO 75
P2 IO 30 1 IO 34 3 IO 36 5 IO 38 7 IO 40 9 IO 42 11 IO 44 13 IO 48 15 IO 50 17 IO 52 19
2 4 6 8 10 12 14 16 18 20
BANK 1
VCC_3.3V U1C TMS TCK TDO TDI 22 24 25 23 TMS TCK TDO TDI R1 R4 R5 R6 TMS 10k TDI 10k TCK 10k TDO 10k

基于CPLD(EPM240)的低成本虚拟数字示波器设计

基于CPLD(EPM240)的低成本虚拟数字示波器设计

摘要低成本虚拟数字示波器设计摘要随着电子技术的发展及人们在这方面学习和实践的深入,设计者在实践中所遇到的问题日趋复杂,以致简单仪器已经无法解决。

示波器无疑是解决这些问题的必备仪器,但高昂的价格却限制了它的普及,特别是它在个人用户如从事电子设计的工程师、学生中的普及。

因此如何设计一款低成本的实用的示波器将是本文要探讨的内容。

本文提出了一套完整的虚拟数字示波器硬件设计方案,并最终完成了低成本虚拟数字示波器的设计,制作出虚拟数字示波器工程样机一台。

本数字示波器的带宽为1MHz,采样速度最高20Msa/s,精度8位,能测量0-20Vpp的信号,档位在上位机软件控制下无接触自动切换。

信号采集及存储电路由MSP430F247、EMP240(CPLD)、TLC5510、IS61LV256等组成,在FIFO 逻辑电路控制下自动完成触发电平捕获、数据高速存储、采样停止等。

在MSP430F247控制下,系统完成协议解析、数据的读取、预处理,并最终将数据发送到上位机显示。

与此同时采样的开始与停止,采样的速率和触发门限等均由主控制器MSP430F247控制。

系统具有三种采样方式,能完成毛刺捕获。

测试证明,本设计能满足一般的测量应用。

T I O NL L E CE C OS U Mi目录第一章概述 (1)1.1 工程样机 (1)7.1 部分通道幅频特性测试 (3)第二章系统总体结构及概述 (7)2.1 结构及概述 (7)第三章信号调理电路方案测试论证与设计 (9)3.1器件测试 (9)3.1.1 运放性能测试 (9)3.1.2 继电器性能测试 (13)3.2 耦合 (14)3.3 放大与衰减 (16)3.4 耦合与增益控制 (18)3.5 电平抬升 (19)第四章数据采集与存储 (23)4.1 高速ADC TLC5510 (23)4.1.1 引脚功能描述 (23)4.1.2 功能说明 (24)4.1.3 内部基准 (25)4.2 EPM240 (26)4.3 SRAM IS61LV256 (28)4.4 数据采集与存储 (29)4.4.1 采样时钟控制 (31)4.4.2 高速FIFO的实现 (33)第五章总控制部分 (37)5.1 主控制器概述 (37)5.2 电压档位控制 (39)5.3 时基档位控制 (39)5.4 触发数据传输控制 (40)5.5 与PC机的通信 (42)第六章系统设计中的EMC (45)6.1 接地 (45)6.2 屏蔽 (47)6.3 小结 (48)参考文献 (49)附录 (51)附录1 NE5532幅频特性测试数据 (51)附录2 部分通道幅频特性测试数据 (52)附录3 整机测试 (55)目录ii附录4 硬件电路图 (57)附录5 Bill Of Material For DSO.PCB (59)S U M E C OL L E CT I O N第一章概述1第一章概述1.1 工程样机虚拟数字存储示波器工程样机,如下图:图1.1,工程样机图1.2,待测工程样机硬件电路测试仪器: RIGOL数字信号源DG1022。

00IC-EPM240原理图讲解

00IC-EPM240原理图讲解

1、供电电路在直流电源回路中,负载的变化会引起电源噪声。

例如在数字电路中,当电路从一个状态转换为另一种状态时,就会在电源线上产生一个很大的尖峰电流,形成瞬变的噪声电压。

配置去耦电容可以抑制因负载变化而产生的噪声,是印制电路板的可靠性设计的一种常规做法.。

一般在电源部分都采用大电容与小电容并联接在电源两端的,这样对高频和低频都有一定抑制作用。

00IC-EPM240开发板既可以使用独立的5V/1A开关电源供电,也可以使用USB线直接供电,并增加电源控制开关,使用方便。

电路部分的1117输出所接的滤波电容不能省略,这样更好的保证电压稳定。

2、复位电路一个芯片,尤其是可编程芯片,通常在上电的瞬间需要一个短暂的时间进行内部参数的初始化,这个时候芯片无法立即进入工作状态。

通常称上电初始化这些工作为复位,完成这个功能的电路称之为复位电路。

00IC-EPM240开发板使用的是低电平复位,即平时复位信号为高电平,RESET按键按下后产生低电平。

3、晶振电路晶振是为电路提供频率基准的元器件,通常分成有源晶振和无源晶振两个大类,无源晶振需要芯片内部有振荡器,并且晶振的信号电压根据起振电路而定,允许不同的电压,但无源晶振通常信号质量和精度较差,需要精确匹配外围电路(电感、电容、电阻等),如需更换晶振时要同时更换外围的电路。

有源晶振不需要芯片的内部振荡器,可以提供高精度的频率基准,信号质量也较无源晶振要好。

00IC-EPM240开发板使用50MHz的有源贴片晶振作为板子工作的时钟输入。

4、8位LED灯电路发光二极管,通常称为LED,可以不夸张的说在几乎任何一个电子设备中都可以看到它的存在。

大家看看自己的电脑,那些电源或硬盘的指示灯就是发光二极管。

我们可以将发光二极管理解成一个微小的电灯泡,但它没有灯丝,仅仅靠半导体里面的电子移动而使它发光。

00IC-EPM240开发板上8位LED灯的正极通过300欧电阻与EPM240芯片的IO相连,负极直接接地,所以如果要LED灯亮,输出IO电平为高即可点亮。

EPM240-CPLD最小系统电路设计

EPM240-CPLD最小系统电路设计

《Altium Designer 》设计报告题目:EPM240_CPLD最小系统电路设计一、设计背景随着科技水平的发展,ARM的应用越来越广泛,人与机器的交流也显得越来越重要,本次课程设计主要是以STM32F103ZET6为主芯片,其他辅助模块有JTAG调试接口,RESET-复位,系统时钟晶振,用户操作按键,LED状态显示,OLED液晶接口,ISP下载串口TTL,NRF2401无线通信接口,通用IO接口,FLASH-存储数据,USB供电-STM32 的USB_SLAVE接口等若干模块和其他辅助芯片为主要器件。

二、模块的设计(1)原理图的绘制1)创建工程在F盘建一个文件夹: 无线遥感电路设计,在其底层建两个子文件夹;选择[文件] [新建] [工程] [PCB工程] ,保存到文件夹中,在此工程下建一个原理图。

如下图2)放置元器件调用软件自带的库,寻找自己所需元器件。

Altium designer(Protel)中常用库Miscellaneous Devices.ddbDallas Microprocessor.ddbIntel Databooks.ddbProtel DOS Schematic Libraries.ddbPCB元件常用库:Advpcb.ddbGeneral IC.ddbMiscellaneous.ddb3)绘制原理图原件在把原理图绘制完之后可查看其网络报表及元件清单(2) PCB的制作1)准备工作:保证原理图无错误,对工程原理图编辑,有错误进行改正可查看其分装管理各元器件分装正确就可生成PCB了;2) 生成PCB选择[文件] [新建] [PCB]命名为工程板,保存在之前建好的工程下面,最后选择[设计] Update PCB Document 工程板PcbDoc,将其导入成功将数据导入,接下来接下来PCB的工程正式开始PCB的排版需要考虑多个因素,原理图的布局,布线,元器件的特性,板子的实用性,排版美观等等都需要我们考虑。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PIR5101ቤተ መጻሕፍቲ ባይዱPIR5201
Header 4
B
IO 2
COR2 R2
COD1 D1
PIR202 PID101 PID102
B
PI 502 PI 501
2 1
PIR201
1K V_3.3
COP1 P1
V_5 2 PIP102 4 PIP104NLIO 49 IO 49 6 PIP106 NLIO 47 IO 47 8 PIP108 NLIO 43 IO 43 10 PIP1010 NLIO 41 IO 41 12 PIP1012 IO 39 14 PIP1014 IO 37 16 PIP1016 IO 35 NLIO 35 18 PIP1018NLIO 33 IO 33 20 PIP1020NLIO 29 IO 29 22 PIP1022NLIO 27 IO 27 24 PIP1024NLIO 21 IO 21 26 PIP1026 NLIO 19 IO 19 28 PIP1028 NLIO 17 IO 17 30 PIP1030 NLIO 15 IO 15 32 PIP1032 NLIO IO 77 34 PIP1034 IO 55 NLIO 36 PIP1036 IO 33 NLIO 38 PIP1038 40 PIP1040 42 PIP1042 44 PIP1044 46 PIP1046 48 PIP1048 50 PIP1050
PIJTAG01 PIJTAG03
PIR5102
2 PIJTAG02 4 PIJTAG04 6 PIJTAG06 8 PIJTAG08 10 PIJTAG010
COY1 Y1
PIY101
PIR5202
COR51 R51 COR52 R52 COR53 R53 COR54 R54
1
EN GND
VCC
PIY104
PIR101 PIR401
10k 10k PIR501 10k PIR601 10k
NLTMS TMS NLTDI TDI NLTCK TCK NLTDO TDO
A
VCC_3.3V VCC_3.3V VCC_3.3V
COJTAG JTAG
TCK 1 TDO 3 TMS PIJTAG05 5 PIJTAG07 7 TDI PIJTAG09 9
Header 25X2 JP21 COJP21 5V_in 2 PIJP2102 3 PIJP2103 1
PIJP2101
2 PIP202NLCLK2 CLK2 4 PIP204 NLIO 51 IO 51 6 PIP206 NLIO 53 IO 53 8 PIP208 NLIO 55 IO 55 10 PIP2010 NLIO 57 IO 57 12 PIP2012 IO 61 NLIO 61 14 PIP2014 IO 67 NLIO 67 16 PIP2016NLIO 69 IO 69 18 PIP2018NLIO 71 IO 71 20 PIP2020NLIO 73 IO 73 22 PIP2022NLIO 75 IO 75 24 PIP2024 NLIO 77 IO 77 26 PIP2026 NLIO 81 IO 81 28 PIP2028 NLIO 83 IO 83 30 PIP2030 NLIO 85 IO 85 32 PIP2032 IO 87 NLIO 87 34 PIP2034 IO 89 NLIO 89 36 PIP2036 IO 91 NLIO 91 38 PIP2038 NLIO 95 IO 95 40 PIP2040NLIO 97 IO 97 42 PIP2042NLIO 99 IO 99 44 PIP2044 NLIO IO 11 46 PIP2046 48 PIP2048 50 PIP2050
PIP101
COP2 P2
PIP201 1 NLCLK3 CLK3 PIP203 3 NLIO 52 IO 52 PIP205 5 NLIO 54 IO 54 PIP207 7 NLIO 56 IO 56 PIP209 9 NLIO 58 IO 58 PIP2011 11 IO 66 PIP2013 NLIO 66 13 IO 68 NLIO 68 PIP2015 15 NLIO 70 IO 70 PIP2017 17 NLIO 72 IO 72 PIP2019 19 NLIO 74 IO 74 PIP2021 21 NLIO 76 IO 76 PIP2023 23 NLIO 78 IO 78 PIP2025 25 NLIO 82 IO 82 PIP2027 27 NLIO 84 IO 84 PIP2029 29 NLIO 86 IO 86 PIP2031 31 IO 88 PIP2033 33 IO 90 PIP2035 35 IO 92 NLIO 92 PIP2037 37 NLIO 96 IO 96 NLIO 98 PIP2039 39 IO 98 NLIO 100 PIP2041 41 IO 100 PIP2043 43 NLIO IO 22 PIP2045 45 PIP2047 47 PIP2049 49
COswitch 5V_in switch
PIswitch03 PIR2202
5v
Du2 CODu2 V_5
PIswitch02 PIDu201 PIDu202
COR22 R22
PIR2201
1k
IN5822 U21 COU21 VCC_3.3V OUT OUT
PIU2102 PIU2104
1 PIP103 3 NLIO 50 IO 50 PIP105 5 NLIO 48 IO 48 PIP107 7 NLIO 44 IO 44 PIP109 9 NLIO 42 IO 42 PIP1011 11 NLIO 40 IO 40 PIP1013 13 IO 38 PIP1015 NLIO 38 15 IO 36 NLIO 36 PIP1017 17 NLIO 34 IO 34 PIP1019 19 NLIO 30 IO 30 PIP1021 21 NLIO 28 IO 28 PIP1023 23 NLIO 26 IO 26 PIP1025 25 NLIO 20 IO 20 PIP1027 27 NLIO 18 IO 18 PIP1029 29 NLIO 16 IO 16 PIP1031 31 NLIO IO 88 PIP1033 33 IO 66 PIP1035 NLIO 35 IO 44 NLIO PIP1037 37 PIP1039 39 PIP1041 41 PIP1043 43 PIP1045 45 PIP1047 47 PIP1049 49
COP5 P5 Header 2
VCC_3.3V V_3.3
PIR3502
rst COrst
PIrst01 PIrst02
EPM240T100C5
EPM240T100C5
PIR3501
COR35 R35 10K NLCLK1 CLK1
C
EPM240T100C5
COPower Power VCC_3.3V 1 2 PIPower01 PIPower02 K A
PIU1052 PIU1053
BANK 2
COU1A U1A
IO IO IO IO IO IO IO IO/GCLK0 IO/GCLK1 IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO/DEV_OE IO/DEV_CLRn IO IO IO IO IO 2 IO 2 COU1D 3 IO 3 VCC_3.3V U1D VCC_3.3V PIU103 4 IO 9 13 PIU104 4 PIU109 VCCIO1 VCCINT PIU1013 5 IO 5 31 63 PIU105 PIU1031 VCCIO1 VCCINT PIU1063 6 IO 45 PIU106 6 PIU1045 VCCIO1 7 IO PIU107 7 8 IO 8 59 PIU108 PIU1059 VCCIO2 12 CLK0 80 PIU1012 PIU1080 VCCIO2 14 CLK1 94 PIU1014 PIU1094 VCCIO2 15 IO 15 PIU1015 16 IO 16 EPM240T100C5 PIU1016 17 IO 17 PIU1017 18 IO 18 PIU1018 19 IO 19 PIU1019 20 IO PIU1020 20 21 IO PIU1021 21 26 IO 26 PIU1026 27 IO 27 PIU1027 28 IO 28 PIU1028 29 IO 29 PIU1029 30 IO 30 PIU1030 33 IO 33 PIU1033 34 IO 34 PIU1034 35 IO 35 PIU1035 36 IO 36 PIU1036 37 IO 37 PIU1037 38 IO 38 PIU1038 39 IO 39 PIU1039 40 IO 40 PIU1040 41 IO 41 PIU1041 42 IO 42 PIU1042 43 IO 43 PIU1043 COU1E 44 IO 44 U1E PIU1044 47 IO 47 10 11 PIU1047 PIU1010 GNDIO GNDINT PIU1011 48 IO 48 32 65 PIU1048 PIU1032 GNDIO GNDINT PIU1065 49 IO 49 46 PIU1049 PIU1046 GNDIO 50 IO 50 60 PIU1050 PIU1060 GNDIO 51 IO 51 79 PIU1051 PIU1079 GNDIO 93 PIU1093 GNDIO
PIU102
VCC_3.3V
BANK 1
COU1C U1C
22 TMS TMS PIU1022 24 TCK TCK PIU1024 25 TDO TDO PIU1025 23 TDI TDI PIU1023 EPM240T100C5
相关文档
最新文档