Hallo, ich versuche jetzt schon seit einigen Tagen eine SD Karte an meinem ATMega128L (mit 3,3V Betriebsspannung) zum Laufen zu bringen, aber bis jetzt ohne Erfolg! Ich habe die Karte wie in dem Bild im Anhang verschaltet, hab ich da schon einen Fehler gemacht? Wollte die Karte dann testen, aber ich habe immer ein Problem bei der Initialisierung, ich sollte beim Reset(CMD0) eigentlich den Wert 1 zurück bekommen, bei mir wechselt der Wert aber ständig zwischen 5 und 191, auf 1 kommt er nie! Vermute also das die Karte vielleicht schon falsch beschalten ist.
Wenn der ATMega mit 3,3V läuft musst du natürlich die Spannungsteiler weglassen.
Hi, soll ich am besten alle Widerstände rausnehmen, oder nur die 1k8, oder 3k3?
alle, die braucht man nicht wenn der uC mit 3,3V betrieben wird
Aber Achtung, wenn du alle Widerstände weg läst, hast du keine Verbundung mehr vom µC zur SD-Karte. Bevor du dich mit µC beschäftigst, solltest du dir erstmal die Grundlagen von Spannungsteilern aneignen.
Weisnix wrote: > Aber Achtung, wenn du alle Widerstände weg läst, hast du keine > Verbundung mehr vom µC zur SD-Karte. > Bevor du dich mit µC beschäftigst, solltest du dir erstmal die > Grundlagen von Spannungsteilern aneignen. Tja, da weiß wohl jemand wirklich nix. Die Widerstände kommen natürlich ALLE raus. Die 1k8 Ohm Widerstände werden mit Drahtbrücken überbrückt. Und so wars auch gemeint von den Vorrednern hier. Ist schon klar, dass es sonst keine Verbindung mehr gibt. Und außerdem braucht man für SD-Karten Programmierung nicht zwangsläufig Wissen über Spannungsteiler.
Doch braucht man 1. Immer wenn man mit elektronik bastelt. 2. Sieht man ja oben am Beispiel. Wenn man nicht weis was ein Spannungsteiler macht, funktioniert die ganze Sache eben nicht. Und der Hinweis das dei Widerstände nicht einfach weggelassen werden können und durch Brücker ersetzt werden müssen scheint mir bei solchen Leuten auch für angebracht.
@ Weisnix: Mir ist auf jeden Fall klar, was ein Spannungsteiler so macht, aber da ich die Schaltung wie oben beschrieben übernommen habe, dachte ich er wird in diesem Fall schon einen "höheren Sinn haben"! Also spar dir bitte deine komplett sinlosen Kommentare!
Dann verstehe ich deine 2. Antwort nicht, wenn dir schon der Tipp gegeben wird den Spannungsteiler raus zu lassen.
Ja Moment, die Frage ist ja wohl nicht ganz unbegründet. Schließlich könnte man die 3k3 Widerstände als Pull Downs ruhig drin lassen.
Schwachsinn...... Lass die 3k3 Widerstände weg. Die belasten die Portpins nur unnötig. U / R = I. Das ohmsche Gesetz gilt auch für Anfänger.
Hallo ihr Spannungsteiler-Helden. Pull-Downs haben da nichts zu suchen, wenn schon dann Pull-Ups und dann auch etwas größere Werte z.B. 100k oder so.
Nochmal Schwachsinn........ Pullup mit 3k3 belastet genauso wie Pulldown. Nur bei Low Pegel halt. SPI braucht keine Pullup/down. Das ist kein I2C. @Weisnix 100k Pullup bei z.B. 4MHz SPI Speed ? Schönen dank. Was bringt der da ? Sagen wir mal 10pF Leitungskapazität wegen schlechtem Layout. 3dB Frequenz: 1/(2*PI*R*C) = 159kHz. Bei 4MHz zuckt da die GND Linie ein wenig. Hilft also gar nicht. Ein Teil zu viel in der Schaltung ;)
Wow, was für ein Murks als Antwort, bis auf wenige Ausnahmen. Also 1. Mal als Tip: Es gibt einige fertige SD-Card Projekte hier, da kann man abpinnen, testen und verstehen. 2. Innerhalb dieser Projekte hat sich bereits herausgestellt, dass man bei den SD-Cards die nicht genutzten Pinne mit 10k nach Vcc resp. GND klemmen sollte, da sonst einige Karten nicht sauber initialisieren und nicht in den SPI-Mode kommen. Welcher Pin wohin, weiß ich nicht auswendig, findet man aber in den Threads zu den unter 1) zu suchenden Projekten. 3. Gerade, wenn der SPI noch an weitere Bausteine geht, dann sind die schlappen ca. 22k Pullups im ATmega nicht ausreichend um saubere steile Flanken auf dem Bus zu erzeugen. Merkt man schnell daran, dass enteder SD-Cards nur unzuverlässig gelesen werden oder z.B. der AVRISP nur dann funktioniert, wenn die SD-Card aus dem Slot gezogen wurde. Das ganze wird durch freie Verdrahtungen noch schlimmer. Gruß, Ulrich
>Wow, was für ein Murks als Antwort, bis auf wenige Ausnahmen. >Also >1. Mal als Tip: Es gibt einige fertige SD-Card Projekte hier, da kann >man abpinnen, testen und verstehen. Danke, brauch ich nicht. Ich habe meine SD/MMC Routinen dann doch lieber selber geschrieben. Den ganzen Mist mit Spannungsteilern auf MISO,MOSI,SCK,CS als 5V->3,3V Konverter habe ich konsequent mit richtigen Pegelwandlern gemacht. Z.B. 74LVX08. Die Wandlung 3,3V->5V macht bei mir ein 74HCT125. Dann muss man den 3,3V SPI Slave nicht mit einem Pullup am Ausgang quälen weil er den 5V CMOS Pegel für den Atmega sonst nicht schafft. Der sorgt auch noch für Sicherheit bei ISP ;) >3. Gerade, wenn der SPI noch an weitere Bausteine geht, dann sind die >schlappen ca. 22k Pullups im ATmega nicht ausreichend um saubere steile >Flanken auf dem Bus zu erzeugen. Merkt man schnell daran, dass enteder >SD-Cards nur unzuverlässig gelesen werden oder z.B. der AVRISP nur dann >funktioniert, wenn die SD-Card aus dem Slot gezogen wurde. Das ganze >wird durch freie Verdrahtungen noch schlimmer. Schliess einen Pullup an alle CS Eingänge deiner SPI Chips an. Wenn der Atmega resettet hängen die nicht in der Luft und dein ISP funktioniert auch. Bei mir machen das die 74HCT125 Multiplexer. Sie trennen die Ausgänge der SPI Chips von MISO. Mit den oben genannten Dingen kann ich mit einem ATMega bei 10MHz SPI Speed ohne Probleme MMC/SD Karten lesen und beschreiben. Ohne Pullups ! Wo bitte schön steht im Datenblatt der AVR das SPI ein Open Collector Bus ist ? Nirgends. Gelegentlich hab ich dann auch noch einen VS1001K oder einen ENC28J60 am SPI Bus mit dran. Aber Pullups brauchte ich dafür bisher noch nicht.
LOL Holger >Schliess einen Pullup an alle CS Eingänge deiner SPI Chips an. >Wenn der Atmega resettet hängen die nicht in der Luft und dein Erst mein Komentar als Schwachsinn abstempeln und dann in deinem nächsten Komentar, meinem Schwachsinn rechtgeben.
@Weisnix Du hast nichts verstanden. Dein Name ist Programm. Rede ich von Pullups an MOSI,MISO,SCK ? Nein, lass sie dort weg. Es funktioniert wenn man es RICHTIG macht.
Ausserdem währen des Resets sind keine 4MHz auf der CS Leitung. Schonwieder schwachsinn deine Rechnung. Erstmal schreiben alles Schwachsinn ist und dann später die Einschränkungen machen. Aber du hast natürlich immer Recht.
@Holder Und da du ja der SD-Karten Superheld bist, hast du bestimmt schon mal ins Datenblatt der SD-Karten geschaut.
Schau mal aus dem Fenster, die Sonne scheint. Geh spielen !
Ey Leute lasst es sein ... fast wie im Kindergarten, nur die Erzieherin fehlt. Hab mal überlegt :-) kann man einen Thread nicht immer wenn er richtig gelöst ist zusammenfassen, den Müll rausmachen und dann schreibgeschützt bereitstellen? Es gibt doch so viele Themen die immer wieder angesprochen werden, z.B. wie schließe ich eine SD-Karte an den ATMega. ;-) Dann bräuchte man sich bei Standard-Themen nicht mehr durch so viel Müll lesen. Also Quasi das Tutorial erweitern.
Na, dieser Thread ist aber gründlich entgleist. Was solls, zurück zum Thema. holger wrote: > Schliess einen Pullup an alle CS Eingänge deiner SPI Chips an. > Wenn der Atmega resettet hängen die nicht in der Luft und dein > ISP funktioniert auch. Bei mir machen das die 74HCT125 Multiplexer. > Sie trennen die Ausgänge der SPI Chips von MISO. Da ich von dem Multiplexer nix wusste, konnte ich das nicht einplanen. Ich habe auf einen solchen verezichtet, da die komplette Schaltung einschließlich ATmega32 mit 3.3V läuft. Da mein Player in einer Industrieanwendung steckt und diese ihn über einen Highspeed-Parallel Bus steuert, sitz dort dann ein XilinX CPLD mit 5V Core und 3.3V tolerant I/O dazwischen. > > Mit den oben genannten Dingen kann ich mit einem ATMega bei 10MHz > SPI Speed ohne Probleme MMC/SD Karten lesen und beschreiben. > Ohne Pullups ! Wo bitte schön steht im Datenblatt der AVR das > SPI ein Open Collector Bus ist ? Nirgends. > Steht aber im Datenblatt, dass der ATmega FET-Driven weak pullups mit ca. 22kR an den Ports besitzt. Einer von uns beiden hat jetzt etwas übersehen, was aber nicht schlimm ist, wir schauen einfach noch mal beide im Datenblatt nach, die Lösung wird darin zu finden sein, sonst hilft ein Anruf bei Atmel. Es ging mir aber bei den PullUps nicht nur um die MOSI/MISO/SCK, sondern vor allem um die im SPI-Mode nicht genutzten Pinne der SD-Card. Es gibt Hinweise aus anderen Threads hier, die sich damit befasst haben, dass es einzelne SD-Cards gibt, die nicht sauber in den SPI Mode starten, wenn die nicht genutzten Pinne in der Luft hängen. Ich habe diese Threads nicht mehr parat, da mein Projekt abgeschlossen ist und funktioniert. Dieses Forum hier war dafür ein ausgezeichnete Hilfe, ohne dass ich eine einzige Frage stellen musste. Ich habe den Hinweis gelesen, die Widerstände im Layout vorgesehen und nie wieder einen Gedanken daran vereschwendet. > Gelegentlich hab ich dann auch noch einen VS1001K oder einen > ENC28J60 am SPI Bus mit dran. Aber Pullups brauchte ich dafür > bisher noch nicht. Ich habe den VS1011 gewählt, weil dessen New-mode einfacher zu steuern ist und weniger Pinne benötigt. Da ich den Player mit den internen 8MHz des ATmega32 laufen lasse, spare ich einige Taktzyklen, weil ich BSYNC nicht nachführen muss. Das Modul spielt MP3 bis 192kb Bitrate, höhere Bitraten kann ich mal testen, aber damit war die Anforderung an den Player ohnehin um Faktor 2 übertroffen. Er muss nur Geräusche simulieren. So, ich denke das war jetzt einfach und sachlich. Du magst meinen Rat annehmen oder nicht. Du kannst aus den Erfahrungen anderer lernen oder hälst es, wie mit Deiner Software und machst alle Erfahrungen neu. Gruß, Ulrich
Die Programierpins (ISP) für den Mega128 liegen nicht auf MISO und MOSI! (-->PDI und PDO)
wäre jetz noch jemand bereit den Schaltplan so zu konfigurieren das es auch ein neuling sieht? Ich will es nicht bauen, versteh aber nur die hälfte von allem was ihr hier so schreibt! Mit Bild wäre es einfacher
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.