这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 51-shiyongzhu 进程贴 ************** USB

共16条 1/2 1 2 跳转至

51-shiyongzhu 进程贴 ************** USB 转PS2 鼠标数据读取 ***************

助工
2013-06-14 01:16:49     打赏



关键词: USB    

助工
2013-06-16 01:24:54     打赏
2楼

进程1  PCB板、配套元器件以及USB Blaster下载器

端午节后第一天上班,就收到快递大哥的让我取快递的电话,和预期一样顺利的拿到了期待已久由EEPW发放的CPLD DIY套件以及USB Blaster下载器,下面展示下收到的东东:

 

                                                            包裹外形图,从济南发过来的。

 

                                                 打开包裹货还是挺多的

 

                   套件一览图,稍有遗憾的是CPLD有几个引脚被挤变形了,焊接时需要把它们掰正

        CPLD DIY所需套件已经完备,下面即将展开PCB板的焊接工作,这部分工作将在后面陆续更新,敬请期待!!

 


助工
2013-06-16 07:54:31     打赏
3楼

进程2   PCB板焊接

 拿到开发板后,本人马上展开了焊接工作,通过星期五和星期六的焊接,本人完成了PCB的焊接工作。由于本人焊接水平的有限,加上CPLD的引脚有变形,特地找到单位负责电装的美女帮我焊接CPLD,在此对美女电装工表示感谢。下面的图1和图2分别是电装好的电路板的正面和反面。本人焊接的电阻电容引脚略显粗糙,焊接是水平有待提高,呵呵。

 

 图1

 

图2

在焊接过程中,尤其需要注意发光二极管、电解电容和肖特基二极管的方向,发光二极管有颜色的那一端为负极,注意是在俯视的情况下;电解电容有竖线的一端为正极,在电路板上为小端的那一边;肖特基二极管竖线的一端为阳极,另一端为阴极,但是焊接在电路板上需要反过来焊接,因为肖特基二极管是用来钳制电压的,本人在焊接时就犯过这个错误,通电的时候,电源附近巨烫,辛亏没有烧坏板纸,希望大家可以注意下啊。下面是上电后的电路板状态,基本上正常。

 

图3

 


助工
2013-06-16 22:31:02     打赏
4楼

 进程3  CPLD引脚分配以及quartus II 7.2环境配置

 为了能够将已经写好的硬件描述语言程序下载到CPLD中,我们需要结合硬件对CPLD的引脚进行分配,同时开发软件Quartus还需要识别下载所使用的USB Blaster,因此需要配置Quartus


 1、CPLD的引脚分配

Quartus软件中引脚分配有很多种方法,可以通过导入外部文件进行分配,也可以通过逐个逐个引脚进行分配。

最简单的方法是直接在Assignments下的PinsPin Planner下进行引脚分配,在这种分配方式下,根据port中的端口逐个逐个进行分配,端口多时这种方法比较费时。

 

比较好的方法是从外部导入引脚分配关系,这种引脚分配方式有两种实现方法,一种是Assignments下的Import Assignments,另一种方法是tools下的tcl scripts。如何采用这种方式进行引脚分配,大家可以参考下这个博客:http://blog.sina.com.cn/s/blog_3f8b06cc0101631m.html,在此不再详述。 

 

2、Quartus II 7.2环境配置

第一次连接USB Blaster时,需要安装USB Blaster驱动程序 ,关于如何安装该驱动程序,可以参考下1202241990所写的安装下载线的驱动的过程

http://forum.eepw.com.cn/thread/232622/1安装好下载线驱动后,在Quartus软件中点击Programmer,即可进入下载界面。

 

在下载界面中,可以看到已经识别到了USB-Blaster,如果没有识别到需要通过Hardware Setup进行选择,点击Start即可以下载程序了。

 

 

  附录: 引脚分配文件EPM240.rar


助工
2013-06-21 00:00:57     打赏
5楼

进程4    LED点灯

led点灯程序比较简单,在此就不累述了,直接上代码。

1_Led_2.rar  


助工
2013-06-21 00:01:42     打赏
6楼

进程5    按键控制

CPLD按键虽说比较简单但是设计时,还是很有讲究的,既要考虑去除按键抖动影响,又要考虑按键是否能够得到的及时的响应,不会一次按键得到两次响应,或者按键需要按很久才能得到响应,在此本人参考了特权同学所著的《****玩转FPGA》一书中CPLD检测按键的设计思想,实现了CPLD对按键的响应功能下面附上本人的代码。

2_Button_2.rar


助工
2013-06-21 00:03:11     打赏
7楼
 进程6  LED数码管显示

