Compact Flash Card im True IDE Modus

Gast #52132
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
Gast #52133
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
Gast #52134
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
Gast #52139
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
Gast #52140
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
Gast #52141
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
Gast #52147
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
Gast #52149
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
Gast #52150
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.
Gast #52151
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren