PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem: AVR-Dos auf MMC will nicht funzen...



Dani-Bruchflieger
04.06.2006, 19:37
Hi

ich habe mir für meinen Mega128 eine Platine gefertigt um eineMMC am SPI anzuschließen. Als Vorlage habe ich dazu die Schaltung wie im angefügten Bild von U. Radig als Levelshifter nachgebaut, und entsprechend den Anweisungen von dieser Website am Mega 128 angeschlosen. http://members.aon.at/voegel/index.html
Nachdem ich die Test_Dos_Drive.bas aufgespielt habe, meldet sich der µC mit diesem Text:

Wait for Drive
Error during Drive Init: 225
AVR-DOS: Ready for commands

0000>
wenn ich dann diverse Befehle vom Filesysteminterpreter eingebe macht es keinen Unterschied, ob die MMC im Slot ist oder nicht - Die Verdrahtung sollte nun eigentlich funktionieren - ich habe es bis jetzt schon zig mal durchgeklingelt - sind auch keine Schlüsse zwischen den Pins vorhanden. Und darum kapier ich das auch nicht - die MMC ist von Sandisk mit 32MB und dann hab ichs noch mit einer SD von Kingston 256MB probiert...

Link zur Schaltung:
http://www.ulrichradig.de/site/atmel/avr_mmcsd/gfx/MMC_Optimal.JPG

oe9vfj
06.06.2006, 09:07
Hallo Dani,

Beim letzten Update der HP habe ich leider die für mein Board gültige CONFIG_MMC.BAS online gestellt. Da ich auf meinem Board PortB.5 für Chip-Select für die MMC Karte verwende, passte nunmehr CONFIG_MMC.BAs nicht mit dem Schema überein.
Ich habe nun die berichtigte CONFIG_MMC.BAS wieder online gestellt. Lade bitte dieses File herunter und probiers mal mit diesem.
Ich selbst verwende das Schema mit dem Pegelkonverter von Ulrich Radig nicht, würde aber MMC_DO direkt auf den SPI_DI durchschalten, da hier ja keine Pegeländerung notwendig ist, bzw. stattfindet. Das 3V OUTPUT-Signal der Karte wird vom AVR ohnehin als High gewertet.

Dani-Bruchflieger
06.06.2006, 17:12
Hi,

Danke - das mit dem Portb.5 hatte ich auch schon gesehen und den CS mal dorthin umgesteckt - hatte aber auch nichts gebracht - ich werde das jetzt mal ganz ohne den Pegelwandler probieren und den µC nur mit 3,5V laufen lassen - hoffentlich arbeitet der dann noch ist ein normaler M128 und kein L - Naja Versuch macht kluch...
Mir hatte auch jemand was von Leitungslänge max 10cm gesagt - stimmt das? - bin da bestimmt bei 25cm - weil Versuchsverdrahtung und so...

oe9vfj
06.06.2006, 17:19
Hallo Dani,

Die Leitungen so kurz wie möglich machen ist sicher eine zielführende Maßnahme. Ich habe schon von anderen gehört. dass dann Probleme verschwunden sind. Während die Taktrate zur Karte nicht kritisch ist und in einem weiten Bereich variiert werden kann, muss aber doch die Impulsform stimmen (max. Anstiegszeit). 'Lange' Leitungen können da schon etwas verfälschen.

Dani-Bruchflieger
06.06.2006, 22:51
Hi Josef,

auch direkt angeschlossen hat es nicht gefunzt - gleicher Fehler...

Test_Dos_Drive compiled at 06-06-2006 21:37:21
Wait for Drive
Error during Drive Init: 225
AVR-DOS: Ready for commands

0000>

Ich hab mal ein Foto von meinem Testaufbau gemacht. Ganz Links mein Steckboard mit dem Mega128L (ja war doch ein L) daneben das Board mit dem Slot für die MMC (ist der von Conrad, wo noch Smartmedia und Memorystick eingesteckt werden können - Abgriff dann auf anderen Pins...) und ganz rechts am Rand das Netzteil... Von der Seckbuchse am Kartenboard gehts mit dünnem Cu-Lackdraht direkt zu den Anschlüssen des Slots...

Könntest du mal nachsehen, was Fehlercode 225 ist?

