www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS232 Multiplexer mit ATMega8


Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin absoluter Anfänger in Sachen Mikrokontroller, habe mir aber in 
den Kopf gesetzt, mir einen kleinen RS232-Multiplexer zu bauen. Dazu 
wollte ich einfach mal fragen, wie ihr meine Ideen einschätzt oder ob 
ich mir das Leben viel zu kompliziert mache:

Ziel ist es, 3 NMEA[1]-Quellen zusammen zu fassen. Jede Quelle liefert 
ihre Daten über RS232, die Baudraten können dabei unterschiedlich sein. 
Am Ende sollen alle Daten gemeinsam auf einer weiteren 
RS232-Schnittstelle ausgegeben werden.

Zusätzlich soll eine bidirektionale Kommunikation zwischen der 
Ausgabe-Schnittstelle und einer der Quellen möglich sein (z.B. über 
einen mechanischen Schalter auswählbar).

Und letzten Endes soll es als "Bonbon" möglich sein, den 
Ausgabe-Datenstrom durch separat erfasste Sensorwerte (Temperatur, 
Luftfeuchtigkeit, Kompass) zu ergänzen.


Nun zu meiner bisherigen Umsetzungs-Idee:

Ich baue mir drei identische Platinen mit je einem ATMega8, welche je 
eine der Datenquellen empfangen und deren Daten auf Abruf über den 
I2C-Bus bereit halten (es geht dabei jeweils um gerade mal 50 bis 100 
Byte pro Sekunde).

Eine Master-Platine, ebenfalls mit ATMega8, frägt regelmäßig alle 
anderen ATMegas ab, ob sie neue Daten haben, fasst diese ggf. zusammen 
und legt sie an den Ausgangs-RS232. Ebenso sorgt dieser Controller für 
die bidirektionale Kommunikation, indem er die Daten je nach 
Schalterstellung an einen der Quellen weitergibt.

Zusätzliche Sensoren werden ebenfalls entweder direkt per I2C oder über 
separate ATMegas eingebunden. Stromversorgung erfolgt über eine weitere 
separate Platine.


Die Idee bei der Sache ist, dass ich einerseits relativ einfach mein 
System erweitern kann, andererseits mit möglichst wenig 
unterschiedlichen Bauteilen auskomme (grob über den Daumen gepeilt max. 
10 Euro pro RS232-Schnittstelle).


Haltet ihr das für realistisch, oder kann ich mir den Aufwand mit den 
separaten Controllern komplett sparen und an einen einzigen ATMega 4 
RS232-Schnittstellen realisieren?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sprotliche Aufgabenstellung für einen Anfänger.
Respekt!

Autor: avr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst dir den Aufwand sparen, es gibt von Atmel
schon AVRs mit mehreren UARTs.

Die Komunikation von Master - mehere Slaves ist für den
Einstieg etwas komplex.

Z.B. ein Mega1280 wäre hier mit 4 UARTs die bessere Wahl.

Wenn Angst vor dem Gehäuse bestehen (nicht jeder lötet
gerne TQFP100) gibt es auch Apapterplatinen mit aufgelötetem
Mega und Anschlußßleisten (evtl. 
http://www.tigal.com/product.asp?pid=1157)

Dann reichen Treiber (max232-Familie) und Versorgung.

avr

Autor: pyotr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man könnte schon ein Software-UART für so etwas benutzen, was keinesfall 
trivial wird...

Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jau, das mit dem ATMega 1280 ist ganz brauchbare Idee. Hätte eben den 
Nachteil, dass die Software etwas komplexer wird. Das Selbe gilt 
natürlich für den Software-UART.

Vom Entwicklungsaufwand wären eben separate Platinen pro RS232-Quelle am 
einfachsten, da problemlos erweiterbar (alle Slaves verhalten sich 
gleich ggü. dem Master) und sich der Debugging-Aufwand in Grenzen halten 
sollte.

@Karl Heinz: Anfänger ist übertrieben, ich bin früher mit Ataris und 
deren 68000er aufgewachsen, insofern ist mir die Programmierung von 
einfachen Prozessoren nicht unbedingt neu.

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

im Interesse der Flexibilität ist das Konzept mit n µPs durchaus gut. 
Ich sehe nur ein Problem (vielleicht): die einzelnen 
RS232-Schnittstellen müssen konfiguriert werden, zumindest mit der 
Baudrate. Sowas lässt sich hübsch mit einer Konfigurations-Website oder 
einem Telnet-Zugang machen, aber vernünftigerweise nicht für jeden 
Slave-Prozessor einzeln. Also müsstest du die Slaves auch über den 
zentralen µP konfigurieren, nicht nur Daten abholen. Ist natürlich 
machbar, ansonsten kannst du natürlich auch die allseits beliebten 
Jumper einsetzen.

Gruss Reinhard

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.