Hy,
suche schon seit Tagen einen Mikrocontroller von Typ PIC oder Atmel, bin
hier aber noch nicht fündig geworden!
Folgendes habe ich mit dem Mikrocontroller vor:
Ich will Daten über 2 serielle Schnittstellen einlesen und diese für 1
Tag auf dem internen Speicher des Mikrocontrollers speichern (ein paar
kB). Diese will ich dann am Ende des Tages um eine gewisse Uhrzeit
(24Uhr) über eine USB Schnittstelle auf einen USB-Stick speichern.
Ich bin leider auf dem Mikrocontroller Gebiet ein wenig unerfahren, wäre
also sehr dankbar wenn ihr mir weiterhelfen könntet!
lg
Daniel
@ Daniel (Gast)
>Folgendes habe ich mit dem Mikrocontroller vor:>Ich will Daten über 2 serielle Schnittstellen einlesen und diese für 1>Tag auf dem internen Speicher des Mikrocontrollers speichern (ein paar>kB). Diese will ich dann am Ende des Tages um eine gewisse Uhrzeit>(24Uhr) über eine USB Schnittstelle auf einen USB-Stick speichern.>Ich bin leider auf dem Mikrocontroller Gebiet ein wenig unerfahren, wäre>also sehr dankbar wenn ihr mir weiterhelfen könntet!
Dann wirst du damit wohl eine wenig überfordert sein. Daten per uC auf
einen USB-Stick schreiben ist alles andere als trivial. Es sei denn, du
willst ein paar tausend Euro für fertige Software ausgeben. Nimm lieber
einen Mini-PC, da kannst du einfach Daten auf den USB-Stick schreiben.
Der kann auch gleichzitig deine Daten einlesen und speichern.
MFG
Falk
Hi Daniel,
da du quasi 3 Schnittstellen benötigst (2xRS232 und 1xUSB) würde ich dir
raten, nen ATmega zu nehmen.
Mein Vorschlag:
Eine RS232-Schnittstelle reicht aus (zwei hast du beim ATmega64 drin).
An die Leitungen Rxd und Txd am uC hängst du jeweils nen 4:1 MUX. Mit 2
zusätzlichen Steuerleitungen kann der uC dann die Schnittstelle
auswählen. Von dem MUX aus, gehst du 2x an nen MAX232 für deine
RS232-Verbindung und 1x an nen FTDI-Chip (RS232 zu USB - Converter).
Wenn der interne Speicher nicht ausreicht, nimmst du entweder nen
seriellen Speicher über SPI dazu. Oder schaust dir mal beim ATmega64 die
Speichererweiterung an. (siehe SRAM im AVR-Tutorial auf dieser Seite)
2.Vorschlag:
Nimm nen ATmega64 und verwende beide RS232-Schnittstellen. Den FTDI-Chip
(RS232-Eingang) steuerst du über einen Port und nen Software UART an.
(kannst ja mal googeln, da gibts genug)
Alles geklärt?
Gruß Alexander
Upps, hab gerade erst gelesen, dass du die Daten nicht an nen PC
übertragen willst. Also USB-Stick ist echt heftig. Würde ich eher
vergessen.
Aber ne gute Idee trotzdem. Kauf dir nen USB-Stick mit integrierter
Flash-Speicherkarte oder einfach ein Kartenlesegerät (10€ im Supermarkt)
die ist einfacher zu beschreiben. Dann hast du auch keine Probleme mit
dem Speicher :-)
Alexander
@ Daniel (Gast)
>die Daten müssen nicht unbedinngt auf einen USB-Stick gespeichert>werden, könnte die Daten auch auf einen anderen Medium speichern z.B.>mit einem Kartenlesegeräte auf SD-Karte.
Das ist schon einfacher. aber für jemanden mit wenig uC Erfahung IMHO
immer noch entschieden zuviel.Auch wenn es fertige Quellen für
SD-Kartenzugriff und FAT16 gibt.
>Dieses Datenkopierbox gibt es fix und fertig bei Conrad zu kaufen:>http://www1.at.conrad.com/scripts/wgate/zcop_at/~f...
Der Link geht nicht, poste mal die Bestellnummer.
MFG
Falk
Hmm.
Ich wüsste jetzt nicht, wie so eine Box dein Problem
vereinfachen sollte.
Wenn der Atmel die Daten auf eine SD Karte schreibt und
sie der PC von der Karte wieder runterliest, dann reicht
das doch. Wozu noch mal umkopieren?
Zwei Dinge könnten dir weiterhelfen, wenn du jetzt doch so USB fixiert
bist einmal:
Conrad: 411210
oder aber sogar:
http://www.elektor.de/jahrgang/2006/november/usb-stick-mit-arm-und-rs232.64526.lynkx
Beides vereinfacht dir die Angelegenheit doch deutlich, wobei die
Elektorlösung,vielleicht sogar etwas overkill ist, andererseits, könnte
der Arm vielleicht alle deine Aufgaen gleich noch mit erfüllen. -wiebel
dachte mir, dass ich mir mit dieser Datenkopierbox einige
Programmierarbeit erspare!
Damit die Daten dann auch ordentlich auf der SD-Karte angeordnet sind
würde ich gerne die Daten pro Tag in einen Ordner speichern, laut meinen
bekannten erstellt diese Datenkopierbox diesen automatisch.
Daniel wrote:
> Damit die Daten dann auch ordentlich auf der SD-Karte angeordnet sind> würde ich gerne die Daten pro Tag in einen Ordner speichern, laut meinen> bekannten erstellt diese Datenkopierbox diesen automatisch.
Was bringt dir das?
Jede FAT-Software die du benutzen willst, besitzt Aufrufe um
ein Directory zu erzeugen.
Du setzt diese Box also nur dazu ein um einen einzigen (!)
Aufruf in eine Bibliothek einzusparen. Einen Aufruf einer
Funktion, die du aber im Programm hast.
Dafür wird das Handling dann doch deutlich komplizierter.
Dein µC beschreibt eine Karte. Diese Karte steckst du dann
in die Box, welche sie auf eine andere Karte (in ein
Verzeichnis) umkopiert, und mit der kopierten Karte gehst du
dann zum PC um sie auszuwerten.
Komplizierter gehts nimmer.
Danke für eure Informationen!
Werde die Daten jetzt direkt über ein Kartenlesegerät auf die SD-Karte
schreiben!
Für mein Projekt werde ich einen ATMega128 verwenden, weil dieser genug
Speicherplatz für meine Daten besitzt!
Jetzt hätte ich nur noch eine Frage, ich müsste für meine gespeicherten
Daten auch noch Datum und Uhrzeit anführen, wie könnte ich das am besten
mit einem ATMega128 realisieren?
@Daniel:
Das klappt doch nicht:
>> Werde die Daten jetzt direkt über ein Kartenlesegerät auf die>> SD-Karte schreiben!
Das kommt ja am Schluss fast aufs selbe raus, wie wenn du nen USB Stick
verwenden würdest. Ich geb dir nen Tipp, mach das folgendermassen:
Du nimmst irgend einen Atmel, welcher 2x UART und 1x SPI hat. Nun kannst
du schon mal über die UARTS deine Daten empfangen... Und über die
SPI-Schnittstelle steuerst du d i r e k t eine SD-Karte an. Denn
SD-Karten haben eine SPI-Schnittstelle! Nun brauchst du die Karte nur
noch mit z.B. FAT zu formatieren. Dann kannst du den Mikrocontroller die
empfangenen Daten in einer Textdatei auf der SD-Karte speichern lassen.
Das geht, du wärst auch nicht der erste, der sowas macht (ich allerdings
habe noch nie mit SD-Karten gebastelt).
Wenns etwas mehr Daten werden sollten (oder auch einfach aus lauter
Freude ;)) kannst du anstatt der SD-Karte auch eine Compact Flash
nehmen. Die hat zwar kein SPI, ist aber auch einfach anzusteuern.
Grüsse % viel erfolg beim Basteln!
Ja hab ich.
2 Möglichkeiten:
1. du sendest das Datum/Zeit in binärer Form mit den Daten zum
Mikrocontroller (auch über den UART).
Oder einfacher:
Man nehme eine DS1307 oder DS1337 I2C-Real time clock, pampe Quarz &
Knopfbatterie dran und gut ist. Wenn du allerdings einen etwas grösseren
Controller hast, und noch massig (~10..12) freie Pins, kannst du auch
die DS12887 (oder DS12C887) RTC nehmen, die hat nämlich Quarz & Batterie
schon eingebaut und sollte min. 10 Jahre selbständig laufen.
Eine "real time clock" ist nichts anderes, als ein IC, das im Grunde ein
RAM ist mit Batterie- oder Akkupufferung. Es hat aber noch einen kleinen
Zähler drin, der in bestimmte Adressen die Uhrzeit, das Datum, den
Wochentag... reinschreibt. So musst du nur noch aus diesem RTC-IC die
Zeit rauslesen.
Grüsse
Tobias