Hi,
Ich bin dabei die Compact flash Karte im True IDE Modus anzusteuern.
Nach den CF specifikationen habe ich mir ein interface für meine
ATmega162 gebaut.
-Darf die HDD LED beim register lesen oder schreiben Leuchten?
-Ist es notwendig software und Hardwarereset durchzuführen?
-Dürfen die Registeradrresse (A0-A2) gleichzeitig mit den Register
Select leitungen (C0,C1) gesetzt werden?
Ich bin für jede hilfe dankbar!
MFG Jörn
Hi
-Darf die HDD LED beim register lesen oder schreiben Leuchten?
Wenn überhaupt nur sehr kurz. Ich konnte das nie sehen. Die LED hat nur
geleuchtet wenn auf das Medium (also die Sektoren der CF) selbst
zugegriffen wurde.
-Ist es notwendig software und Hardwarereset durchzuführen?
Nach dem hochfahren der Hardware habe ich einen Hardwarereset ausgelöst
um ganz sicher zu gehen das die CF in einem definierten Zustand ist. Es
sollte aber reichen wenn du das RST-Signal an deinen Systemreset
hängst.
-Dürfen die Registeradrresse (A0-A2) gleichzeitig mit den Register
Select leitungen (C0,C1) gesetzt werden?
CFSpec gelesen? Timing-Diagramm? Seite 37 und 38? Nein? Schlecht. Aber
ich sags dir trotzdem: Ja dürfen sie. Nur mit RD bzw. WR mußt du dann
etwa 70ns warten.
Matthias
Hi,
@Matthias
Hab die specification gelesen! Das timing diagramm ist mir erst nach
abschicken des beitrags eingefallen.
mein AVR arbeitet mit 4 MHz , reichen dann 2 nops zwischen
registeraddressen und RD WR ?
Danke für deine schnelle Hilfe!!
MFG Jörn
Hi, ich habe noch ein paar probleme mit der ansteuerung, die karte gibt
immer irgendwelche werte zurück.
An welchen stellen könnte der AVR mit 4 MHZ denn zu schnell für die
Flash card sein ?
Hi,
meine ansteuerung läuft noch immer nicht :-( . Ein paar Fragen:
-Muss nach erfolgreichem reset das RDY Bit im Status register gesetzt
sein? oder alle aus?
-Wie sollten die Standartwerte für die Adress und CS leitungen sein?
Bei mir sind sie: CS0=1, CS1=1, A0=0, A1=0, A2=0, RD=1, WR=1, Reset=1;
invertirte Signale sind berücksichtigt!
MFG Jörn
Hi
das RDY-Bit ist gesetzt sobald die CF nach dem Reset bereit ist (CF
Spec 1.4 Seite 61)
Es gibt keine Standardwerte für die Steuer- und Adressleitungen.
Solange CS0 und CS1 inaktiv (=1) sind ist die CF eben nicht ausgewählt.
Sobald eine der Leitungen 0 wird kannst du über A0..A2 und RD/ WR/ auf
die einzelnen Register zugreifen. CF Spec Seite 57 ist da sehr
informativ.
Matthias
Hi,
Also bei mir geht nach dem Reset nicht mal die RDY leitung auf 1 und
wenn ich versuch das status oder error register zu lesen bekomm ich
immer andere werte, die überhaupt nicht passen.
MFG Jörn
Hi,
Meine ansteuerung funktioniert immer noch nicht, nun versuche ich
erstmal herauszufinden ob der Fehler auf der Hardware oder auf der
Software seite liegt. Das programm was ich zur ansteuerung geschrieben
habe findet ihr unter: http://www.joern-elektronik.de/cf_ide.s bitte
schaut es euch mal an und sagt mir ob es bei richtiger Hardware
funktionieren müsste.
MFG Jörn
Hi
Ich habe in den CF spec. gelesen, das VS1 (Pin 33) auf masse gelegt
werden soll damit die CFC bei 3,3 V gelesen verden kann, bei mir ist
der Pin nicht angeschlossen und es liegen so ca. 4 V an der CFC an. Ist
das so richtig oder sollte ich den VS1 auf Masse legen??
MFG Jörn
Hi, ich bin immer noch nicht weiter gekommen, egal bei welchem register,
ich bekomm immer 0 als wert! Ich weiß nicht ob es ein Hardware oder
softwarefehler ist. Deswegen wäre es nett wenn sich jemand mal diese
routine angucken könnte und mir sagt ob sie funktionieren müsste. Wäre
echt nett!!!
Der ganze quellcode ist weiter oben im anhang
MFG Jörn
;u08 CF_read_register(u08 Address)
.global CF_read_register
.func CF_read_register
CF_read_register:
ldi r16, 0x00 ;0x00 nach r16
out DDRA, r16 ;Datenport auf Eingang stellen
out CF_PORT, r23 ;Addresse ausgeben
cbi CF_PORT, RD ;RD=0
in r24, CF_DATA_PORT_RD ;Daten nach r24 lesen
sbi CF_PORT, RD ;RD=1
ldi r16, 0xE1 ;0xE3 nach r24
out CF_PORT, r16 ;CS0=1, CS1=0, A0=0, A1=0, A2=0, RD=1, WR=1,
Reset=1
ldi r16, 0xFF ;0xFF nach r16
out DDRA, r16
ret
.endfunc
Ohne jetzt den ganze Thread im Detail gelesen zu haben.
Das Medium liegt aber beim Einschalten bereit im Adapter?
Hot-Plug ist nämlich im True IDE Mode ohne zusätzlichen Aufwand nicht
möglich, beim einschieben landed das Teil normalerweise im PCMCIA Mode.
@Bernd Walter
Das bestätigt schon mal meine ergebnisse der experimente, schiebe ich
die karte rein, wenn Strom schon vorher dran war, bekomme ich
irgendwelche werte. Schalte ich es mit karte drin ein, bekomme ich für
status und error register eine 0 als wert.
MFG Jörn
Hi,
Gibt es eine möglichkeit herauszufinden ob die Flash karte wirklich im
True IDE modus läuft. Denn ich bekomm egal welches register ich auslese
0 als rückgabewert.
MFG Jörn
Eine eigene Frage?
Dieser Thread ist über 23 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.