Es wäre hilfreich, wenn Du die tatsächlichen Seitennummern genannt
hättest (das sind diese Zahlen an der Blattunterkante), ich war gerade
schon dabei, Dich zu fragen, ob Du UDMA-Betrieb implementieren willst.
Dieses Timingdiagramm wurde von Knalltüten veröffentlicht; die
Darstellung des Signales /DIOW bzw. /DIOR ist invertiert!
Die Zeit t6 bzw. t6Z wird in der Realität nach der steigenden Flanke
von /DIOR gemessen; spätestens 30nsec nach der ist der Datenbus im
Tristate. Und das ist vollkommen in Ordnung und auch gut so.
Die Daten stehen t2-t3 nsec nach der fallenden Flanke von /DIOR an.
Da die Angabe für t2 ein Mindestwert ist (Du darfst die Platte auch
langsamer ansteuern), wird die Zeit, die die Daten zum Lesen anstehen,
entsprechend verlängert.
Auch hier ist das Timingdiagramm von Knalltüten geschrieben worden;
statt die "data setup time" auf die nachfolgende steigende Flanke
von /DIOR zu beziehen, müsste sie korrekt auf die vorhergehende
fallende Flanke bezogen werden.
So aber sorgt das Diagramm nur für Konfusion.
Im folgenden beziehe ich mich auf PIO-Mode 0:
Die Platte liefert beim Lesezugriff 290nsec - 50nsec = 240nsec nach der
fallenden Flanke von /DIOR Daten. Diese Daten bleiben solange anstehen,
bis /DIOR deaktiviert wird (also bis zur steigenden Flanke),
genaugenommen bleiben sie noch 5nsec nach der Flanke anstehen.
Spätestens 30nsec nach der Flanke ist der Datenbus im Tristate.
Wenn Du zwischen der fallenden und der nachfolgenden steigenden Flanke
von /DIOR mehr Zeit verstreichen lässt, bleiben die Daten enstprechend
länger anstehen; die genannten 290nsec sind ein Mindestwert.
Wird's so klarer?