Busy /Ack Time
State | Action | bat | baT | bAt | bAT | Bat | BaT | BAt | BAT | |
1 | Get next byte of data T=0.5us Release /Strobe, Assert Data |
1 | 5 | 1a | 2b | 1 | 6 | 4 | ||
2 | T=0.5us, Assert /Strobe, Assert Data | 2 | 1 | 2c | 6 | 5 | 3d | 3 | ||
3 | T=0.5us, Release /Strobe, Assert Data | 5 | 3 | 4 | 3 | 4 | 3e | 4f | ||
4 | T=10s, Release /Strobe and Data | 5i | 4h | 1 | 5 | 4g | 6 | |||
5 | T=5ms, Release /Strobe and Data | 5j | 6 | 1k | 5 | 5 | 4 | |||
b: bAT - We have been waiting .5us, now its time to:
d: BAt - We have a Busy from the printer in response to our /Strobe. Do we need to wait anyway? If so make this a 2 and move to 3 when BAT.
f: BAT - Data was kept up for .5us, now we can:
i: bat - The printer is asserting /Ack
k: bAt - The /Ack is over, we can repeate the process.
1 | 2 | 3 | 3 | 4 | 4 | 5 | ||
Busy |
_ | _ | ~ | ~ | ~ | _ | _ | |
/Ack |
~ | ~ | ~ | ~ | ~ | ~ | _ | |
/Strobe |
~ | _ | _ | ~ | ~ | ~ | ~ | |
Data |
D | D | D | - | - | - | - |