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
@ Alexander Liebhold & Falk Brunner Danke erstmals für eure schnelle Antwort und Hilfe ;) 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. Habe dazu einen Tipp von einen bekannten bekommen, zwischen den Mikrocontroller-System und dem USB-Kartenleser eine USB-Datenkopierbox einzubauen. Dieses Datenkopierbox gibt es fix und fertig bei Conrad zu kaufen: http://www1.at.conrad.com/scripts/wgate/zcop_at/~flNlc3Npb249UDkwX0NPUF9BVDpDX0FHQVRFMDM6MDAwMC4wMDlhLjhmMDg5YTZhJn5odHRwX2NvbnRlbnRfY2hhcnNldD1pc28tODg1OS0xJn5TdGF0ZT0zMTQ3NzEwOTM1====?~template=PCAT_AREA_S_BROWSE&mfhelp=&p_selected_area=%24ROOT&p_selected_area_fh=&perform_special_action=&glb_user_js=Y&shop=AT2&vgl_artikel_in_index=&product_show_id=&p_page_to_display=DirektSearch&~cookies=1&zhmmh_lfo=&zhmmh_area_kz=&s_haupt_kategorie=&p_searchstring=datenkopierbox&p_searchstring_artnr=&p_search_category=alle&r3_matn=&insert_kz=&area_s_url=&brand=&amount=&new_item_quantity=&area_url=&direkt_aufriss_area=&p_countdown=&p_80=&p_80_category=&p_80_article=&p_next_template_after_login=&mindestbestellwert=&login=&password=&bpemail=&bpid=&url=&show_wk=&use_search=3&p_back_template=&template=&kat_save=&updatestr=&vgl_artikel_in_vgl=&titel=&darsteller=®isseur=&anbieter=&genre=&fsk=&jahr=&jahr2=&dvd_error=X&dvd_empty_error=X&dvd_year_error=&call_dvd=&kna_news=&p_status_scenario=&documentselector=&aktiv=&p_load_area=$ROOT&p_artikelbilder_mode=&p_sortopt=&page=&p_catalog_max_results=20 Ist das eine gute Lösung mit der Datenkopierbox oder macht das die Sache nur komplizierter? lg
@ 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!
Danke für deine Antwort und hast du eine Idee, wie ich das mit dem Datum & Uhrzeit realisieren könnte?
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
wenn ich für mein Projekt einen ATMega128 verwende sollte ich damit keine Probleme haben?
wenn ich für mein Projekt einen ATMega128 verwende sollte ich damit keine Probleme haben?
Für die USB-Geschichte kannst du nen Vinculum von FTDI nehmen. Der lässt sich über die serielle Schnittstelle ziemlich einfach ansteuern.
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.