Forum: Mikrocontroller und Digitale Elektronik Suche passenden Mikrocontroller


von Björn N. (bniethammer)


Lesenswert?

Moin Moin!

Ich will ein kleines Board entwickeln, welches einen seriellen 
Datenstrom per UART aufnimmt und die ASCII Zeichen die darin enthalten 
sind auf einer Comapct Flash Card in einer Textdatei abspeichert. 
Zusätzlich soll ein Buffer enthalten sein, so dass wenn die Card gezogen 
(um sie in einem PC auszulesen) ist, die Daten in den Buffer landen und 
wenn die Card wieder reingesteckt ist den Buffer auf die Card schreibt.

Nun meiner Frage dazu. Einen UART hat ja jeder Controller mitlerweile. 
Aber wie schaut es mit Compact Flash aus? Welchen Controller könnt ihr 
mir empfehlen? Hab bis jetzt nur mal mit einem Hitachi in der Hochschule 
programmiert. Will aber auf Atmel umsteigen wegen der größeren Community 
und Controllervielfalt. Außerdem kann der Hitachi keine Compact Flash 
Cards anteuern. Wäre toll wenn das schon direkt mit dem Controller geht. 
Ohne zusätzlichen Treiberbaustein.

Vielen Dank schonmal für die Antworten.

Gruß Björn Niethammer

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Compact Flash ist ein wenig outdated. Mit ´ner SD-Card kann jeder 
größere ATMEGA AVR umgehen. Treiber braucht man da nicht, höchstens 
Pegelwandler von 5V auf 3.3V und umgekehrt. Der Verdrahtungsaufwand ist 
enorm geringer.

von Jörg B. (manos)


Lesenswert?

Die Sache mit dem Zwischenspeichern beim auslesen der Karte hängt ein 
wenig von der zu erwartenden Datenmenge ab. AVRs haben internen RAM und 
EEPROM. Wenn das reicht - gut, wenn nicht evtl. ein externes EEPROM 
(8Pin) dranhängen.

von Jörg B. (manos)


Lesenswert?

Evtl. würde ich auch noch eine Start/Stop Taste vorsehen um die Karte 
nicht während eines Schreibvorgangs abzuziehen... Ein paar LEDs würden 
die Sache dann noch abrunden.

von Björn N. (bniethammer)


Lesenswert?

Hallo Jörg!

Vielen Dank für die schnelle Antwort.

Wir wollten Compact Flash nutzen, da diese schon in anderen Systemen 
benutzt werden und somit die Karten schon zu Hauf in der Firma 
rumfliegen. Aber Ok. Wenn das mit SD Viel einfache rund schneller geht 
werde ich meinen Chef überzeugen das ich die nutzen will. Hab da gewisse 
Freiheiten.

Nun nochmal ein paar Fragen. Wenn ich mich nun für einen ATMega 
entschieden hab und ein Entwicklerboard suche, welches ist dann gut? Hab 
das STK500 gefunden. Weis aber nicht, ob das für SD Karten schon ein 
Interface hat. So das ich sie gleich ansprechen kann. Oder muss ich eine 
kleine Platine mir löten, wo ich eine Halterung für Sd Karten raufbau 
und die Pins nach außen führe, damit ich sie mit dem Entwicklerboard 
verbinden kann?

Bevor ich es vergesse. Es soollen Systemmeldungen einer Anlage 
protokolliert werden. Im Normalfall kommt vieleicht mal eine Meldung mit 
zwei Zeilen a 46 Zeichen pro Tag rein. Im Fehlerfall können es aber auch 
mal mehr werden. Diese Daten sollen über längere Zeit gespeichert werden 
und gelegentlich in den PC eingelesen werden und ausgewertet werden. 
Also wird wahrscheinlich in der Zeit wo die Karte nicht drinn steckt und 
im PC ausgelesen wird wenige bis keine Daten ankommen die 
zwischengespeichert werden müssen. ein paar KB Speicher sollten denke 
ich ausreichen.

von Jörg B. (manos)


Lesenswert?

Ein Mega8 hat 512Byte internes EEPROM was dann nur für 5 Einträge 
reichen würde - was wahrscheinlich zu knapp ist. Also einfach noch ein 
8-32KByte EEProm über SPI mit dranhängen, das reicht dann auch was 
länger.

Das STK500 hat keinen eingebauten  SD-Slot, müsste dann als Addon-Board 
dran gehängt werden.

Das einzige Board welches ich kenne mit eingebauten SD-Slot ist das 
EasyAVR
http://www.mikroe.com/en/tools/easyavr4/

Die bieten da sogar als fertiges Addon-Board auch ein CF-Adapter an :)
http://www.mikroe.com/en/tools/cf/

von Olaf (Gast)


Lesenswert?

