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 1/(4*10^6(1/s))=250ns. Du brauchst also gar keinen NOP. Matthias
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 für das Interface ist das AVR nirgends zu schnell. Für den Rest gibt es die Statusregister und die entsprechenden Bits. Matthias
Vielen Dank für deine schnelle hilfe!! Dann kann ich den Fehler schonmal außschließen. MFG Jörn
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 sicher das deine Karte auch im TrueIDE-Modus läuft? Wie hast du die CFC beschaltet? Matthias
Hi Ich hab die CFC so beschaltet wie es in den CFspec steht. würd ja gerne den schaltplan posten, ist aber leider deaktiviert. MFG Jörn
Hi Jörn! Du kannst mir den Schaltplan per email schicken. Ich lad ihn auf meine Homepage, und verlink die Datei hier. MFG Nik
Hi Hab den Schaltplan auf meinen Webspace hochgeladen: www.joern-elektronik.de/CF_adapter_TRUE_IDE.sch
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
HILFE!!! Ich komme einfach nicht weiter. Hat denn keiner eine Idee wo der fehler liegen kann??? THX schon mal im vorraus!!! 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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.