von Dietrich » So 11. Jun 2006, 20:21
Jetzt wird's langsam kompliziert:
Hias hat geschrieben:Register Transfers sind immer im 8-Bit Modus. Und dieser Modus verlangt nun 290ns Pulse Width.
Stimmt, hatte ich übersehen. Wir kommen also nicht um die 290ns herum!

Damit fällt die direkte Verwendung von PHI2 (High-Dauer etwa 245ns) und PHI0 AND PHI2 (High-Dauer etwa 210ns) wohl aus, wenns mit allen CFs laufen soll. (Die Sandisk-CFs schaffen das aber).
Da bleibt wohl nur folgende Idee:
Beim Schreiben wird als Takt nur (!) für das CF PHI0 genommen, das eine Pulsbreite von 280ns haben sollte. Die Flanke am CF liegt dann etwa 35ns vor der fallenden Flanke von PHI2. Alternativ könnte man die steigende Flanke von PHI0 in ein Monoflop mit einer Haltezeit von 290ns leiten. Damit würde die Flanke am CF etwa 25ns vor der fallenden Flanke von PHI2 liegen. Fürs Lesen (nur für das CF) könnte man PHI0 OR BPHI2 nehmen. Die Impulsbreite ist damit etwa 315ns und die Flanke am CF liegt etwa 20ns hinter der fallenden Flanke von PHI2. Es stellt sich nur die Frage, ob die Adressleitungen bei der steigenden Flanke von PHI0 (70ns vor PHI2) schon gültig sind. Theoretisch ja, notfalls könnten man PHI0 noch etwas verzögern (1 Gatter oder so).
Mit "Flanke am CF" meine ich natürlich die steigenden Flanken der /IORD und /IORW-Signale am CF - gemäß den Gleichungen /IORD = NOT( R/W AND Takt) und /IORW = NOT( NOT(R/W) AND Takt).
Um das genau zu berechnen, brauchen wir ein Oszi-Diagramm, dass PHI2 (an der CPU), BPHI2 (an der PIA) und PHI0 im Verhältnis zueinander anzeigt.
Hallo Bernd! 
Hias hat geschrieben:Bei den Compact-Flash Karten gibt es einen Modus, sodaß Daten-Transfers auch in 8bit möglich sind (über das Set Features Kommando, $EF, Feature $01). Ich hatte das mal ausprobiert, aber es hat nicht so richtig geklappt. Hattest Du in dieser Richtung schon Erfolg?
Jo, genau das klappt bei mir. Ich habe ein Basic-Pgm (mit etwas 6502-Code) geschrieben, das den Atari auf eingebaute CF-Karten untersucht, dann mit "Set Feature" in den 8bit-Modus geht und anschließend einen "Identify Device" ausführt. Auch beim Schreiben und Lesen von 512 Byte-Sektoren gabs im 8bit-Betrieb keine Probleme. Im 8bit-Betrieb kriege ich 4- bis 8mal soviele Images auf ein CF wie bei MyIDE

Bernd hat geschrieben:Die maximale von mir ermittelte PHI2 Impulslänge liegt bei 250us.
Ja, aber das gilt doch nur, wenn du das modifizierte PHI2 auch für die ATARI-ICs benutzt. Es spricht nichts dagegen ein separates Taktsignal nur fürs SRAM und das CF zu generieren, siehe oben

Hias hat geschrieben:Dietrich hat geschrieben:Dann könnte man doch auf Latches an den Adressleitungen verzichten, oder?
Für normales I/O ja. Die Latches brauchst Du nur dann, wenn Du zB eine State-Machine hast und die State-Transitions am Ende des Clock-Cycles (fallende Flanke von PHI2) machen willst/musst.
Hmm, beim Schreiben wirds wohl keine Probleme geben, aber beim Lesen evtl. doch: Die Flanke am SRAM bzw. CF muss ja beim Lesen hinter PHI2 liegen (sonst würde das SRAM seinen Datenbus dekativieren bevor die CPU die Daten lesen konnte). Damit könnte die CPU die Adressleitungen doch zu früh ändern. Ergo wären die Latches doch erforderlich, wenn das modifizierte Taktsignal das Problem nicht abstellt.