> Aber Ok. Wenn das mit SD Viel einfache rund schneller geht
> werde ich meinen Chef überzeugen das ich die nutzen will.

Da du ja fuer eine Firmenmaessige Nutzung kaum woanders den Code
fuer MMC/SD und FAT kopieren kannst, wird SD gegenueber CF kaum einen
Entwicklungsvorteil haben.

Trotzdem wuerde ich MMC/SD nehmen weil sich das wohl langfristig
durchsetzen wird und man weniger Pins am Prozessor braucht.

Allerdings wirst du vermutlich eh einen Prozessor mit externen RAM
brauchen wenn der die Daten zwischenspeichern soll wenn der Anwender
die Karten wechselt.

> Weis aber nicht, ob das für SD Karten schon ein
> Interface hat.

Du kannst jeden Prozessor nehmen der ein SPI Interface hat. Oder 
notfalls
sogar das SPI Interface in Software nachbilden.

> Oder muss ich eine
> kleine Platine mir löten, wo ich eine Halterung für Sd Karten raufbau
> und die Pins nach außen führe, damit ich sie mit dem Entwicklerboard
> verbinden kann?

Ich fuerchte das musst du wohl. Zusatzlich zum Pegelwandler natuerlich 
wenn dein Prozessor nicht mit 3.3V laeuft.

Olaf

von Björn N. (bniethammer)


Lesenswert?

Auch dir Olaf danke für deine Antwort. Jörg hat aber schon ein 
eigentlich ideales Board in peto gehabt. Das EasyAVR von 
MikroElektronika ist denke ich für meine Zwecke genau richtig. Vielen 
vielen Dank für den Hinweis Jörg.

Ob nun SD/MMC oder Cf Cards über einen Adapter verwendet werden muss ich 
mir nochmal in Ruhe überlegen.

Tut mir leid für meine vielen Fragen. Aber das ist mein erstews Projekt 
welches ich komplett allein mache. Hatte vorher  nur fertige Umgebungen 
vorgefunden in der Hochschule. Hier ist nichts vorhanden. Muss mir alles 
selbst zusammensuchen und verdrahten.

Noch eine Verständnisfrage. Das EEProm kann ich nicht direkt anschließen 
an das Board, oder? Nach den Fotos zu urteilen fehlt jedenfalls der 
Sockel. Also würde ich eine kleine Platine nehmen die einfach nur die 
Datenleitungen und Spannungsversorgung evtl. mit Pegelwandler an den 
EEProm anschließt und als Pfostenstecker zum EasyAVR Board hinausführt. 
Mit einem Flachbandkabel würde ich dann das Board mit dem EEProm Board 
verbinden. Oder geht das so nicht?

von Jörg B. (manos)


Lesenswert?

Für das EasyAVR gibt es auch ein fertiges EEPROM Addon-Board ^^
http://www.mikroe.com/en/tools/eeprom/
Steht aber nicht bei, ob die Steckerbelegung für alle µC-Boards von denn 
passt.

Ein Board mit Sockel für EEPROM ist mir auch nur eines bekannt...
das "ATMEL Evaluations-Board Version 2.0" von Pollin hat einen Sockel 
für 24Cxx EEPROMs drauf. Kostet deutlich weniger, ist ein Bausatz aber 
wieder ohne SD oder CF Anschluss.

von Olaf (Gast)


Lesenswert?

> Tut mir leid für meine vielen Fragen. Aber das ist mein erstews Projekt
> welches ich komplett allein mache. Hatte vorher  nur fertige Umgebungen
> vorgefunden in der Hochschule. Hier ist nichts vorhanden. Muss mir alles
> selbst zusammensuchen und verdrahten.

Das hab ich mir schon gedacht. :-)

Noch ein Tip von mir. Unterschaetze den Aufwand nicht. Du kannst richtig
viel Arbeit in die Softwareentwicklung versenken wenn soetwas beim
Kunden laufen soll, weil es halt eine grosse Zahl an Speicherkarten
von verschiedenen Herstellern gibt die auch nochmal leicht anders
Formatiert sind.

> Das EEProm kann ich nicht direkt anschließen
> an das Board, oder?

Das sollte eigentlich kein grosser Akt sein. Die werden normalerweise 
auch
an SPI angeschlossen. Allerdings empfehle ich dir ein EEPROM mit I2C Bus
zu nehmen und den an einem anderen Pin als die SD Karte anzuschliessen, 
falls du dich fuer SD entscheiden solltest. Grundsatzlich hat beides
dassselbe Interface und es wuerde auch am selben Bus laufen, aber
wenn jemand da Karten raus oder reinsteckt behindert er damit unter 
umstaenden die Uebertragung zum EEPROM.


Olaf

von Björn N. (bniethammer)


Lesenswert?

