Forum: Mikrocontroller und Digitale Elektronik Compact Flash Card im True IDE Modus


von Jörn (Gast)


Lesenswert?

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

von Matthias (Gast)


Lesenswert?

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

von Jörn (Gast)


Lesenswert?

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

von Matthias (Gast)


Lesenswert?

Hi

1/(4*10^6(1/s))=250ns. Du brauchst also gar keinen NOP.

Matthias

von Jörn (Gast)


Lesenswert?

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 ?

von Matthias (Gast)


Lesenswert?

Hi

für das Interface ist das AVR nirgends zu schnell. Für den Rest gibt es
die Statusregister und die entsprechenden Bits.

Matthias

von Jörn (Gast)


Lesenswert?

Vielen Dank für deine schnelle hilfe!! Dann kann ich den Fehler schonmal
außschließen.

MFG Jörn

von Jörn (Gast)


Lesenswert?

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

von Matthias (Gast)


Lesenswert?

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

von Jörn (Gast)


Lesenswert?

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

von Matthias (Gast)


Lesenswert?

Hi

sicher das deine Karte auch im TrueIDE-Modus läuft? Wie hast du die CFC
beschaltet?

Matthias

von Jörn (Gast)


Lesenswert?

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

von Nik Bamert (Gast)


Lesenswert?

Hi Jörn!

Du kannst mir den Schaltplan per email schicken.
Ich lad ihn auf meine Homepage, und verlink die Datei hier.


MFG Nik

von Jörn (Gast)


Lesenswert?

Hi

Hab den Schaltplan auf meinen Webspace hochgeladen:

www.joern-elektronik.de/CF_adapter_TRUE_IDE.sch

von Jörn (Gast)


Lesenswert?

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

von Jörn (Gast)


Lesenswert?

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

von Jörn (Gast)


Lesenswert?

Oh hab mich vertahn es liegen 4,5 V an

von Jörn (Gast)


Lesenswert?

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

von Bernd Walter (Gast)


Lesenswert?

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.

von Jörn (Gast)


Lesenswert?

@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

von Jörn (Gast)


Lesenswert?

HILFE!!!

Ich komme einfach nicht weiter. Hat denn keiner eine Idee wo der fehler
liegen kann???

THX schon mal im vorraus!!!

MFG Jörn

von Jörn (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.