最近我在S3C4510B的DEMO板上加了一块硬盘,现在已可以成功的进行文件的读写操作,下面我将具体的实现方法描述一下。
这里要注意的是由于是采用直连的方式,而不是利用CPLD进行了时序处理,所有对于片选信号的选用要使用ECS0和ECS1,因为External I/O空间可以进行读写信号与片选信号之间前后沿的调整,而用ROM BANK空间时,读写信号与片选信号的建立和保持时间是固定的。这样会造成读写时序同IDE标准不一致,这也同你的硬盘的传输模式有关系,具体要参考ATA的手册。当然如果用上CPLD的话,就可以对读写或片选信号进行调整,也就没有这个问题了。
另外还要注意CACHE的问题,当使能CACHE时,在一次16bit的读操作中,对于外部ROM空间,在RCS片选信号有效期间,地址会连续变化8次;对于外部IO空间,ECS片选信号会同地址一同变化8次,这是我用逻辑分析仪发现的结果。将CACHE关掉就正常了。
|