打印
[STM32]

振南的硬盘读写模块模式2中82C55芯片的一些问题及解决方案

[复制链接]
1125|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
znmcu|  楼主 | 2015-12-1 22:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
QQ群 嵌入式存储技术交流 与 文件系统技术 198521880
----------------------------------
振南的硬盘读写模块 模式28255扩展IO方式)中
关于82C55芯片的一些问题以及解决方案
振南在研发IDE硬盘读写模块模式2的过程中,发现了一些比较奇怪的问题。模式2通过8255芯片扩展出24IO,分别是PAPBPC,它们与IDE接口相连,间接地完成硬盘的读写。
模式2中的核心器件就是82C55,单片机与它接口需要13IO8位数据,5位控制信号),由它扩展出24IO。所以,这8位数据就是最大的瓶颈。振南使用这种方式,主要目的是为了减少对单片机的IO资源的占用(全IO方式,即模式1,一共需要占用单片机20多个IO)。
82C55的性能主要体现在1、接口时序速率 2、扩展IO的驱动能力 3、抗干扰和抗冲击能力
一方面,82C55芯片采用标准的并行总线接口,可以将它挂接在单片机的外部总线上,也可以使用IO方式来模拟总线时序。82C55的接口所能承受的数据读写速率,限制了其IO操作的速率。如果82C55本身接口比较慢,那么就算单片机再快也没用。过快的时序,将使用82C55输入或输出数据出错,甚至根本没有反应。
我一开始使用的芯片是OKI公司出的,它的接口速率参数如下:
从上图中可知,
向82C55写入一个字节所需要的最短时间tAW+tWW+tWA=0+150ns+20ns=170ns
读取一个字节所需要的最短时间 tAR+tRR+tRA=20ns+100ns+0ns=120ns
另外,每次读写操作之间的最小间隔时间为200nstRV)。所以,OKI公司生产的82C55M82C55A-2)写数据的最大速率为1000/(170+200)2.7MBps,读数据的最大速率为1000/(120+200)3MBps
后来我又测试了其它两家公司生产的82C55芯片,分别是NECD82C55AC-2)与TOSHIBATMP82C55AP-2)。
它们的接口参数如下:
NEC公司生产的D82C55-2
写入一个字节的最短时间为 tAW+tWW+tWA=0+200ns+20ns=220ns
读取一个字节所需要的最短时间 tAR+tRR+tRA=0ns+200ns+0ns=200ns
每次读写操作之间的最小间隔时间为200nstRV)。另外,后缀-2-5的两种芯片在读写速率上相差较大,-5要慢得多,这个细节振南一开始吃了亏,我起初买的是OKI-5的芯片,后来我发现读写硬盘的速率总是上不来,时序太快了,82C55就不响应了。
所以,NEC公司生产的82C55D82C55A-2)写数据的最大速率为1000/(200+200)=2.5MBps,读数据的最大速率为1000/(200+200)=2.5MBps
TOSHIBA公司生产的TMP82C55AP-2
写入一个字节的最短时间为 tAW+tWW+tWA=0+120ns+0ns=120ns
读取一个字节所需要的最短时间 tAR+tRR+tRA=0ns+160ns+0ns=160ns
每次读写操作之间的最小间隔时间为200nstRV)。
所以,TOSHIBA公司生产的82C55TMP82C55AP-2)写数据的最大速率为1000/(120+200)3MBps,读数据的最大速率为1000/(160+200)2.7MBps
比较之下,OKITOSHIBA82C55芯片速率是比较快的,NEC的芯片最慢。而且仔细研究一下,这三个厂家生产的82C55芯片,在时序上有细微的差别。tAWtARWRRD选通(即下降沿)之前片选与地址(CSA1A0)的保持时间,tWAtRAWRRD关闭(即上升沿)之后CSA1A0需要保持的时间,它们在不同芯片上的最小值是不同的,有的是0ns,有的是20ns。如果总线时序上没有考虑这个细节,则可能导致82C55没有响应。其实,我发现TOSHIBA生产的TMP82C55AP-2tAW tWAtAR tRA最小值都为0,所以我说它的时序是最“干脆”的,不像其它芯片那样拖沓。实际测试,也确实是TOSHIBA的芯片最容易驱动,很多延时都可以直接拿掉。唯一要注意的就是RDWR确实要给出足够的时间。
另一方面,是82C55芯片的IO驱动能力。
OKI
NEC
TOSHIBA
上图中,DB8255与单片机之间的数据端口的输出与输入电流,PER是扩展IO输出与输入的电流(所谓的拉电流与灌电流)。
可以看到,OKI的芯片IO电流输出与输入较大(mA级),说明它的驱动能力较强。NECTOSHIBA的电流均为uA级,驱动能力较差。
我要说的还不是这个,如果82C55芯片是全新原装的话,IO的驱动能力以及接口速率其实不是问题。问题在于市场上很多82C55芯片都是旧件拆机件,翻新的,这使得其芯片性能有所折扣,甚至损坏。我购买了三个牌子的82C55芯片,进行了测试。
同一牌子的芯片,全新与翻新在接口速率与驱动能力上略有差别。这种差别,有时是不可预见的。这会导致,同一个驱动程序,对于有的82C55芯片OK,但是有的则会出问题。翻新芯片推动了原装全新芯片的一致性和保证特有的性能指标。
最终我选用了OKI公司的M82C55A-2,但是这也付出了很大的代价(每片价格高达20元,原因就是此芯片已停产,现市面上9成以上都是翻新的芯片)。我不能去用翻新的旧芯片,这对硬盘读写模块的批量化生产非常不利,这也是对模块使用者的不负责任。
有人问为什么不用TOSHIBA的芯片,上面不是说它时序上更容易吗?原因就是此芯片比较稀缺,导致价格不能接受,高达35块钱一片。

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:振南的znFAT -- 单片机上上的FAT32文件系统 www.znmcu.cn

4474

主题

5195

帖子

33

粉丝