[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[oc] Re: ATA Core Timing Parameters




Hi Bryan,

The documentation is not finished yet, as you might have noticed already. 
If you are talking about the parameters only (not the register settings) 
then don't bother. They are not that important, at least as long as your 
main clock frequency is below 100MHz. Just maintain the default values.

If you really want to modify them, or want to know how to calculate them 
then this is how to.
The values entered for the timing parameters are the PIO-mode 0 and 
DMA-mode 0 settings respectively for/at your main-clock frequency. See 
chapter 4 "Operation" at page 17 and appendix A "ATA Timings" at page 23 
for more information about the timing settings. The TWIDTH parameter is the 
number of bits required to hold the largest time parameter, with a maximum 
of 8 bits. For the default parameters this is T2 (== 28). This is also the 
largest number required by the ATA system, because it is the largest number 
for the slowest supported mode. (ok not entirely true because PIO-mode 0 is 
obsolete, but you get the point). The amount of bits required to hold 
number 28 is 5 (2^5 = 32). Thus TWIDTH could be set to 5, reducing the 
amount of logic needed to implement the core. If you want to play around 
with it. Keep in mind that the registers remain the same. Except for the 
fact that the MSBs of the timing settings (not the registers) are not valid 
anymore.

Hope this helps.

Richard

>Hi Richard:
>
>I'm working on implementing the OCIDEC3 core and had some questions
>pertaining to the TWIDTH, T1, T2, T4, Teoc timing parameters.  The
>documentation was a little confusing about how to determine these
>parameters.  I'm initially working on doing PIO transfers running with a
>48MHz clock input.  Could you please step me through the calculations with
>this clock rate to determine the appropriate TWIDTH, T1, T2, T4, Teoc for
>PIO_mode0?  How do these numbers change for the other PIO modes?  In the
>future I will probably be implementing DMA as well, and will need a better
>understanding of the Td, Tm, and Teoc parameters for that as well.
>
>Thanks for the help.

--
To unsubscribe from cores mailing list please visit http://www.opencores.org/mailinglists.shtml