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