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
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.
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.
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.
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.
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/
> 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
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?
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.
> 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
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
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
> 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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.