有时候我必须选择一个人过冬 习惯在冰天雪地里追梦
DIY一个小型计算机系统(6)
上一篇 /
下一篇 2007-10-07 22:25:05
/ 个人分类:工作备忘
最近进展:
1、音频部分准备了两套方案,电路板上预留了元件空位和布线,但也预留了一个9针的模块插座,可以把icdev网站出售的现成VS1003模块直接插上去用(已经从淘宝上买了该模块,100元),不使用该模块的话,就只能自己买齐各种小元件焊接到电路板上了(VS1003也买了一片,25元),打算先把模块插上去用着,调试好程序再自己买来元件焊。
2、由于IO口不够用,兼考虑到MP3解码时需要RAM做缓冲,总线上的数据会很拥挤,因此调整了MCU核心部分电路,包括使用两片74HC245三态总线缓冲器代替74HC125做隔离,使用74HC245的好处是让MCU在不访问RAM时,可以有8个IO口用来访问其他外设。现在的资源大致分配如下:
MCU1、MCU2通过P2口做总线共享32KB SRAM、小液晶屏,同一时刻只能有一个MCU访问SRAM或液晶屏中的一个,通过查询ENABLE脚来避免总线数据冲突。
MCU1通过SPI口访问VS1003芯片进行MP3解码播放音频,当VS1003内部的播放缓冲区可以进行缓冲时,VS1003通过DREQ(Data request)脚向MCU1产生中断,请求MCU1把MP3数据流不断通过SPI口发送给VS1003。MCU1还负责把要显示的数据通过总线写入液晶屏显示。
MCU2的外设比较多,它负责接受PS/2键盘发过来的数据并处理,通过SPI口控制CH374芯片对USB设备进行访问,通过SPI口读写MMC卡,还有访问RTC芯片获得当前的系统时间和芯片温度等。为了大量减轻MCU2的负载,改善响应,除MMC卡读写无法使用中断外,其他外设都使用中断方式进行控制。PS/2键盘通过PS2_INT脚接到MCU2,当键盘有键按下或松开时,键盘会向MCU2发送处理请求中断,MCU2响应并进行键码读取处理。CH374芯片在读写USB外设时,当缓冲区数据减少,可以进行数据缓冲时,同样通过USBINT脚向MCU2进行数据请求中断。RTC芯片也通过RTCINT脚接到MCU2的T0输入,每一分钟产生一次处理中断,把当前的系统时间和温度发送给MCU2,再由MCU2把时间和温度通过总线写入液晶屏显示。SPI总线上有两个设备,一个是CH374,一个是MMC卡,通过USB_EN、MMC_EN两个IO口来选择要访问的是哪一个。

3、给各个外设都加上状态指示灯,当指示灯亮起时表示相应的设备正在被访问,指示灯闪烁的频率跟访问频率有关,调试时能方便点。
4、给RTC芯片加上锂电池供电座,装上2032纽扣型锂电池(就是电脑主板上的那种电池),即使总电源断电,RTC芯片也在准确计时,这样设置好的年/月/日还有当前时刻这些时间在断电后都不会丢失。另外,RTC芯片内置了200多个字节的SRAM,可以像电脑一样把一些设置参数保存在这里,通过锂电池的供电,即使掉电也不会丢失。
5、所有的元件封装都已经画好,最难画的是耳塞插座和MMC卡插座,因为买来时没有厂家datasheet,只能靠自己用游标卡尺逐个尺寸量出来再画。
6、原设计里是用STC的快速型62256,能支持3.3V到5V电压,没想到STC跟我说由于销量不好,已经停产了。于是去广州新赛格找兼容芯片,卖62256兼容芯片的很多,可一问到是否支持低电压3.3V,就没人敢肯定了,一些小档口的小姑娘甚至还反问:3.3V的?不是所有的芯片都用5V电压吗……#%$^&!问了好久,有一家拍胸口说他的货支持,还把样片拿出来给我看,是HY(现代)的76C256,看他说得那么肯定,就买下了,好贵,要15元。回来后上www.alldatasheet.com一查,是超超省电版,但不是低电压版-_-,76V256才是3.3V电压的。在新赛格问遍,都没有76V256,只好找个时间去惠福东路再找找。
7、还打算加入DS3222,支持双串口输出;加入锂电池,加入DC-DC升压电路,MAXIM的电池管理芯片,让电路板支持锂电池供电运作,并在液晶屏上显示电池电量还有充电状态等,后来想想还是暂不加这部分电路了,还是逐步逐步来,先把当前的功能实现好再考虑那些。
推测现在的硬件在播放U盘或者MMC卡上的MP3时,由于频繁使用SRAM做缓冲,总线会非常繁忙,甚至可能是瓶颈。现在的设计里用的是22M的晶振,如果总线速度不够,只好考虑把22M晶振换成33M的晶振,把频率提高,总线的数据吞吐率也会提高。手头上的两个MCU支持最高35Mhz的晶振。
今天已经开始PCB布板了,大致的元件摆放布局已经弄好,芯片的datasheet里对布线布局有要求的(VS1003音频解码部分由于有数字电路和模拟电路,对布线有严格要求,布得不好的话,播放有噪音;CH374芯片也对布线有要求,否则会影响USB外设的访问速度,甚至可能无法访问),就严格按照要求来布,没有具体要求的,就按自己的EMC经验来布,工作量非常大,但难度不大,只要我花上点时间,布出一块漂亮的PCB完全没问题。

导入论坛
引用链接
收藏
分享给好友
管理
举报
TAG: