Forum: Mikrocontroller und Digitale Elektronik Projekt: Mikrocontroller mit SD-Karte


von Rene M. (gozu)


Lesenswert?

Hi,

für meine Schule muss ich ein Projekt mit einem Mikrocontroller machen 
und dazu programmieren lernen. Nun habe ich mich ein wenig in Assembler 
eingelesen und hab auch einige C Kenntnisse (allerings nicht auf 
Mikrocontroller bezogen). Mit dem Mikrocontroller muss ich dann eine 
Verbindung zum PC über USB herstellen können (dazu benutzen wir einen 
eigenen Chip) eine SD-Karte beschreiben können, eine RTC auslesen können 
und einen Messchip auslesen bzw. ansteuern können. So nun wollte ich 
euch Fragen, ob ich dazu am besten das ganze in C oder in Assembler 
schreiben sollte. Weil einlesen müsste ich mich sowieso in beide 
Sprachen... Und wisst ihr vielleicht, wo ich gute Tutorials dafür 
herbekommen könnte? Also z.b. für das schreiben der SD-Karte.
Hab mir bis jetzt eigentlich nur das Datenblatt und die Befehle vom 
Mikrocontroller (atmega8) durchgelesen und die Tutorials hier auf der 
Seite zur hälfte.

Wäre nett, wenn mir hier jemand helfen könnte! Danke schonmal.

von holger (Gast)


Lesenswert?

>für meine Schule muss ich

Das ist aber eine anspruchsvolle Schule!
Programmieren tust du das am besten in C.

Wie lange hast du Zeit dafür?

von !!!!!! (Gast)


Lesenswert?

Abgabetermin ist 25.09.2008 8Uhr.

von Teplotaxl X. (t3plot4x1)


Lesenswert?

http://elm-chan.org/docs/mmc/mmc_e.html
Da gibts viele Infos über SD-Karten schön aufbereitet :)

von Matthias (Gast)


Lesenswert?

Das USB Stack musst du aber nich selber schreiben oder?

von holger (Gast)


Lesenswert?

>Das USB Stack musst du aber nich selber schreiben oder?

Nein, muss er nicht. Er benutzt einen PC, das ist der Host.
Darauf läuft der Stack. Am uC hängt "der eigene Chip".
Das ist doch völlig ok so.

von Matthias (Gast)


Lesenswert?

na denn gehts ja... trotzdem ganz schoen happig fuer ne schule.. obwohl: 
was fuer ne schule ist das wohl?

den ChanN link kann ich nur empfehlen, das taugt echt was

von J. K. (rooot)


Lesenswert?

musst du die sd-ansteuerung/filesystem selbst schreiben?

wenn nicht würd ich die von 
http://www.holger-klabunde.de/avr/avrboard.htm empfehlen.

Ich schätz mal du gehst in Ö auf ne HTL und das ist ein (typisches) 
Ingeneurs/Diplom Projekt. (Maturaprojekt, Abi-Arbeit) Abgabe in Mai !?

mfg
J.K

von loooooooooool (Gast)


Lesenswert?

Lass uns das doch mal zusammenfassen: Du hast -->1!!!<-- Tag Zeit um µC 
programmieren zu lernen. Dazu auch noch verschiedene Zusatzteile 
ansteuern, wofür du nur für USB schon alles hast?

Irgendwie klingt das so gar nicht realistisch. Entweder du verarscht uns 
hier kräftig, bist einfach nur zu faul um selbst ein Programm zu 
schreiben, oder die Lehrer auf deiner Schule haben einen Schaden.

Was immer es auch ist: Versuchs mit dem AVR-GCC Tutorial. Da du ja schon 
einige Kenntnisse zu C hast, dürfte dir das leichter fallen. Ka was du 
schon zur Hälfte durch hast, aber das ist auf jeden Fall sinnvoll.

Und viel Spaß die ganze Nacht über :-D

von J. K. (rooot)


Lesenswert?

Ich glaub das mit dem Abgabetermin war ein blöder Troll der sich !!!!!! 
genannt hat.

PS.: Ich bin immer noch für das Maturaprojekt.

mfg
J.K

von loooooooooool (Gast)


Lesenswert?

Wenn er es wirklich nicht selbst war, Sry. Sonst siehe mein vorheriges 
Post.

Trotzdem finde ich das Projekt immer noch komisch. Was ist das für eine 
Schule die einfach sagt: Hier hast einen µC und ein bisschen Hardware. 
Du hast TAGE Zeit um das Projekt abzugeben.
Sollten die Lehrer nicht zumindest mal Ansatzweise erklären wie das 
funktioniert / wie man programmiert?

von holger (Gast)


Lesenswert?

>PS.: Ich bin immer noch für das Maturaprojekt.

Ist ja egal. SD Karte beschreiben und ATMega8 ist nicht
wirklich eine gute Idee. Da könnte das RAM ganz schön knapp
werden. Es sei denn man verzichtet auf ein FAT Dateisystem
und beschreibt die Karte roh. Was der "Messchip" nun ist wäre
auch noch interessant. Dann noch die Aufzeichnungsrate vom
"Messchip". Bei SD Karten kann man sich ganz schnell selbst
ins Bein schiessen wenn hohe Schreibraten erforderlich sind.

von J. K. (rooot)


Lesenswert?

Wo steht was von Tagen. Hab ich das überlesen?

Wenn nicht nennt sich die Schule HTL. http://de.wikipedia.org/wiki/Htl

ein bisschen was lernt man schon und man hat auch genug Zeit, manchmal 
kennen sich auch die Lehrer aus.

Das Problem bei solchen Projekten ist, dass sie einfach überschätzt 
werden und 80% der Arbeit in 20% der Zeit (letzten Wochen) erledigt 
wird. Kenne da viele (negative) Bsp. :-)

Das Projekt lässt sich auch sicher realiserten. Hab (zufällig) sogar ne 
Diplomarbeit(von so nem Maturaprojekt) herumliegen wo ziehmlich genau 
das gemacht wurde (MEGA128 + RTC-IC + SD-Karte)

mf
J.K

P.S: Jetzt interresierts mich auch ob das wirklich ne HTL ist.

von J. K. (rooot)


Lesenswert?

holger wrote:
>>PS.: Ich bin immer noch für das Maturaprojekt.
>
> Ist ja egal. SD Karte beschreiben und ATMega8 ist nicht
> wirklich eine gute Idee. Da könnte das RAM ganz schön knapp
> werden. Es sei denn man verzichtet auf ein FAT Dateisystem
> und beschreibt die Karte roh. Was der "Messchip" nun ist wäre
> auch noch interessant. Dann noch die Aufzeichnungsrate vom
> "Messchip". Bei SD Karten kann man sich ganz schnell selbst
> ins Bein schiessen wenn hohe Schreibraten erforderlich sind.

Ram wird knapp geht aber, Problem wird der Flash. Ich würd nen einen 
MEGA32 verwenden.

von holger (Gast)


Lesenswert?

@ J. K.

>Ram wird knapp geht aber, Problem wird der Flash. Ich würd nen einen
>MEGA32 verwenden.

Ich auch. Aber was soll man machen wenn die Hardware
vorgegeben ist :(

von J. K. (rooot)


Lesenswert?

den Source will ich haben wo SD in nen MEGA8 hinenpasst und man dann 
noch andere Sachen machen kann. (RTC,messen ...)

Für mich klang es aber eher, dass er den MEGA8 nur zum Lernen verwendet.

Naja, warten wir halt seine antworten ab bevor wir hier noch wild 
herumspekulieren.

mfg
J.K

von Benedikt K. (benedikt)


Lesenswert?

J. K. wrote:
> den Source will ich haben wo SD in nen MEGA8 hinenpasst und man dann
> noch andere Sachen machen kann. (RTC,messen ...)

Bitte sehr:
http://elm-chan.org/fsw/ff/00index_e.html

Bei mir läuft ein mega8 in einem mp3 Player mit SD Karte. Der RAM wird 
eher voll als der Flash.

von J. K. (rooot)


Lesenswert?

Ok, ich sag nichts mehr. :-)

Nein find ich toll, muss ich mir mal näher ansehen.

mfg
J.K

von Martin (Gast)


Lesenswert?

@J. K.
> Wo steht was von Tagen. Hab ich das überlesen?

1.Beitrag : Datum: 24.09.2008 17:38

> Abgabetermin ist 25.09.2008 8Uhr.

Ist aufgerundet 1Tag.

von Rene M. (gozu)


Lesenswert?

