ATA Bus Background
MPC5200B Users Guide, Rev. 1
Freescale Semiconductor 11-31

Figure 11-5. Timing Diagram—PIO Read Command (Class 1)

11.7.4.1.2 Class 2—PIO Write
The PIO single sector write command [format, write buffer, write sector(s) ] is as follows:
1. HOST: Write to ATA control /command block registers to setup for data write.
2. HOST: Write to ATA command register to execute write command.
3. HOST: Poll drive to see if it is ready.
4. HOST: Write ATA data register 256 times to get all 512 Bytes into sector buffer.
5. DRIVE: When sector buffer is filled, write sector to physical medium.
6. DRIVE: Interrupt HOST when done.
7. HOST: Read ATA control /command block registers to get status.
8. DRIVE: Clear interrupt after reading status register.
9. Repeat steps 4–8 for multiple sector writes.
The PIO block mode write command (write multiple) is as follows:
1. HOST: Write to ATA control /command block registers to set up for data write.
2. HOST: Write to ATA command register to execute write command.
3. HOST: Poll drive to see if it is ready.
4. HOST: Write ATA data register 256 times to get all sectors into sector buffer.
5. DRIVE: When sector buffer is filled, write sector to physical medium.
6. DRIVE: Interrupt HOST when done.
7. HOST: Read ATA control /command block registers to get status.
8. DRIVE: Clear interrupt after reading status register.
Figure 11-6 shows the PIO Write process.
Host
Drive
DRDY
BSY
DRQ
INTRQ
Set Up
Register
Block
Send
Command
Read
Sector
Read
Status
Read
Sector
Buffer
Read
Sector
Read
Status
Read
Sector
Buffer