Ein respektvolles "Hallo" an alle die Leute hier im Forum, über deren Beiträge und Projekte ich mich nun in die Verwendung von SD-Karten am AVR eingearbeitet habe. Über das "GPS-Logger" Projekt nach Holger Klabunde und die Standard-Anwendungen von Ulrich Radig habe ich mir nun so viel angelesen, das die Programmierung einer SD-Karte am AVR klappen sollte. Was ich aber nicht auf die Reihe kriege: Aus eBay habe ich mir ein günstiges STK500 besorgt. Außerdem habe ich von meinem Sohn, der in der Schule am myAVR mit dem Mega8 in die Welt der µC eingeführt wird, dessen myAVR Board mal näher angeschaut. Seit den Artikeln über die günstigen Boards von Pollin habe ich auch so ein Funk Board hier liegen. Also die Basishardware ist da. Weil ich ja die Pegel für die SD-Karten anpassen muß von 5 Volt auf 3,3 Volt für die Spannung an der SD-Karte und auch die Pegel an der SD nur 3,3 V sein dürfen, habe ich mir erst einmal die Lösung mit den Spannungsteilern angeschaut. Die Lösung mit dem 74Vxxx ist natürlich eleganter, aber den Käfer gibt es leider nur in SMD. Soll ich mir mit der EAGLE Freeware erst einmal eine Platine mit Pegelwandler entwerfen und von den Schülern in der Schule, wo mein Sohn ist, ätzen lassen und dann loslegen oder einfach einen Drahtverhau an einen SD-Karten Halter löten und damit starten ??? Helft mir mal für den Einstieg, das Thema FAT auf SD am kleinen AVR ist einfach zu interessant für mich, als das ich mir da viele Rückschläge wegen Hardwaremängeln einhandeln will. Danke euch schon einmal für ein "Getting Started". Ach ja: Ich habe Radio Fernsehtechniker gelernt, zu einer Zeit, als Radios und Fernseher noch auf dem Tisch mit Oszi und Multimeter Repariert wurden und nicht durch Modultausch. Der Wiedereinsteiger
Im STK500 kann man doch, wenn ich nicht irre, die Betriebsspannung für den Controller einstellen, oder? Wenn dein AVR mit 3.3V läuft, kannst die SD-Karte direkt anschliessen, da er dann passende Pegel an seinen Pins hat.
Achja, nochwas...der Atmega8 könnte für dein Vorhaben schon etwas Arg knapp bemessen sein. Besorg dir besser mal einen größeren Controller, z.B. der ATmega16 hat doppelt soviel Flash. Wär doch schade wenn dein SD-Karten-Lib deinen ganzen Speicher belegt und nix mehr für deine Anwendung bleibt,oder? ;) Und mit dem ATmega32 kannst du da durch das größere SRAM noch einige "Spielereien" wie FAT-Puffer usw. aktivieren, dadurch schonst du bei vielen Schreibzugriffen deine SD-Karte und um einiges fixer wird die Arbeit mit der Karte auch. Viel Erfolg!
Der Sohn verwendet den ATmega8, der Vater scheint noch unentschlossen - dann empfehle ich gleich den ATmega644 mit 4 kB SRAM für ca. 5 EUR. Der 'Drahtverhau' wird bei durchgängig 3.3 V nicht so wild, und man bleibt flexibel.
Der Vater hat schon bei der Bestellung der Widerstände und der anderen Sachen bei Reichelt einen ATmega 32 (3,3 V Version), einen ATmega16 (Auch die 3,3 V taugliche Version) sowie 2 ATmega644 gekauft. Daran liegt es nicht. Es ist nur so, das ich hier bei fast jedem Thread zum Thema SD-Karte am ATmega lese, das es Probleme gibt, wenn man mit hohen Taktraten arbeitet und z.B. nur die Radig Widerstand-Version benutzt. Fast jede erste Antwort beginnt mit: ... Wie hast Du Deine SD-Karte an den Controller angeschlossen ? Das ich mit FAT Buffer nur in größeren Mega arbeiten kann steht sehr ausführlich auf den Seiten von Holger Klabunde. Die Ulrich Radig Version ist einfacher, macht aber zur Bedingung, das ich meine SD-Karte nur mit einer einzigen Datei beschreiben kann. (Die muß dann vorher sogar achon auf der Karte sein.) Ich werde dann mal die 2 alten SD-Karten (128 MB Karten) aus den Digitalkameras rauspulen und an die SD-Kartensockel die Spannungsteiler anlöten. Außerdem werde ich noch einmal ganz gründlich die Anleitung zum STK500 durchlesen müssen, weil mit 3,3 V als Vtarget der ISP über RS232 (Alter Dell inspiron3800 Lappy ist mit Win98 als Entwicklungssystem da dran) nicht mehr klappt. Erst bei Vtarget ab 4,5 V kann ich wieder mit dem Controller kommunizieren. Der Wiedereinsteiger
Ich kenne Ihre Ansprüche nicht - ich kam mit Widerständen problemlos auf 5 MHz, und das reichte mir für den Anfang.
>Ich kenne Ihre Ansprüche nicht - ich kam mit Widerständen problemlos auf >5 MHz, und das reichte mir für den Anfang. Ist schon ein bisschen merkwürdig das immer nur die Jungs mit den Spannungsteilern hier rumjammern! Von denen die es richtig machen hört man kaum was. Spannungsteiler kann funktionieren, muss aber nicht. Das hängt auch extrem von den verwendeten Karten ab. Also entweder Pegelkonverter oder gleich uC auch mit 3,3V laufen lassen. Das macht am wenigsten Ärger. Bei 3,3V kann man dann aber nicht mehr Vollgas geben weil der uC nur mit niedrigerer Taktfrequenz laufen kann. Was man verwendet hängt als auch davon ab wie schnell das ganze sein soll. Wobei sich das wieder relativiert wenn man sich die Busy Zeiten von so manch einer SD/MMC anschaut.
an Holger Spannungsteiler funktioniert immer; man muss nur einen Kompromiss schließen bezüglich des Taktes. Und um schnell, einfach und ohne Aufwand zu ersten Erfahrungen und Resultaten zu kommen, kann das der richtige Weg sein. "The pursuit of excellence is gratifying and healthy. The pursuit of perfection is frustrating, neurotic and a terrible waste of time."
>Spannungsteiler funktioniert immer; man muss nur einen Kompromiss >schließen bezüglich des Taktes. Und um schnell, einfach und ohne Aufwand >zu ersten Erfahrungen und Resultaten zu kommen, kann das der richtige >Weg sein. Träum weiter! Irgend ein Vollidiot hat das mit den Spannungsteilern irgendwann mal ins Netz gestellt. Man kann SD Karten ja auch mit Dioden als Spannungsregler betreiben. Aber geht das auch mit JEDER Karte? Sowohl Spannungsteiler als auch Dioden als Spannungsregler für SD Karten sind Urban Legends. Dieser Mist sollte aus dem Netz gelöscht werden. Bei ein paar Karten geht das vieleicht sogar. Es geht aber nicht mit allen Karten. Es geht manchmal, aber nicht immer. Und genau aus diesem Grund ist es für Anfänger absolut ungeeignet. Anfänger brauchen eine stabile Basis.
Das mit den Spannungsteilern funktioniert am SPI schon, wenn man es denn nicht ganz so blöd anstellt. Was ist denn erstmal für Euch langsam? Ich betreibe ein DOGM-128 Display an einem 90CAN32 ohne jedes Problem bei den Signalen mit 8 MHz, wobei mein SLCK und MOSI erst über einen 0R0 in 0603 und dann noch über eine Steckverbindung gehen, bevor dann auf der Display-Adapter-Platine die Spannungsteiler sitzen. Das sind Widerstände in 0805, 4k7 in Reihe, 6k8 gegen GND. Das Display läuft auf 3,0V. Die Anstiegs-Zeit liegt bei etwa 15 ns. Das sollte auch bei 15 MHz noch laufen, dafür müsste ich den 90CAN32 aber auch mit 30 MHz Takten... Wenn man das in einem Frickel-Aufbau mit bedrahteten Teilen und 20 cm Leitung am SD-Sockel macht, sieht die Sache halt anders aus. Edit: >Man kann SD Karten ja auch mit Dioden als Spannungsregler betreiben. >Aber geht das auch mit JEDER Karte? Die Frage war ja wohl eher rethorisch gemeint aber was soll's. Dioden funktionieren garnicht mit SD-Karten da deren Durchlass-Spannung vom Strom abhängig ist und die Stromaufnahme der Karten zwischen ein paar µA in Ruhe und etwa maximal 100mA beim Schreiben liegt. Also verletzt man ziemlich sicher eine der Spannungs-Grenzen.
Hallo Wiedereinsteiger, falls eine Fertiglösung in Betracht kommt: http://www.chip45.com/Savvy128 ATmega128, SD-Karte und Pegelwandler sind drauf, dazu USB, RS232, Spannungsregler, etc. Ein paar Beispielprogramme gibt's als Download. Viele Grüße, ER!K -- http://www.chip45.com
> Dioden funktionieren garnicht mit SD-Karten da deren Durchlass-Spannung > vom Strom abhängig ist ... Die LED mit einer Grundlast versehen, sagen wir 1 kOhm parallel zur SDCard, und schon funktioniert sogar das, und man hat gratis einen simplen Aktivitäts-Indikator. Aber für unseren Rundfunk/Fernsehtechniker sind das alles sicher Trivialitäten.
> Und die LED hält die 100 mA aus?
Laut Datenblatt sollte sie - und hat es jedenfalls ausgehalten während
der paar Tage, in denen ich die ersten Gehversuche machte.
Was ich zum Ausdruck bringen wollte: Es ist ein Unterschied, ob ich
Samstag nachmittags im Hobbykeller vor der Bastelkiste stehe oder Montag
morgens im Labor sitze mit einem Budget, das die Anlieferung per Kurier
erlaubt.
Oder allgemein: ich muss abwägen, über welche Resourcen ich verfüge und
welche Ziele ich verfolge - angesichts der vielen möglichen Varianten
auf einem bestimmten Lösungsweg als dem einzig wahren zu beharren, zeugt
von einer gewissen geistigen Schlichtheit.
Und über all dem scheint uns unser 'Gastgeber', der Wiedereinsteiger,
abhanden gekommen zu sein.
Tja, ohne Oszi und mit minimaler Beschaltung fält dann dummerweise auch die Diagnose im Fehlerfall recht schwer. - Läuft der Controller? - Ist die SPI richtig initialisiert? - Gibt es kalte Lötstellen? - Schwingt mein Regler? - Sind Signalflanken vielleicht verschliffen? - ... Einfach aufgrund der großen Zahl von schwer findbaren Fehlern bei den ersten Schritten sollte man sich das Leben nicht unnötig schwer machen. Sonst passiert es schnell das aufgrund von Frust die ersten Schritte auch die letzten werden. ;)
>Einfach aufgrund der großen Zahl von schwer findbaren Fehlern bei den >ersten Schritten sollte man sich das Leben nicht unnötig schwer machen. >Sonst passiert es schnell das aufgrund von Frust die ersten Schritte >auch die letzten werden. ;) Wahr, wahr. Und auch hier gilt die Frage nach der Zielsetzung: will (oder muss) ich möglichst schnell und einfach etwas zum Laufen bringen, oder will ich, auf der anderen Seite des Spektrums, mir eine breite Basis von Grundwissen und -fähigkeiten aneignen, wozu es dann auch gehört, mit einem gerüttelt Maß an Frustration umzugehen. Letzteres scheint der ICH-ALLES-SOFORT-Generation besonders schwer zu fallen, aber, wie gesagt, schlussendlich eine Frage der Zielsetzung.
senex24 wrote: > Letzteres scheint der ICH-ALLES-SOFORT-Generation besonders schwer zu > fallen, aber, wie gesagt, schlussendlich eine Frage der Zielsetzung. Wenn man sich vor augen führt was heute so auf dem Markt kommt täglich überschätzt man sich leicht. Man muss echt so ein Vorhaben genau durchdenken. Es gibt hunderte Wege zum Ziel aber jeder birgt einen Hplperstein. Wie oft hab ich mir schon gedacht scheiße auf das Konzept usw. An dem Punkt muss man sich hald einfach mit einem Fachbuch(wer keine Bibliothek mit solchen Büchern hat kann im inet schauen) zurückziehen oder jemanden Fragen wie er das anpacken würde. Da fällt mir wieder ein einer meiner Freunde wollte mal ne SATA Festplatte mit einem PIC ansteuern. MFG Patrick
@Senex: Das ist nicht nur im Hobby-Bereich so. Oft kommen Entwickler die schnell etwas zusammen frickeln, was sie nicht verstanden haben, gerade in Firmen wo Fliessband-Arbeit vorherrscht besser an als welche die sich zunächst mit den Grundlagen beschäftigen. Man kann schnell etwas vorzeigen um Kunden azulocken und wenn dann irgendwann das Böse erwachen kommt, wechselt man einfach den Frickel-Knecht. ;)
Die Versorgungsspannung der SD-Karte habe ich nun mit einem LM317T (Lag hier noch so rum) gemacht. Auch wenn es viele nicht für möglich / gut halten, ich habe erst einmal auf einer Lochraster den Spannungsteiler gebaut und den Mega16 auf dem STK 500 mit 11,0592 MHz und Quarz im Sockel des STK500 gemacht. Ich habe dann mal mit dem Oszi die Flanken nachgeschaut (Irgendwer weiter oben hat das ja beschrieben, das man da nachschauen soll beim Spannungsteiler). Die sehen ja nach 5 cm Leitungslänge mit 10pol. Stecker am STK 500 suamäßig bis sinusförmig aus. Also muß ich wohl doch nach Klabunde (Ich glaube, da war es) diese Adapterplatine mit den 2 74ern bauen. Ich melde mich dann (hoffentlich) später mal mit Codefragen und sonstigen Problemchen mit der SD-Karte bei euch. Der WIedereinsteiger
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.