这个板子调了几天,还算顺利。为了调试方便,我在fpga内部综合了一个8051,将各个外设接到了8051的P口上调试,这样进度会快些。(主要是microblaze使用还不熟练)
1、最先调试的是8个led灯,很顺利,没遇到问题。
2、串口调试遇到点问题,主要是一开始把串口线管脚定义整错了(拿了旧的原理图)。发现只能接收,不能发送。后来找到问题后,就好了。
3、数码管的调试也费了一番周折。设计使用的是共阴极数码管,结果一开始焊的是共阳极的(我认为是共阴极的),调了半天。后来重新买了共阴极数码管,焊上就通了。当然,拆数码管还是比较痛苦,搞了好一会。
4、LCD调试。LCD使用的是128×160的TFT彩色屏,背光是4个LED串联,所以只好使用了PT1301升压电路,将5V升到6.5V使用。LCD调试也不太顺利,主要是一开始没有将双向口放在top层,不过也算记住了。inout 的使用一定要放在top层。
5、蜂鸣器调试比较简单,随便输出几个频率,就能发出不同的声音。
6、按键和拨码开关调试很简单。拨码开关被我用于数码管显示内容的选择。可以选择显示开机次数、时钟、温度。
7、时钟芯片DS1302。基本没遇到问题,因为以前使用过,直接拿了以前的代码就调通了,上面图片中就是显示了当前的时间9:25。不过时钟芯片设计上有点问题,CLK脚接到了FPGA 的input only脚了,所以我在主板上将它接到I2c ROM的SCL上,和I2c ROM共用时钟线。
8、I2c ROM--AT24C02。调试遇到点小问题,主要是设计是将A0接到了高,结果我一直以为是A0 A1 A2都是低,所以slave address搞错了,后来查看原理图发现后,就马上调通了。这个暂时做了个简单功能,将开机次数存在ROM里,每次开机就会读取出来显示,然后再加1后存回去。这样开机多少次就一目了然。
9、温度传感器DS18B20--这个调试遇到些问题,第一,同样不小心将管脚定义在input only脚上,后来就将USB1.1 DP脚和它焊一起。因为USB1.1本身就没法使用,因为那个USB座因为位置关系,焊不上去。所以这个版本就取消这个功能。不过这个功能一般也很少用,最多验证一下usb1.1 core。所以问题不大。
另外,这个温度传感器虽然是数字式,但是只有一线,所以也比较麻烦。目前还在调试中。
还未调试的功能有: 红外接收管、SD卡、PS/2键盘接口。估计在有个几天时间就够了,不过平时没啥时间调,主要还得双休日,所以进度有点慢。
上图是主板背面图,背面主要有串口芯片max3232、时钟芯片DS1302、I2c ROM芯片AT24C02、SD卡座、已经预留电源芯片LM1117-3.3
用户1651241 2009-11-8 00:51