hallo,
ich versuche jetzt schon seit 4 tagen, eine SD bzw. MMC-Karte mit dem
ATMega32 zu verbinden. Der Rest des Projekts (PS/2, LCD, FT232) läuft
einwandfrei, nur die Karte verweigert jede Zusammenarbeit. Ich habe es
mit den Librarys von Ulrich Radig, Roland Riegel, Captain usw. probiert,
kein Erfolg. Der Chip lief anfangs auf +5V, die SD-Karte war über 1,8k
und 3,3k Spannungsteiler angeschlossen, MISO direkt. Die +3.3V über
dioden. kein erfolg. Daraufhin habe ich den VCC der SD-Karte mit zwei
Mono-Akkus verbunden, natürlich den AUCH auf GND gelegt. auch kein
erfolg. anschließend habe ich die ganze schaltung bis auf die versorgung
des LCD auf 3v gelegt, auch den atmega. auch kein erfolg. getestet hab
ich das ganze mit einer 16 MB mmc, einer 512 MB SD, einer 2 GB SD und
einer 2 GB MicroSD + Adapter. Nix geht. Manchmal sagt er "Karte
verbunden", aber dann nix mehr. das liegt vermutlich an einem
kurzschluss von MISO mit GND.
Frage 1:
Gehören bei 3V auf allen Anschlüssen Pullup-, Pulldown- oder gar keine
Widerstände hin? wenn ja, welche stärke? ich hab mit 1k getestet.
Frage 2:
Was kann ich tun, um es zum Laufen zu bringen?
Ich bräuchte die Schaltung noch diese Woche, deshalb frage ich hier.
Zum Rumprobieren fehlt mir leider die zeit.
Danke im voraus,
Lukas
> ich versuche jetzt schon seit 4 tagen, eine SD bzw. MMC-Karte mit dem> ATMega32 zu verbinden.
Nur 4Tage? Ein bisschen wenig. Frag doch nochmal nach 4Wochen
rumprockeln. :-)
> Ich habe es mit den Librarys von Ulrich Radig, Roland Riegel,> Captain usw. probiert, kein Erfolg.
Und der Libarie von Lucas? Kann doch nicht jeder ohne Eigeninitiative
geboren sein.
> Der Chip lief anfangs auf +5V, die SD-Karte war über 1,8k> und 3,3k Spannungsteiler angeschlossen,
Schlecht. Das vermindert die Flankensteilheit der Signale. Ich koennte
mir vorstellen das dies insbesondere bei modernen schnellen SD-Karten zu
Problemen fuehrt. Ich will auch nicht ausschliessen das man es damit
hinbekommen kann aber wenn man Probleme hat dann sorgt man erstmal fuer
einen vernuenftigen Pegelwandler. Zum Beispiel 74LVX125.
> Die +3.3V über dioden. kein erfolg.
Das ist ein Witz oder? Was glaubst du wie sich deine selbstgebaute
Spannungsquelle verhaelt wenn ihre Last sehr gering ist weil die
Speicherkarte gerade inaktiv ist und was die Karte wohl zu der
Ueberspannung sagt?
> Manchmal sagt er "Karte> verbunden", aber dann nix mehr. das liegt vermutlich an einem> kurzschluss von MISO mit GND.
Dann musst du dich beim Debuggen stueckweise durch durch den Source
kaempfen bis du die Stelle gefunden hast wo es zu einer Fehlermeldung
kommt.
> Gehören bei 3V auf allen Anschlüssen Pullup-, Pulldown- oder gar keine> Widerstände hin? wenn ja, welche stärke? ich hab mit 1k getestet.
Pullup sind ueblich. Gebraucht werden die im inaktiven Zustand wenn dein
Controller nicht mit der Karte redet. 47k sollten reichen. 1k wuerden
bei anderen Leuten mit richtigen Pegelconverter auch gehen, aber wenn du
nur einen popeligen Spannungsteiler in derselben Groessenordnung hast,
was glaubst du wohl macht der 1k dann mit deinen Signalpegeln? .-)
> Was kann ich tun, um es zum Laufen zu bringen?
Grundlagen Etechnik lernen und etwas mehr debuggen. Es kann z.B nicht
schaden mal seinen Oszi an den die Signalleitungen zu haengen. Und wenn
man noch ein armer beduerftiger Schueler ist dann schaltet man den
SPI-Takt auf 1kHz runter und haengt seine Soundkarte dran.
> Ich bräuchte die Schaltung noch diese Woche, deshalb frage ich hier.> Zum Rumprobieren fehlt mir leider die zeit.
Dann ist es am einfachsten du holst dir ein Angebot von einem
Ingenieurbuero ein. Koennte aber auch schon knapp werden.
Olaf
Servus,
versuch es mal hier: Beitrag "MMC SD library FAT16 FAT32 read write"
Der Code ist einfach, aber er funktioniert tadellos!
Stimmt die Anbindung an den Karten-Slot? Da kann man schon mal einen
Fehler machen.
3,3 Volt wären zum Experimentieren besser. Besorg dir zB. einen
3,3 Volt Atmega644 und teste die Karte ohne zusätzlicher Hardware.
Sollte alles funktionieren, kannst du das mal mit der 5 Volt Geschichte
probieren und die anderen Komponenten dazu fügen.
Gruß XMEGA
>> Gehören bei 3V auf allen Anschlüssen Pullup-, Pulldown- oder gar keine>> Widerstände hin? wenn ja, welche stärke? ich hab mit 1k getestet.>> Pullup sind ueblich. Gebraucht werden die im inaktiven Zustand wenn dein> Controller nicht mit der Karte redet. 47k sollten reichen. 1k wuerden> bei anderen Leuten mit richtigen Pegelconverter auch gehen, aber wenn du> nur einen popeligen Spannungsteiler in derselben Groessenordnung hast,> was glaubst du wohl macht der 1k dann mit deinen Signalpegeln? .-)
die pullup bzw. -downs hab ich verhendet, als der chip auf 3V lag.
deshalb hab ich gar keine spannungsteiler verwendet. der low-drop-regler
auf 3.3V kommt bald, bis dahin habe ich die Monos benutzt.
> Und wenn man noch ein armer beduerftiger Schueler ist
triffts genau ;-)
> Stimmt die Anbindung an den Karten-Slot? Da kann man schon mal einen> Fehler machen.
sollte stimmen. ich hab den widerstand mit eimen digitalmultimeter
durchgemessen. kurz hatte ich mal nen kurzschluss zwischen gnd und vcc.
hab mich schon gefragt warum der 5V regler so heiß ist...
Bei mir hat der ATMega32 mit 3V tadellos funktioniert (LCD, ISP ...)
> Und der Libarie von Lucas? Kann doch nicht jeder ohne Eigeninitiative> geboren sein.
eine eigene Library wäre nicht so stabil wie erprobte und
vielverwendete. so kann ich mir sicher sein dass der fehler nicht im
programm liegt.
> eine eigene Library wäre nicht so stabil wie erprobte und> vielverwendete. so kann ich mir sicher sein dass der fehler nicht im> programm liegt.
Man kann einige dumme Fehler nicht machen, da stimme ich zu. Aber man
kann halt auch ein paar dumme Fehler nie finden weil man immer alles als
gegeben annimmt.
Du solltes dir zumindest bis auf Commandoebene genau klar sein was da
ablaeuft. Und dann hilft leider nur noch Oszi oder eben notfalls eine
Soundkarte. Notfalls musst du mal jedes Bit einzeln im Singlestep
raustakten und mit einem Multimeter schauen ob wenigsten da die Pegel
richtig sind. Oder haeng mal eine Low-Current-LED an die jeweiligen
Leitungen und schau mal ob sie brauchbar blinken.
Und achte auf kurze Kabel. Kein 30cm FLachbandkabel quer ueber den
Basteltisch!
Olaf
Code von anderen einfach übernehmen ist Mist.
Ich habs folgendermaßen gmacht und innerhalb von 4 Tagen hinbekommen:
- myAVR LPT Board mit ATmega8 (5V)
- Ulrich Radigs minimaler Versuchsaufbau auf Steckbrett
(ja, das mit den Dioden)
- 2 alte MMCs (16 und 32MB)
- "Floppy-Adapter"
http://www.uni-koblenz.de/~physik/informatik/ECC/sd.pdf
lesen und VERSTEHEN!
- eigenes Programm schreiben und mit Radigs Code vergleichen
- damit auch den Code von Radig verstehen
- und schliesslich auch das Ansprechen der Karte verstehen