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

[复制链接]
5309|2
 楼主 | 2009-3-30 00:39 | 显示全部楼层 |阅读模式
由于CEPARK网站在修改圈圈提供的原理图是,不小心将IDE硬盘原本连接的P1、P2口移至了P0、P1口,
另外还将P1口与573之间的8条数据线连反,因此在做USB转IDE实验时,需要对程序作响应的修改。
只有新版的PCB(使用贴片的89C52单片机的)才需要作此修改。在EDN购买的学习板使用光盘配套程序即可。


有几个地方要改,首先就是数据口,由原来的P1、P2改成P0、P1。

将原来在IDE.h文件中的

#define IDE_DATA_L P1
#define IDE_DATA_H P2

修改成

#define IDE_DATA_L P0
#define IDE_DATA_H P1



另外,连接到P1口的573的8根数据线全部被接反,所以相应的地址需要修改,

将原来在IDE.c文件中的

#define IDE_BUS_NOT_USE             0x98
#define IDE_ALTERNATE_STATUS        0x8E
#define IDE_DEVICE_CONTROL          0x8E
#define IDE_DRIVER_ADDRESS          0x8F

#define IDE_DATA                    0x90
#define IDE_ERROR_REGISTER          0x91
#define IDE_FEATURES                0x91
#define IDE_SECTOR_COUNT            0x92
#define IDE_SECTOR_NUMBER           0x93
#define IDE_LBA_BITS_0_7            0x93
#define IDE_CYLINDER_LOW            0x94
#define IDE_LBA_BITS_8_15           0x94
#define IDE_CYLINDER_HIGH           0x95
#define IDE_LBA_BITS_16_23          0x95
#define IDE_DRIVE_HEAD              0x96
#define IDE_LBA_BITS_24_27          0x96
#define IDE_STATUS                  0x97
#define IDE_COMMAND                 0x97

#define IDE_RESET                   0x18



修改成



#define IDE_BUS_NOT_USE             0x19
#define IDE_ALTERNATE_STATUS        0x71
#define IDE_DEVICE_CONTROL          0x71
#define IDE_DRIVER_ADDRESS          0xF1

#define IDE_DATA                    0x09
#define IDE_ERROR_REGISTER          0x89
#define IDE_FEATURES                0x89
#define IDE_SECTOR_COUNT            0x49
#define IDE_SECTOR_NUMBER           0xC9
#define IDE_LBA_BITS_0_7            0xC9
#define IDE_CYLINDER_LOW            0x29
#define IDE_LBA_BITS_8_15           0x29
#define IDE_CYLINDER_HIGH           0xA9
#define IDE_LBA_BITS_16_23          0xA9
#define IDE_DRIVE_HEAD              0x69
#define IDE_LBA_BITS_24_27          0x69
#define IDE_STATUS                  0xE9
#define IDE_COMMAND                 0xE9

#define IDE_RESET                   0x18




上述修改仅针对于CEPAR的板子(书中赠送的PCB也是)。EDN的板子不用修改,直接使用光盘中的程序。



附件是修改好的IDE.h文件,通过选择宏定义

#define EDN_BOARD
#define CEPARK_BOARD

来决定使用EDN还是CEPARK的板子。另外压缩包中还有已经编译好的适合CEPARK板子的HEX文件,可以直接下载使用。

http://bbs.21ic.com/upfiles/img/20093/200933003637671.rar
 楼主 | 2009-3-30 00:52 | 显示全部楼层

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

如果你硬盘比较大的话,需要等比较长一段时间,才能将硬盘里面的FAT表等内容读完。读数据时,IDE硬盘灯会闪烁。

使用特权

评论回复
| 2011-7-26 14:20 | 显示全部楼层
好 买个320G硬盘咱也试试:D

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

关闭

热门推荐上一条 /2 下一条

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