光看ata协议只能读出idenfity,扇区读写还不会。谁给点资料啊。
回复(12) 2003-10-20 11:13 来自版块 - USB驱动开发
表情
clementzhao瞧,咱们都会错意了。我还以为你的IC的IO排列是P0--PXX,你说的是用IO口读写啊,当然可以拉,我打算最后不行才走这一步。现在我的方案是使用“总线”,指IC真正地址数据线,只有8位。这样做我可以随意扩展外围设备,而且速度比IO快很多(有DMA)。所以我才一直考虑8转16。(2003-11-08 08:55)
resouP0的0-7 跟P2的0-7 组成16位数据总线,P1的0-4 为地址总线,P1的56分别为RW控制线 读取控制寄存器只需要用到P0 P1,读数据寄存器要同时用到P0 P2 P1 P0 P2仍然可以用做外部存储器接口 读取硬盘跟读ROM/RAM使用不同的指令即可。(2003-11-07 23:39)
resou51的IO是8位的哦,P0 P2就是16位了(2003-11-07 23:33)
clementzhao用P0 P2做为数据总线??硬盘是D0-D15哦,你2根线怎么够? 我是使用D0-D7数据线,A0-A2地址线。(2003-11-07 08:51)
resou不知道你是用什么mcu的,我是用51的,用P0 P2做为数据总线,P1做为控制总线,就不存在16位到8位的转换啊,而且还不影响P0 P2的其它用途 说说你的做法吧(2003-11-06 21:51)
clementzhao读写硬盘的数据总线,对数据寄存器的访问是16位的,对其它寄存器的访问是8位的。 [编辑 - 11/5/03 by resou] 我的意思是用8位总线访问数据寄存器+其它寄存器。现在问题解决了一部分(原先的硬盘是坏的!),也可以用8位总线读取任何数据,问题在于硬盘一定...(2003-11-06 09:31)
resouread sector后设备请求主机进行数据交换,主机可以直接以16位方式连续读256次data寄存器既可得到sector的数据,多扇区读就256乘以扇区数。LBA方式时首扇区地址是0扇(2003-11-06 00:38)
resou读写硬盘的数据总线,对数据寄存器的访问是16位的,对其它寄存器的访问是8位的。 [编辑 - 11/5/03 by resou](2003-11-05 21:20)
clementzhao协议太长,看晕了。问个问题,如果硬盘要用8位总线,是不是一定要有CFA特性?如果不是该怎么设?PIO模式read sectors后read buffer是不是一定要靠INT读?还有LBA命令怎么写,我按照协议写但是老是得到地址错误报告!(2003-10-22 09:21)
resou协议写的很清楚哦(2003-10-21 19:03)

返回顶部