Forum: Mikrocontroller und Digitale Elektronik Lucky-page@gmx.de


von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

Hi Leute,

kann mir jemand helfen??
Ich versuche die Daten aus einer CF-Karte mit ATmeg161 auszulesen!
Es gibt da 3 verschiedene Möglichkeiten! (PC CARD I/O MODE, True IDE
Mode, PC CARD Memory Mode)
Ich verstehe im grossen und ganzen schon wie es gehen soll.
Aber eins verstehe ich irgendwie nicht. Welche Möglichkeit ich da
nehmen soll??
Habe schon auch bei yammp geschaut und er benutz GLAUBE ich PC CARD I/O
Mode!
Was denkt Ihr, welche Möglichkeit ich nehmen soll?
Besser wäre, wenn mir jemand sagt, was die einzelne Möglichkeiten für
Vorteile und Nachteile haben!

Kann mir da jemand helfen.

Gruss Stefan

von Wolfram (Gast)


Lesenswert?

im True IDE Mode kommst du an die COMPACTFlashKarten Konfiguration nicht
ran. Der Memory Mode ist der schnellstmögliche Zugriff da hierbei der
Memorycontroller des ATmega161 das Signalspiel übernimmt. In den
anderen Modi müßtest du dies per Portzugriff machen und diese
Portzugriff und überprüfungen sind langsamer. Es setzt natürlich eine
schnelle CF Karte voraus da das WAIT Signal vom AVR nicht unterstützt
wird. Also entsprechend evt. Waitstates einfügen. Von einer heutigen
CFKarte würde ich aber volle geschwindigkeit an einem AVR erwarten. Der
Zugriff auf der Registerebene unterscheidet sich nicht. Du musst halt
nur die entsprechende Adresse nehmen. Du kannst davon ausgehen daß jede
CF Karte 8Bit Zugriffe unterstützt, dies ist bei Festplatte nicht so.
Schau dir
das Speicherfenster auf den Registern an, damit kannst du per memcopy
einfach einen kompletten Sektor kopieren. Wichtig: nach einem Befehl
stehts das RDY Bit abwarten und dann erst zugreifen.
Wenn du nur eine möglichkeit zur Datenspeicherung sucht ist eine SD/MMC
Kartenlösung definitiv einfacher.

von Stefan (Gast)


Lesenswert?

Vielleiht ist das eine blöde Frage!
ISt es überhaupt wichtig an die Konfiguration der COMPACTFlashKarte
ranzukommen, um die Daten auszulesen?? Wenn ja wozu ist dieser True IDE
Mode?

So wie ich verstanden habe empfiehlst du mir den PC Card Memory Mode zu
benutzen oder?

Gruss Stefan

von Wolfram (Gast)


Lesenswert?

Es ist eigentlich nicht wichtig an die Config der Karte ranzukommen
solange man nur Daten speichern will. Bei Multifunktionskarten könnte
es interessant werden.
Im True IDE kann man ein CF Karte wie eine Festplatte betreiben. Es
gibt da Adapter mit denen man sie an einen IDE Port anschließt.

Es ist egal welchen Modus du benutzt! Im Memory Mode wirst du dich nur
am wenigsten mit dem Signalspiel, das die CF Karte erfordert
beschäftigen,das macht der Memorycontroller des AVR. Also die Karte
hängt am externen Speicherbus des AVR. Du solltest allerdings wissen
wie du in C oder anderen Programmiersprachen auf Memorymapped Register
zugreifst.
Es sieht auch übersichtlicher aus wenn du schreibst
CommandRegister= Kommando

als bei PC IO Mode
PORT1=adresse Kommandoregister
PORT2=Kommando
PORT3=(1<<schreiben)