Also dann muss ich ja bei EasyAVR nichts mehr in die Hardwarentwicklung 
an Gehinrschmalz stecken. Nur die Module kaufen und alles 
zusammenstecken. Klingt schonmal verlockend. was den Preis angeht denke 
ich ist das noch im Rahmen. Zahle ja auch nicht ich. ;-)

Mal sehen was die Sofwtwarenetwicklung dann noch für Tücken aufweist. 
Dachte eigentlich die Karte im FAT Format zu formatieren. Das sollte 
dann doch Herrstellerunabhängig bei allen Karten gleich anzusprechen 
sein. Ansonsten darf halt nur eine bestimmte Karte verwendet werden. 
erstmal um den Aufwand zu minimieren. Das kann man dann ja nach und nach 
erweitern auf andere Kartenherrsteler.

Und umso besser. So hab ich nicht nur ein Thema für die Studienarbeit 
sondern auch gleich für die Diplomarbeit.

Ich werde jetzt mal mit meinem Chef reden das alles bestellt wird. Halte 
euch dann auf dem laufenden wie die Entwicklung voranschreitet. Bei 
Fragen werde ich sicherlich auf dieser Webseite auch wieder posten.

Vielen Dank erstmal für die netten und hilfreichen und schnellen 
Antworten.

Gruß Björn

von Micha (Gast)


Lesenswert?

Schau mal bei www.Chip45.com

Die haben veschiedene Boards, ads Savvy128 hat einen SD-Slot, USB/RS232, 
RTC ... Du kannst das Borad per Bootloader flashen, d.h. Du brauchst 
keinen ISP mehr (eventuell für's erste mal, aber den gibts auch :-) Es 
gibt auch ein nettes Gehäuse & weiteres Zubehör. Das Savvy128 habe ichn 
und findes es ganz gut. Die anderen Module kenne ich noch nicht, 
scheinen aber auch nett zu sein.

Gruß, Michael

von Olaf (Gast)


Lesenswert?

> Mal sehen was die Sofwtwarenetwicklung dann noch für Tücken aufweist.
> Dachte eigentlich die Karte im FAT Format zu formatieren.

Naja, nicht du formatierst die Karte, sondern der Hersteller oder ein
Kunde an seiner Hardware.

Also FAT. Was denn? FAT12 (kleine Karten bis 16MB), FAT16, FAT32?
Erweiterung fuer lange Dateinamen? Unterverzeichnisse?
Superfloppy oder partioniert? Clustergroesse?

Du willst nicht alles unterstuetzen? Spaetestens der erste faule Kunde 
der seine Dateien nicht loeschen will sondern es fuer einfacher haelt 
die Karte einfach zu formatieren wird dann das falsche machen. :-)

Glaub mir, es ist relativ einfach soetwas so zu programmieren das man es 
selber benutzen kann, aber ein riesen Aufwand bis es in der Praxis 
zuverlaessig bei jedem laeuft.

Und bevor du einen Prozessor kaufst ueberleg dir mal wieviel Ram du fuer 
deine Implementation von FAT benoetigst....

> Und umso besser. So hab ich nicht nur ein Thema für die Studienarbeit
> sondern auch gleich für die Diplomarbeit.

Ich wuerde soetwas vom Schwierigkeitsgrad her fuer eine Diplomarbeit 
fuer zu einfach halten, aber vom Arbeitsaufwand her fuer zuviel. Es sei 
denn es muss nur gerade eben so in der Diplompruefung funktionieren und 
du kannst das Projekt vergessen sobald du dein Zeugnis in der Hand 
haelst. :-)

Olaf

von Björn N. (bniethammer)


Lesenswert?

Ich hab sowieso ein anderes Problem nach dem die Idee wohl gestorben 
ist. Es gibt mittlerweile einige Produkte auf dem Markt zu kaufen die 
genau die Aufgabe erfüllen die ich machen will. Also wozu da noch selbst 
enwtickeln wenn man es auch einkaufen kann?! Naja Spass hätte es gemacht 
sowas zu entwickeln. Und ich hätte schön meine Kenntnisse in 
Programmieren vertiefen können. Gerade die Geschichte wie schreibe ich 
Daten auf die CF oder SD oder MMC Karten. Werde mir dann wohl so Privat 
eine Board kaufen und in meiner Freizeit etwas basteln müssen. Die Firma 
wird das nicht unterstützen wenn es genau das gleiche Produkt schon zu 
kaufen gibt. Es sei denn ich finde noch eine Schwachstelle und kann 
etwas entwickeln was besser ist. Aber davon bin ich wohl noch weit 
entfernt.

Also vielen Dank an alle. Vor allem für den tollen Hinweis auf das 
EasyAVR Board, Jörg. Bin davon echt begeistert.

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.