已经多日没有更新进程贴了,看到其他的网友进程神速,今天赶紧更新下。这个贴主要来探讨下LED数码管的显示问题。LED数码管8个发光二极管(以下简称字段)构成,通过不同的组合可用来显示数字09,字符AFHLPRUY等符号及小数点“.” 数码管又分为共阴极和共阳极两种类型。

数码管工作原理

共阳极数码管中8个发光二极管的阳极(二极管正端)连接一起,即为共阳极接法,简称共阳数码管。通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输入端为低电平时,该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。

       共阴极数码管中8个发光二极管的阴极(二极管负端)连接在一起,即为共阴极接法,简称共阴数码管。通常,共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为高电平时,该端所连接的字符导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。同样,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。

LED共阳极段码表【0-F

              0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,       [0-7]

              0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e      [8-F]

LED共阴极段码表【0-F

             0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07          [0-7]

             0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x           [8-F]

为了满足某些特殊用户需要有时也会用到以下特别字符的段码表

LED共阳极段码表【HLPRUY-.熄灭】

DB      89H,0C7H,8CH,0CEH,0C1H,91H,0BFH,7FH,0FFH      [ HLPRUY-.熄灭 ]

LED共阴极段码表【HLPRUY-.熄灭】

DB          76H,38H,73H,31H,3EH,6EH,40H,80H,00H                [ HLPRUY-.熄灭 ]

其中 [ HLPRUY-,熄灭 ],这些特殊字符中有些看起来不是很形象,但有时不可避免的会用到

传一张最后的效果图

 LED数码管资料.rar


助工
2013-06-22 21:17:28     打赏
8楼
美女电装工害羞啊,哈哈

助工
2013-06-24 00:51:28     打赏
9楼

进程7  蜂鸣器实现演奏《光阴的故事》(自创哦)

乐曲演奏的两个基本参数是每个音符的频率值(音调)及其持续的时间(音长)。因此只要控制输出到扬声器的激励信号的频率和持续时间,就可以发出连续的音乐声。音调的控制频率的高低决定音调的高低。简谱中从低音1到高音1 的每个音名对应的频率如下表所示。

为了减小输出的偶次谐波分量,输出到扬声器的波形应为对称方波,因此在扬声器前要加一个二分频。表中给出了各音阶频率时计数器不同的预置数。采用加载预置数实现分频的方法比采用反馈复零法节约资源,实现起来也容易些。对于乐曲中的休止符,只要令分频系数设为0,即初始值为2e14-1=16383即可,此时扬声器将不会发出声。音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定。 本例演奏的是最近正火着的《中国合伙人》的主题曲即罗大佑的《光阴的故事》片段,最短的音符为16分音符,经过不同16分音符的时间长度的比较,选择0.25s时长的16音符比较好。

考虑到如果基频过低,则由于分频比太小,造成四舍五入后误差较大;如果基频过高,虽然误差减小了,但是分频数变大。综合以上两个因素,选择5MHz作为基频。由于实验板上没有5MHz的时钟频率,所以必须先分频。 本实验要演奏的《光阴的故事》,各音阶频率及分频比见下表。

该演奏程序详见附件。附件中还带有笔者参考的一篇《ep2c35实验板蜂鸣器实验》文章、《怎样识谱》文章以及其他相关资料,供大家参考。

蜂鸣器相关资料.rar

 


 

 


助工
2013-06-30 19:48:06     打赏
10楼
 进程串口收发功能的实现

串口是使用最为频繁的通讯接口,其根据电平的不同又可以分为RS232RS422RS485等等。利用CPLD实现串口功能很实用。串口根据收发数据的不同速率可以12002400480096001440019200等等,本次串口功能的实现,我选择了9600bps,其每发送的一位的所占用的时间为0.104166ms,对应50Hz大约需要5208个时钟周期,但是为了实现接受时,能够将读取数据的时刻对应于某一接受位的中间时刻,我们通常需要5208时钟周期的一半、四分之一或者是十六分之一,也即是将每位细分成两位、四位或者十六位。这里我们选择细分成四份,从而我们需要的时钟周期为5208/4=1302,更具体的实现过程推荐大家看侯伯亨所著的《VHDL硬件描述语言与数字逻辑电路设计》一书287SCI串行接口芯片设计实例。

本人做了两个串口程序一个是定时发送一个字节,一个是采用fifo发送多个字节,两个例子都有接收数据功能,通过上位机发送字节,可以点亮相应的led灯。

 下面给大家参考下我的代码,请大家批评指正。

SCI.rar


共16条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]