und höchstwahrscheinlich wird der Memorymapped Code schneller sein.
Die wesentliche Frage ist hast du die CF Dokumentation verstanden.
(Signalspiel, Zugriff auf Register,etc.)
bist du in der Lage einen externen RAM (wäre sehr empfehlenswert) und
eine Karte an den Speicherbus zu hängen?
Versuche mal einen Programmzugriff für das Lesen von Sektor 22 zu
formulieren. Ein mal für die am Speicherbus hängende Karte im
Memorymapped Mode und einmal für den IO Mode.
Wenn du dabei auf massive Probleme stößt, mach es so wie yammp das
kennen sehr viele die dir dann auch helfen können wenn es Probleme
gibt.
Der Memorymapped Modus ist aus meiner Sicht insgesamt einfacher ,man
braucht halt nur einiges Vorwissen. Ich habe das mal mit nem Z180
gemacht.
Noch eine Bemerkung: Der Mega161 hat 16K Flash 1K RAM + evt. externes
RAM
Die meisten benutzen entweder die yammp FAT Implementierung oder die
von Uli Radig (findest du hier im Forum) Ich weiss nicht genau wieviel
Flash/RAM die benötigen. Ich kenne nur eine Implementierung die
benötigt 9K Flash und 800 Byte RAM bei 5 Dateien(Lesen/Schreiben etc).
Also insoweit dürfte es ohne externes RAM etwas eng werden und auch vom
Flash sieht es dann etwas eng aus.
Was willst du eigentlich machen?

von Stefan (Gast)


Lesenswert?

Ich will einen MP3 Player bauen, da ich es nicht einfach nachbauen will,
will ich alles selber machen. Ich habe halt nach Herausforderung gesucht
und es ist für mich zurzeit aufjedenfall eine.

Also eigentlich habe ich schon alles was ich brauche, von Informationen
und Wissen (glaube ich zumindestens), bei mir hängt bloss alles an der
CF-Karte. Da habe ich voll die Problemme. Irgenwie verstehe ich es und
anderseits sehe ich das ich gar nichts verstehe!
Also ich tue aufjedenfall in PC CARD Memory Mode die Kargte benutzen!

Gruss Stefan

von Wolfram (Gast)


Lesenswert?

Also der Weg ist das Ziel...
Ich zweifle dass der Mega161 gross genug ist.
Mit der CF-Spezifikation hast du eigentlich alle Informationen die du
benötigst.
Stelle mal konkrete Fragen, was du nicht verstehst.

von Stefan (Gast)


Lesenswert?

Welche I/O bei der CF Karte in PC CARD Memory Mode, sind für Daten
Übertragung zuständig (OE und WE)?

Ich habe einige Beiträge gesehen, wo davon gesprochen wurde OE und WE
zu invertieren z.B mit NAND Gate?? Warum?

So wie ich es verstehe sind die A10-A0, CE1, CE2, REG, sind die
Eingänge in CF, um von µController aus die Register anzusprechen! Oder?


Schlag mich wenn ich falsch liege, aber ich bin verzweifelt!!

Das mit den Sektoren über FAT32 habe ich schon vertstanden, muss halt
den weg finden über Register, diese rauszulesen. Aber bis ich soweit
bin muss ich das andere vertstehen.

Gruss Stefan

von Wolfram (Gast)


Lesenswert?

Wie würdest du 2x SRAM an den AVR dranhängen?
und jetzt ersetzt du den einen SRAM durch die CF-Karte.
Adressleitungen und Datenleitungen sowie Chip enable der CF-Karte
entsprechen 1 zu 1 den des ersetzten SRAMS im Bereich
Adresse CFKARTE bis Adresse CFKARTE+2048 (2^11) hast du die Register
memorymapped vorliegen und kannst das Register jeweils mit der
entsprechenden Speicheradresse also Adresse CFKarte + Registeradresse
ansprechen. Was CE1 CE2 und Reg machen solltest du dir in der CF
Dokumentation für den memorymapped mode noch durchlesen.
Probier mal eine Schaltung mit 2 32K SRAMs am AVR aufzuzeichnen und
dann ersetze den 2. SRAM durch die CFKarte. Signale die dir unklar sind
erst mal weglassen. (da ergeben sich dann gleich die nächsten relevanten
Fragen)

Stefan, dass was du da vorhast ist recht umfangreich aber ich schätze
das weisst du selber. Ich schätze mal du bist das nächste halbe Jahr
mindestens damit beschäftigt. Du hast geschrieben du willst es selbst
machen,finde ich gut. Insoweit, wenn du Hilfe von mir diesbezüglich
erhältst, dann wird das einiges selbststudium erfordern und ungefähr so
wie oben aussehen. Ich hoffe das ist ok.
Wenn du lieber gleich eine Schaltung haben willst die du
zusammenlötest, dann würde ich dir yammp empfehlen das liefert dir die
Funktionalität. Der Lerneffekt ist natürlich wesentlich geringer.

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.