mikrocontroller.net

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


Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

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

Matthias

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörn (Gast)
Datum:

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

MFG Jörn

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

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

Matthias

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Nik Bamert (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Hab den Schaltplan auf meinen Webspace hochgeladen:

www.joern-elektronik.de/CF_adapter_TRUE_IDE.sch

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh hab mich vertahn es liegen 4,5 V an

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Bernd Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.