oe9vfj
07.06.2006, 12:31
Fehlercode 225 bedeutet, dass auf das erste Kommando zur Karte (Reset)nicht die erwartete Antwort (Hex 01) kommt.
Ein Bild kann ich in deinem Post nicht öffnen.

Dani-Bruchflieger
07.06.2006, 17:34
Hi Josef,

So habs korrigiert, Bild ist dran.

$Include "Config_MMC.bas"
- wenn ich an der Stelle, wo ich auswählen soll diese Include als einzigste unkommentiert habe, ist das doch richtig?
Ich habe auch mal probiert die Miso und Mosi zu vertauschen, aber dann wartet er nur ca 30 sek. bevor er den gleichen Fehler bringt...
Oder liegt das vielleicht an den Karten - aber am PC im Kartenleser funzen die beiden Karten... die eine 32MB ist einen echte MMC und die andere 256MB ist eine SD - aber das sollte ja keinen Unterschied machen - oder könnte da noch eine andere Inkompatibilität sein?
Bin bissel ratlos...

oe9vfj
08.06.2006, 11:38
Hallo Dani,

Das ist richtig, dass nur eines der angeführten Config_xxxx im Code aktiv sein darf, die anderen müssen auskommentiert werden.

Die Karten werden nicht im Standard-Mode für MMC/SD sondern im SPI Mode betrieben. Ich habe noch kein Datasheet gefunden, das besagt dass alle Karten diesen SPI-Mode unterstützen, aber auch nicht das Gegenteil.

Ich habe aber immer beste Erfahrungen mit Karten von SANDISK gemacht.

Die genaue Beschaltung ist aus deinem Bild nicht ersichtlich, aber ich würde es mal mit einem Spannungsbuffer bei der Spannungsversorgung der MMC Karte mit einem entsprechenden ELKO probieren. Ich könnte mir vorstellen, dass es hier eventuell beim Ansprechen der Karte zu kurzen Spannungseinbrüchen kommt.

Dani-Bruchflieger
08.06.2006, 16:39
Hi Josef,

Das mit dem Elko werde ich mal noch probieren - entweder heute Abend oder morgen. Dabei werde ich dann auch mal noch den Mega128 von einem Quartz takten lassen - könnte ja auch sein, daß warum auch immer, der Takt nicht so stimmt wie eigentlich in den Fuses eingestellt... - hatte da am Wochenende ein solches Erlebnis mit einem Mega8 der trotz eingestellten 8MHz schheinbar mit ca 15MHz gelaufen sein muß - jedenfalls stimmten die Zeiten der Timer absolut nicht bis ich mit Quartz takten ließ....

Dani-Bruchflieger
13.06.2006, 22:50
Hi Josef,

leider haben die letzten Versuche auch nichts neues ergeben - entweder sind die Karten nicht SPI-kompatibel, oder der Connektor ist Schrott!
Da ich bei meiner letzten Reichelt-bestellung sowieso noch etwas vergessen hatte, werde ich den von dort mal bestellen, und dann nochmal damit probieren...

kh.ziener
08.11.2015, 13:19
Hallo,
seid Ihr noch hier vertreten? Sind ja schon 10 Jahre um. Versuche momentan eine SD-Karte unter BASCOM zum Laufen zu bringen. Will nicht! Meldung: Error during Drive Init: 226 und wenn die Karte nicht gesteckt ist: 225

Meine Hardware:
Arduino Mega 2560
MicroDS Card Adapter (China Teil im Cent-Bereich mit Pegelanpassung)

Habe alle Beispiele von http://members.aon.at/voegel/index.html getestet mit gleichem Fehler.
An der Hardware sollte es nicht liegen, wenn ich mit der Arduino IDE die dort mitgelieferten Beispiele teste geht alles. Da kann ich sogar den UNO verwenden, der unter BASCOM wegen Platzmangel streikt. Kann mir jemand was raten?
Gruß in die Runde
Karl-Heinz

- - - Aktualisiert - - -

Hier noch die Beschaltung:
30860

BMS
08.11.2015, 16:14
Hallo, SD-Karten arbeiten typischerweise an 3,3V. An 5V sind die mit ziemlicher Sicherheit geschrottet.
Grüße, Bernhard

kh.ziener
08.11.2015, 22:09
Hat Pegelwandler und Spannungsregler.