[圈圈教你玩USB] 关于CEPARK USB学习板IDE硬盘接口的问题

[复制链接]
26897|2
 楼主| computer00 发表于 2009-3-30 00:39 | 显示全部楼层 |阅读模式
由于CEPARK网站在修改圈圈提供的原理图是,不小心将IDE硬盘原本连接的P1、P2口移至了P0、P1口,<br />另外还将P1口与573之间的8条数据线连反,因此在做USB转IDE实验时,需要对程序作响应的修改。<br /><font color=#FF0000>只有新版的PCB(使用贴片的89C52单片机的)才需要作此修改。在EDN购买的学习板使用光盘配套程序即可。</font><br /><br /><br />有几个地方要改,首先就是数据口,由原来的P1、P2改成P0、P1。<br /><br />将原来在IDE.h文件中的<br /><br />#define&nbsp;IDE_DATA_L&nbsp;P1<br />#define&nbsp;IDE_DATA_H&nbsp;P2<br /><br />修改成<br /><br />#define&nbsp;IDE_DATA_L&nbsp;P0<br />#define&nbsp;IDE_DATA_H&nbsp;P1<br /><br /><br /><br />另外,连接到P1口的573的8根数据线全部被接反,所以相应的地址需要修改,<br /><br />将原来在IDE.c文件中的<br /><br />#define&nbsp;IDE_BUS_NOT_USE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x98<br />#define&nbsp;IDE_ALTERNATE_STATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x8E<br />#define&nbsp;IDE_DEVICE_CONTROL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x8E<br />#define&nbsp;IDE_DRIVER_ADDRESS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x8F<br /><br />#define&nbsp;IDE_DATA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x90<br />#define&nbsp;IDE_ERROR_REGISTER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x91<br />#define&nbsp;IDE_FEATURES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x91<br />#define&nbsp;IDE_SECTOR_COUNT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x92<br />#define&nbsp;IDE_SECTOR_NUMBER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x93<br />#define&nbsp;IDE_LBA_BITS_0_7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x93<br />#define&nbsp;IDE_CYLINDER_LOW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x94<br />#define&nbsp;IDE_LBA_BITS_8_15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x94<br />#define&nbsp;IDE_CYLINDER_HIGH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x95<br />#define&nbsp;IDE_LBA_BITS_16_23&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x95<br />#define&nbsp;IDE_DRIVE_HEAD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x96<br />#define&nbsp;IDE_LBA_BITS_24_27&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x96<br />#define&nbsp;IDE_STATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x97<br />#define&nbsp;IDE_COMMAND&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x97<br /><br />#define&nbsp;IDE_RESET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x18<br /><br /><br /><br />修改成<br /><br /><br /><br />#define&nbsp;IDE_BUS_NOT_USE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x19<br />#define&nbsp;IDE_ALTERNATE_STATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x71<br />#define&nbsp;IDE_DEVICE_CONTROL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x71<br />#define&nbsp;IDE_DRIVER_ADDRESS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0xF1<br /><br />#define&nbsp;IDE_DATA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x09<br />#define&nbsp;IDE_ERROR_REGISTER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x89<br />#define&nbsp;IDE_FEATURES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x89<br />#define&nbsp;IDE_SECTOR_COUNT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x49<br />#define&nbsp;IDE_SECTOR_NUMBER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0xC9<br />#define&nbsp;IDE_LBA_BITS_0_7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0xC9<br />#define&nbsp;IDE_CYLINDER_LOW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x29<br />#define&nbsp;IDE_LBA_BITS_8_15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x29<br />#define&nbsp;IDE_CYLINDER_HIGH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0xA9<br />#define&nbsp;IDE_LBA_BITS_16_23&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0xA9<br />#define&nbsp;IDE_DRIVE_HEAD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x69<br />#define&nbsp;IDE_LBA_BITS_24_27&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x69<br />#define&nbsp;IDE_STATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0xE9<br />#define&nbsp;IDE_COMMAND&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0xE9<br /><br />#define&nbsp;IDE_RESET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x18<br /><br /><br /><br /><br />上述修改仅针对于CEPAR的板子(书中赠送的PCB也是)。EDN的板子不用修改,直接使用光盘中的程序。<br /><br /><br /><br />附件是修改好的IDE.h文件,通过选择宏定义<br /><br />#define&nbsp;EDN_BOARD<br />#define&nbsp;CEPARK_BOARD<br /><br />来决定使用EDN还是CEPARK的板子。另外压缩包中还有已经编译好的适合CEPARK板子的HEX文件,可以直接下载使用。<br /><br /><a href="https://bbs.21ic.com/upfiles/img/20093/200933003637671.rar" target=_blank>https://bbs.21ic.com/upfiles/img/20093/200933003637671.rar</a>
 楼主| computer00 发表于 2009-3-30 00:52 | 显示全部楼层

另外,注意这个程序运行速度比较慢,

如果你硬盘比较大的话,需要等比较长一段时间,才能将硬盘里面的FAT表等内容读完。读数据时,IDE硬盘灯会闪烁。
lixupengarm 发表于 2011-7-26 14:20 | 显示全部楼层
好 买个320G硬盘咱也试试:D
您需要登录后才可以回帖 登录 | 注册

本版积分规则

247

主题

14716

帖子

213

粉丝
快速回复 在线客服 返回列表 返回顶部