mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Compactflash im Memory Mode


Autor: Bernd Schubart (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe schon vor längerer Zeit ein IDE-Interface an einem
Mikrocontroller realisiert, komplett mit FAT16 Dateisystem. Daran habe
ich als Master eine HDD angeschlossen und als Slave eine CF-Karte (True
IDE), und konnte so Daten zwischen den beiden Medien hin und
herkopieren.

Nun soll das Projekt erweitert werden, und ich brauche dafür unbedingt
eine Hot-Plug Unterstützung, also die CF soll bei eingeschaltetem Gerät
gezogen und gesteckt werden können.
Da das im True IDE-Mode nicht geht, muss ich das CF-Interface auf
Memory Mode umstellen.

So nun habe ich mich durch diverse Seiten und Specs gewühlt, und bin
nicht so recht schlau geworden, was ich nun als externe Glue-Logic für
diesen Mode genau brauche.

Wenn ich es richtig sehe, wird die CF folgendermaßen angesteuert:
#CE1 = low,  #CE2 = low  => Word Zugriff
#CE1 = low,  #CE2 = high => Byte Zugriff
#CE1 = high, #CE2 = high => CF inaktiv

Stimmt das soweit?

Ich habe nun ein CS-Signal vom Mikrocontroller, das ich zum Aktivieren
der CF benutze (low-aktiv).
Word-Zugriff brauche ich nur bei Zugriff aufs Datenregister, bei allen
anderen Registern Byte-Zugriff. Beim Datenregister sind A2, A1 A0 = 0.

Die Glue Logic habe ich mir nun folgendermaßen überlegt:

#CS______________________________ #CE1
    |
    |____
 A0______
 A1______  Oder-Gatter ________ #CE2
 A2______

Also #CS, A0, A1, A2 als Eingang auf ein ODER, #CE2 als Ausgang.

Als Frage hätte ich eigentlich nur:
Kann mir vielleicht jemand bestätigen dass das so richtig ist? (da ich
eine Platine ätzen lassen muss, und das möglichst auf Anhieb klappen
soll :-))
Danke schonmal!

Autor: Bernd Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
True IDE sollte auch mit Hot-Plug gehen.
Du musst nur die Versorgungsspannung über die CD* Leitungen schalten.

Autor: Bernd Schubart (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hm das wäre mir jetzt neu...
ich habe gelesen, dass true ide nur in systemen verwendet werden soll,
wo die cf nicht im laufenden betrieb gesteckt oder gezogen werden
muss.

wie meinst du das genau mit spannung über die CD pins schalten?
an den cd pins habe ich pullups vorgesehen, und die cf verbindet die
pins beim einstecken mit gnd.

Autor: Bernd Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Pull-Ups brauchst du eigendlich nur wenn du das Signal Digital
auswerten willst, da die ohne Medium offen sind.
Im einfachsten Fall reicht es mit einer der Leitungen über einen
Vorwiderstand einen PNP Transistor anzusteuern, der in Emiterschaltung
die Betriebsspannung fürs CF liefert.
Sauberer wäre es natürlich beide CD Leitungen auszuwerten.
Wenn du die Signale zum Controller ziehst, dann kannst du auch von
diesem die Spannung schalten.
Es geht ja nur darum, daß das Medium saubere Mode Signale beim
Initialisieren sieht, was sonst nicht der Fall ist, da die
Powerleitungen längere Stifte haben.
Da die CD Leitungen die kürzesten Stifte haben sind zu diesem Zeitpunkt
bereits alle anderen Signale verbunden.

Autor: Bernd Schubart (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi

sorry hatte den thread hier irgendwie vergessen.

also danke für die infos, aber ich denke ich werde trotzdem mal den
memory mode ausprobieren. scheint mir einfach sinnvoller, da es in den
specs als der ideale mode für embedded systeme mit
hotplug-unterstützung beschrieben wird.
deine lösung wird wohl auch funktionieren, ist mir aber irgendwie ein
bisschen zu sehr getrickst :-)

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.