CF接口逻辑问题

[复制链接]
 楼主| zylzp 发表于 2009-5-15 16:18 | 显示全部楼层 |阅读模式
<br />最近几天做了个CF卡的接口逻辑。是基于&nbsp;PC&nbsp;Card&nbsp;ATA&nbsp;using&nbsp;Memory&nbsp;Mode&nbsp;。寻址方式使用LBA方式。逻辑设计完成后通过了功能仿真。但是在实际访问CF卡的时候出现以下问题:<br /><br />1、写&nbsp;sector&nbsp;count&nbsp;,sector&nbsp;number,cylinder&nbsp;low&nbsp;,cylinder&nbsp;high,drvie/head,寄存器,写入后并读出,发现sector&nbsp;count&nbsp;不管写任何值,读出均为零,其余的寄存器值正确。但读出状态寄存器未提示错误,并且能返回58H的值。<br />2、如果向sector&nbsp;count写01h,当然sector&nbsp;count是0h&nbsp;,所以一次写256个扇区数据,写完之后,读状态寄存器,无法读到50h,,读回的值全是58h。在尝试写512字节。同样读状态寄存器值也是58h。在尝试大于256或大于512,状态返回依然是58h......<br />3、尝试写入下列数据,sector&nbsp;count&nbsp;=0,&nbsp;sector&nbsp;number&nbsp;=FFH,cylinder&nbsp;low&nbsp;=FFH,cylinder&nbsp;high=1F,drvie/head=e0;当然sector&nbsp;cout&nbsp;返回值是0h。返回状态寄器错误,读错误寄存器,返回10h(是未找到sector&nbsp;id);将上边的cylinder&nbsp;high&nbsp;值改成1eh,得到的结果相同。再将其改成10h,,返回才错误寄存器正确。更多值没有测试(公司机器太破了。QUARTUS&nbsp;编译一次要花5分钟,还是单核2.4G,,521MB内存,⊙﹏⊙b汗)。<br />4、CF卡地址理解,,是理解成&nbsp;&nbsp;sector&nbsp;count*ector&nbsp;number*cylinder&nbsp;low*cylinder&nbsp;high*head=256*256*256*16*512B=136.9GB&nbsp;还是256*256*64*816*512B=34GB?????还是要经过什么特别的转换。<br /><br />开发环境:&nbsp;windows&nbsp;xp&nbsp;sp3<br />开发软件:&nbsp;quartus&nbsp;7.2<br />cf卡:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;transcend&nbsp;1GB<br /><br />周末了。。我晚上还要赶到异地,,累啊。。各位大侠的回复我可能不能及时的看到。。在此请大家原谅。<br /><br />
 楼主| zylzp 发表于 2009-5-18 09:11 | 显示全部楼层

没人过问。。

哎!!!
xhj284880274 发表于 2012-4-26 13:56 | 显示全部楼层
楼主!我现在也遇到这样的情况,希望可以交流!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

32

帖子

0

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