Hallo, Ich habe hier eine sehr spezielle Aufgabe, und wollte mal fragen, was ihr über die Machbarkeit denkt. Ich habe 3 Datenquellen, die ihre Daten über RS232 ausgeben. Zwei davon arbeiten mit 19200Boud, eine mit 38400. Die 19200Boud-Quellen muss ich außerdem antriggern, das heißt, ich muss einen String hinschicken, um Daten zurückzubekommen. Die 38400Boud-Quelle sendet kontinuierlich. Ich muss nun diese Quellen zusammenführen, und über eine serielle Schnittstelle ausgeben (außderdem noch über WLAN, aber das sollte dann ja kein Thema mehr sein). Um die Daten voneinander unterscheiden zu können, sollen sie bei der Zusammenführung auch noch konvertiert werden, und als NMEA-String ausgegeben werden. Was denkt ihr, wie groß der Aufwand wird? Schafft ein ATMega das? Danke schonmal für Meinungen. Jürgen
Achso, ich sollte dazu sagen, dass ich warscheinlich keine eigene Platine entwickeln kann. Das ganze müsste also auf einem Demo-Board laufen.
Es sollte genug Entwicklungssysteme geben die einen ATmega beinhalten der über genug serielle Schnittstellen verfügt.
Lieber Gast (Gast), bitte mach es uns einfach und nenne je einen ATMega mit 3 seriellen Schnittstellen und 1 Entwicklungssystem mit 3 verfügbaren seriellen Schnittstellen. Danke! Grüße, Peter
Ja, denn das sowas irgendwie möglich ist, daran hab ich nicht gezweifelt, von daher waren das zwei schön sinnlose, aber leider Forumübliche antworten. Man muss jan icht antworten, wenn man nicht will! Aber ich will hier nicht meckern, sondern Eure Meinung hören. Also los!
z.B. ATmega640 oder ATmega2560 Eine vollständige Übersicht gibts hier: http://www.atmel.com/dyn/products/devices.asp?family_id=607 Das Daten sammeln und weiterleiten sollte kein Problem sein. WLAN scheint mir dann aber schon etwas heftig. Bist du sicher, dass das dann kein Thema ist? Fertige Module gibts z.B. hier: http://www.siphec.com/ Wenn das ganze von einem PC aus gesteuert wird, wäre ein FTDI FT4232 Mini Modul eine Überlegung wert. Die gibts direkt bei FTDI mfg
Such dir welche aus. Wozu gibts denn sonst die Parametric Product Table. http://www.atmel.com/dyn/products/devices.asp?family_id=607#760 Wenn es dann einer wird der z.B. auf ein STK500 drauf passt -> Entwicklungssystem gefunden.
Wenn die Abfrage der Schnittstellen nicht Zeitkritisch ist, kann man sie auch einfach multiplexen, z.B. mit einem 4052. Dann funktioniert es auch mit einem kleinen ATMega8 mit nur einer UART. Mit dem vierten Kanal kann man dann auch die gesammelten Daten ausgeben. Das Ganze auf eine kleine Lochrasterplatine - fertig. Gruß Rainer
wie wärs mit 3 ATTinys2313 oder 4 , die untereinander über SPI reden und jeder hat doch einen USART für die perepherie... warum muss es immer ein prozessor sein, der alles kann?
Also, so in etwa hatte ich mir das auch vorgestellt, nur dass ich die Idee mit dem Multiplexer scheinbar zu früh verworfen hatte. Die Kombi aus ATinys2313 plus zwei Multiplexer scheint hier das einfachste zu sein. Letzten Endes reicht es mit, wenn ich Messwerte im Sekundentakt bekomme. Und mit dem ATinys2313 könnte ich auch noch die Multiplexer steuern. Nur, wenn ich das richtig sehe, kann der Multiplexer keine RS232 Pegel (negative Spannungen) durchschalten, ist das richtig? Hab Ihr grad einen parat, der das kann?
wenn schon Multiplexer, dann auf der TTL-Seite, danach erst auf RS232-Pegel wandeln.
Nachtrag: Wenn schon auf der TTL-Seite, dann tuns auch logische Verknüpfungen wie AND, NAND um die Schnittstellen anzusprechen.
> nenne je einen ATMega mit 3 seriellen Schnittstellen und > 1 Entwicklungssystem mit 3 verfügbaren seriellen Schnittstellen Ein sehr bequem über USB zu benutzendes Entwicklungssystem mit dem ATmega2560 und mit 4 (VIER) seriellen Schnittstellen, die neben vielen anderen PINs an einer Stöpselleiste verfügbar sind: http://arduino.cc/en/Main/ArduinoBoardMega Zufrieden?
Wenn Du die Daten asynchron empfängst und sie aus Paketen mit mehr als einem Byte bestehen, musst Du dafür sorgen, dass sie beim Zusammenführen nicht wahllos ineinandergemischt werden. D.h. in jedem eingehenden Datenstrom muss erkennbar sein, wo ein Paket aufhört, und die empfangenen Zeichen müssen bis zum Empfang der Endemarke zwischengespeichert werden. Dann gibst Du es über die gemeinsame Ausgangsschnittstelle aus.
Oh, das Board hat nur einen ATmega1280. Das ändert aber sonst nicht viel. Für Deine Aufgabe dürfte das ohne weiteres geeignet sein. Die Triggerungen kriegst Du damit auch noch hin. Du kannst das komplett unter der Arduino-Entwicklungsumgebung machen. Für ein fertiges Produkt würde ich davon evtl. wieder weg, aber für ein Proof of Concept / eine Demo hast Du damit am schnellsten Ergebnisse, wenn Du sonst noch nicht viel mit AVRs und avr-gcc gemacht hast.
Moin zusammen, Nun ist das Projekt wieder aktuelll geworden. Ich würde jetzt gerne das Arduino Board nehmen. Da habe ich jetzt natürlich das Problem, dass ich nur 4 UARTs habe. Wenn ich die Singale über ein WLAN Modul verschicken will, bäuchte ich ja eigentlich 5. Ich hab mir jetzt überlegt, das entweder WLAN oder RS232 zu übertragen. Kann man da einfach mit einem machanischen Umschalter die Rx/Tx Leitungen umschalten, oder gibt das Probleme mit Reflektionen?
Wozu mechanisch? Ich würde es mit einem Multiplexer versuchen.
Mal eine blöde frage: Wie soll das gehen das man eine RS232 Multiplex an der selbstdändig, also ohne anfrage, Aaten ankommen? Das würde doch bedeuten mann muss auf eine Soft-UART ausweichen welche mit dem Multiplexen klarkommt. Das ganze bei einer geschwindigkeit von 38400baud stellt ich mir nicht ganz Trivial vor.
Wie meint ihr das mit dem Multiplexen? Das ist ja das eigentliche Problem, das ich habe, dass ich quasi 3 serielle Quellen multiplexen muss, um sie auf einen (oder besser zwei gleichzeitig) serielle Ausgang zu bekommen...
Wenn du beide 19,2 kbaud Quellen antriggern musst, bis was kommt, kannst Du die ja über Dioden (und evtl einem Gatter für TX) an einem UART zusammenführen. die 38,4 kbaud Kiste dann an einem separaten UART. 2 UARTS haben sehr viele der AVR's. z.b. der Mega128
Ja, das wäre schön einfach, aber nur eine Quelle braucht eine Triggerung, die Andere sendet permanent. Einen zweiten µC wollte ich eingentlich nicht einsetzen. Ich dachte mir, da das WLAN-Modul bei Kabelbetrieb am besten sowieso nicht in Betrieb sein soll, um Akkuzeit zu sparen, könnte man da gleich was einfaches Mechanisches bauen....Also auch mit Abschaltung kombiniert....
das war auch meine idee dazu die 2 19,sk quellen an einen RX pin( über dioden getrennt ) dann erst zum einen den string senden ... warten bis antwort kommt dann an den anderen den string senden warten bis antwort kommt umschalten über transitoren oder muxer am 2ten UART über UART1 RX interrupt die 38k quelle die kann immer schön senden wie sie will im AVR wird gepuffert die 3te UART sendet den zusammengefriemelten string weg wenn ein Wlan modul dranhängt .. gehts über Wlan .. wenn Wlan über SPI dranhängt eben so .. also 4 UARTs reichen doch völlig aus und selbst bei der aktion langweilt sich der AVR zu tode
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.