Hallo, ich habe mir hier aus diversen Threads eine Schaltung aufbauen können (gibt es ja zuhauf) anhand welcher ich mittels eines ATMega8 (5V) eine SD/MMC-Karte direkt ansprechen kann. Der Source ist von Ulrich Radig. Funktioniert auch alles bestens. Nachdem mir ein vernünftiger SD-Slot fehlte habe ich mir von eBay so ein Teil besorgt. Dieses Teil hat auch eine kleine Schaltung integriert damit zb. eine 5V Spannungsversorgung direkt verwendet werden kann. Die Signalleitungen müssen weiterhin mit Spannungsteiler auf 3,3V gebracht werden (ok, es gibt bessere wege) Laut Schaltplan des SD-Slots haben die Signalleitungen einen 10K PullUp auf 3,3V Auch diese Schaltung funktioniert, jedoch nicht wenn ich den ATMega mittels ISP frisch geflashed habe sondern erst nachdem ich das Olimex-Board vom Strom genommen habe und dann wieder eingeschalten habe. Ich vermute das hier die ISP-Schnittstelle in Verbindung mit dem SD-Slot Probleme macht. Mit der "ersten" Version, wo quasi die AVR-PINS über die Spannungsteiler direkt auf der SD-Karte verlötet waren, gab es überhaupt keine Probleme. Kann mir hier vielleicht jemand einen Wink mit dem Zaunpfahl geben? Liegt es möglicherweise an den 10K PullUp's des SD-Slots/SD-Schaltung? Bin mir nicht sicher ob PullUp's bei SPI notwendig/hilfreich sind. Die PullUp's sind eigentlich der einzige Unterschied zu der ersten Version. Danke! mfg Andreas SD-Slot: http://www.ebay.at/itm/SD-Memory-Card-Module-Slot-SPI-Reader-For-Arduino-ARM-MCU-3-3V-5V-CP09001-B41-/271327231335?pt=Wissenschaftliche_Ger%C3%A4te&hash=item3f2c5cfd67
@ Andreas (Gast) >Kann mir hier vielleicht jemand einen Wink mit dem Zaunpfahl geben? >Liegt es möglicherweise an den 10K PullUp's des SD-Slots/SD-Schaltung? Kann sein. Man benötig den ZWINGEND an SDO, alsio dem Datenausgang der SD-karte, weil der bis zu Initialisierung ein Open Drain Treiber ist. >Bin mir nicht sicher ob PullUp's bei SPI notwendig/hilfreich sind. Braucht man direkt nicht, allerdings ist einer am CS der SD-Karte sinnvoll, damit dieser beim ISP-Vorgang inaktiv bleibt. >PullUp's sind eigentlich der einzige Unterschied zu der ersten Version. Mach's richtg und vergiss dem Spannungsteilermurks und investier 1 Euro in gescheite Pegelwandler. Oder lass deinen uC auf 3,3V laufen.
Hatte auch einmal so ein Problem. Zur Reinitialisierung musste ich alle Pins der SD-Karte auf 0v ziehen, da sie sich sonst noch irgendwie versorgte.
Die Pegelwandler werde ich demnächst noch einbauen (Zuerst muss ich sie noch kaufen sonst hätte ich sie schon verwendet) Alle Pins der SD-Karte auf 0v ziehen würde auch funktionieren. Danke für eure Antworten, die haben mir jetzt neue Optionen aufgezeigt. lg Andreas
Hello Andreas, Andreas schrieb: > Ich vermute das hier die ISP-Schnittstelle in Verbindung mit dem SD-Slot > Probleme macht. Ich hatte mit meiner Platine (http://s.wangnick.de/doku.php?id=iot-basisstation) ein ähnlichen Problem. Laut SD-Kartenspezifikation (http://www.sdcard.org/downloads/pls/simplified_specs/part1_410.pdf) startet jede SD-Karte im SD-Busmodus. Im SD-Busmodus haben die Pins der SD-Karte eine andere Bedeutung als im SPI-Busmodus, und deshalb wird eine eingesteckte SD-Karte im SD-Busmodus immer die SPI-Neuprogrammierung über ISP stören. Da hilft auch nicht der CS-Pin, der ebenfalls im SD-Busmodus eine andere Bedeutung hat! Die SD-Karte wird durch eine bestimmte Kommandosequenz in den SPI-Modus versetzt. Das übernimmt bei dir die Funktion mmc_init() von Ulrich. Sobald die SD-Karte im SPI-Busmodus ist, wird sie bei CS HIGH (durch Pullup) nicht mehr den SPI-Bus stören. Sie verbleibt auch bis zum nächsten Powerzyklus garantiert im SPI-Busmodus. Siehe auch Beitrag "Atmega Eeprom/Flash andauernde Schreibfehler". HTH. LG, Sebastian
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.