So danke mal für die vielen und schnellen Antworten!!
Zeit habe ich natürlich viel mehr, Abgabetermin ist im Mai, allerdings 
sollten wir schon viel früher fertig sein, damit wir einen Puffer haben, 
außerdem müssen wir ja auch Dokumentieren. Also Jänner-Februar sollte 
das ganze fertig sein.
Und ja ich komme aus Österreich und aus einer HTL =)

Die Schaltung soll am Ende folgendes machen: Ein Stromstecker wird an 
eine Steckdose angesteckt und an die Schaltung kann man dann irgend ein 
anderes elektrisches Gerät normal anstecken... (z.b. einen Kühlschrank) 
So und nun misst die Schaltung über den Messchip Strom und Spannung und 
berechnet dann intern andere Werte (Wirkleistung,Scheinleistung, Cosinus 
Phi, usw.) Diese Werte speichere ich dann über den Mikrocontroller auf 
einer SD-Karte ab, damit ich die Daten später über USB zum PC schicken 
kann und dort dann auswerten kann. Vorgegeben haben wir eigentlich nur 
den atmega8 (Also den, der mit 8 bits rechnen kann... Für den 
Programmspeicher könnten wir aber auch dann einen mit 32k Bytes 
nehmen...) und den Messchip. Weiß jetzt leider den Namen bzw. die Nummer 
von dem Messchip nicht, könnte sie aber morgen posten, wenn es jemanden 
interessiert.
Könnt ihr mir vielleicht auch noch irgend ein gutes Buch empfehlen, da 
die Mikrocontrollerprogrammierung doch schon sehr interessant ist.

ps: Klar haben wir auch einen Lehrer für das Projekt zugeteilt, den wir 
Fragen können, aber wir sollen hauptsächlich die Informationen selbst 
sammeln und suchen.

von Steffen (Gast)


Lesenswert?

Wenn die Daten so und so über USB übertragen werden, kann auch ein 
einfacher SPI oder I2C Flash verwendet werden. Sollte deutlich einfacher 
werden als eine SD-Karte.

Interessantes Projekt. Vielleicht statt einer RTC ein DCF77 Modul 
verwenden. Dann brauchst du vielleicht keine Pufferbatterie und musst 
die Uhrzeit nicht immer neu stellen. Dauert dann aber immer eine Weile, 
bis das Gerät wirklich einsatzfähig ist. Empfang sollte auch ganz gut 
sein ;-)

Steffen.

von Rene M. (gozu)


Lesenswert?

DCF777 wollten wir auch zuerst nehmen, Lehrer meinte aber, dass man 
nicht überall Empfang hat.... Also deshalb RTC.

Das mit SPI und I2C Flash werde ich mir noch anschauen und durchlesen, 
danke.

von J. K. (rooot)


Lesenswert?

>Und ja ich komme aus Österreich und aus einer HTL =)

wusst ichs doch. Warum erkennt man das immer so schnell? (geht mir auch 
immer so ;-) )
Hab sogar zufällig grad ne Diplomarbeit daheimliegen die fast das 
gleiche gemacht haben. Und nein die kann ich nicht veröffentlichen.

>Das mit SPI und I2C Flash werde ich mir noch anschauen und durchlesen,
>danke.

SD - Kart ist schon besser. Man kan die Daten in ein Excel/openOffice 
Dokument speichern und am Ende die Leistungsaufnahme/Energieverbrauch 
anzeigen(Diagramme und so weiter). Das über USB dann übertragen find ich 
nicht so schön, aber na gut.

SD-Liberys gibt es ja genug (ich geh mal davon aus das du welche 
verwenden darfst), sind auch nicht schwer (auch wenn zig Forumsbeiträge 
was anderes vermuten lassen).

mfg
J.K

von nick (Gast)


Lesenswert?

> atmega8 (Also den, der mit 8 bits rechnen kann... Für den
> Programmspeicher könnten wir aber auch dann einen mit 32k Bytes
> nehmen...)

Alle AVRs sind 8-Bit µC. Wenn dir nur die 8-Bit vorgegeben sind, nimm 
möglichst einen größeren ATmega. Dadurch hast du mehr Möglichkeiten und 
es ist auch mit dem Code einfacher ;-)
Siehe auch http://de.wikipedia.org/wiki/Atmel_AVR

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.