Forum: Mikrocontroller und Digitale Elektronik SD-Karte an Atmega48/88


von Peter Binder (Gast)


Lesenswert?

auf diesem link

http://www.ulrichradig.de/home/index.php/avr/mmc-sd

wird eine SD-Karte an einen Atmega32 angeschlossen. Funktioniert das 
auch mit einem Atmega88 mit der SD-Karte?

von user (Gast)


Lesenswert?

im prinzip ja, es kann nur sein das der Flash/RAM des µC zu klein ist

von µC-Bastler (Gast)


Lesenswert?

Bei anderen Projekten läuft SD-Software sogar auf einem ATmega8.
Also nur Mut.
http://www.dharmanitech.com/2009/01/sd-card-interfacing-with-atmega8-fat32.html

von August (Gast)


Lesenswert?

µC-Bastler schrieb:
> Bei anderen Projekten läuft SD-Software sogar auf einem ATmega8.
Aber Du hast schon gesehen, das da relativ schnell auf einen ATmega32 
gewechselt wurde. Hier der Grund:
1
Right now flash is 99.9% full
Abgesehen davon ist da m.E. im Schaltplan ganz schön gemurkst worden 
(z.B. ATmega IO's mit 5V gehen direkt auf die SD-Karte)

August

von µC-Bastler (Gast)


Lesenswert?

August schrieb:
> Abgesehen davon ist da m.E. im Schaltplan ganz schön gemurkst worden

Woraus entnimmst du, dass der µC mit 5V betrieben werden soll. VCC ist 
im Schaltplan mit 3V3 angegeben.

von Peter Binder (Gast)


Lesenswert?

liegt das dann an der Größe des Datenpuffers, den man zum Schreiben auf 
die SD-Karte im uC braucht, der dann so viel Speicher verbraucht? 
Angenommen, man hat nur alle 30 Sekunden einen Temperaturwert, der 
gesichert werden soll, oder wäre das auch schon zu viel?

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Bei ner SD Karte musste nen Cluster von 512byte zwischenspeichern und 
jetz guck mal wie groß der RAM deiner Vorschläge is.
OPS!

Also brauchste AVRs mit 1kB aufwärts an RAM.

von Peter Binder (Gast)


Lesenswert?

Martin Wende schrieb:
> Bei ner SD Karte musste nen Cluster von 512byte zwischenspeichern und
> jetz guck mal wie groß der RAM deiner Vorschläge is.
> OPS!

Dass heisst auch - theoretisch - ich sammel erst so viel Messwerte, bis 
der 512byt-große Cluster voll ist und uebertrage den dann in einem Zug 
zu der SD-Karte?

von Spess53 (Gast)


Lesenswert?

Hi

>Also brauchste AVRs mit 1kB aufwärts an RAM.

Esgibt ja auch noch ATMega168/328.

MfG Spess

von Jim M. (turboj)


Lesenswert?

> Bei ner SD Karte musste nen Cluster von 512byte zwischenspeichern [...]

Das ist nicht in jedem Fall nötig: Petit FAT FS 
(http://elm-chan.org/fsw/ff/00index_p.html) braucht keinen Sektor Puffer 
- dafür braucht man aber SPI Funktionen mit Offset.

Ein Sektor Puffer macht aber vieles leichter, besonders beim Schreibem 
von Daten auf die SD.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Peter Binder schrieb:
> Dass heisst auch - theoretisch - ich sammel erst so viel Messwerte, bis
> der 512byt-große Cluster voll ist und uebertrage den dann in einem Zug
> zu der SD-Karte?

Kannst auch 512byte auslesen, ein Bit ändern und wieder raufschreiben ;)
Aber ja so kann mans machen, ist dann eben nur ohne Dateisystem.
Wenns am PC shcnell auslesbar sein soll, wird das Dateisystem noch oben 
drauf benötigt.

Brauchst aber trotzdem mehr als 512byte RAM, hast ja noch Systemvaiablen 
und den STack im RAM rumgeistern.

von August (Gast)


Lesenswert?

µC-Bastler schrieb:
> August schrieb:
>> Abgesehen davon ist da m.E. im Schaltplan ganz schön gemurkst worden
>
> Woraus entnimmst du, dass der µC mit 5V betrieben werden soll. VCC ist
> im Schaltplan mit 3V3 angegeben.

Von welchem Schaltplan reden wir?

In dem ersten Schaltplan mit dem ATmega8 ist zwar alles auf 3.3V, aber 
AVCC ist nicht beschaltet und der MAX232 ist nicht für 3.3V ausgelegt. 
Stattdessen könnte man dafür einen MAX3232 nehmen.

Im Schaltplan mit der Versionsnummer 2.4 werden zwar 5V und 3.3V 
erzeugt, aber der AVR wird mit 5V Spannung versorgt. Damit sind auch die 
Ausgänge (IO-Pins) auf einem Pegel von 5V. Und die gehen ohne 
Pegelwandler direkt auf die 3.3V Eingänge der SD-Karte. Das ist Murks.

August

von µC-Bastler (Gast)


Lesenswert?

August schrieb:
> Von welchem Schaltplan reden wir?

Na, von dem SD-Card Interface am ATmega8.

Mit dem MAX232 hast du´wohl Recht. Der Rest der µC-Beschaltung ist 
sowieso rudimentär, da etliche Dinge nicht eingezeichnet sind 
(Beschaltung von AVCC, AGnd, Reset). Wegen der Genauigkeit der Baudrate 
der RS232 sollte man besser auch einen ext. Quarz vorsehen.

von August (Gast)


Lesenswert?

µC-Bastler schrieb:
> Na, von dem SD-Card Interface am ATmega8.
Ok. Wird sicher trotzdem knapp im Flash. Je nachdem, was Du noch alles 
damit machen willst.
Trotzdem darauf achten, daß bei 3.3V die maximale Taktfrequenz auf 16 
MHz begrenzt ist (siehe Datenblatt ATmega88).

August

von Peter Binder (Gast)


Lesenswert?

Spess53 schrieb:
> Esgibt ja auch noch ATMega168/328.

Hab ich gesehen. Aber diese uCs sind alle sooooo klein, die kann ich 
nicht mehr auf meinem Steckbrett draufstecken, ausserdem kann ich so 
kleine Sachen garnicht löten. Idealerweise muss ich mir dann einen 
solchen uC bestellen, der schon irgendwie auf einer Platine draufgelötet 
ist und wo Kontaktstifte zum Ausgang vorhanden sind.

Aber mit meinem AVRISP mKII müsste ich diese größeren ja auch 
programmieren können?

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Die gibs auch als DIL28, wie den Mega8.

von Peter Binder (Gast)


Lesenswert?

ich hab grad nochmal in einer Liste geschaut:

Atmega88:

BootMemor 8, DataMem 1024, eeprom 512

Atmega168
BootMem 16, DataMem 1024, eeprom 512


Also wäre der Atmega168 wirklich "besser" für SD-Schreibkram geeignet? 
So viel mehr Speicher DataMem hat der uC doch garnicht.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Peter Binder schrieb:
> Also wäre der Atmega168 wirklich "besser" für SD-Schreibkram geeignet?
> So viel mehr Speicher DataMem hat der uC doch garnicht.

Beim Atmega88 und Atmega168 ist die RAM-Größe identisch. Wenn Dir 1K 
nicht reicht, nimmst Du halt den Atmega328, der hat 2K RAM. Ausserdem 
bekommt man den 328er oft schon billiger als den 168er... liegt wohl an 
den vielen Arduinos draußen.

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
Noch kein Account? Hier anmelden.