RS232 - Wandler und Mulitplexer in einem?

C

Carsten

Guest
Guten Morgen,

ich möchte gern über nen AVR mit einer seriellen Schnittstelle zwei RS232
ansprechen. Klar, ich könnte mit zwei MAX 232 und nen par Gattern das
realisieren. Aber vieleicht gibt es ja auch nen Treiberchip, der genau das
schon
kann? Hat jemand ne Idee?

Idee: Ein AVR, der ne GPS-Maus ausliest und die Daten an ein Handy/Modem
schickt. Das Toggeln der beiden Schnittstellen kann man ja dann über einen
Pin des AVR steuern.


Danke und Gruß,

Carsten
 
Carsten schrieb:
Guten Morgen,

ich möchte gern über nen AVR mit einer seriellen Schnittstelle zwei RS232
ansprechen. Klar, ich könnte mit zwei MAX 232 und nen par Gattern das
realisieren. Aber vieleicht gibt es ja auch nen Treiberchip, der genau das
schon
kann? Hat jemand ne Idee?

Hallo,

schreib mal genauer was Du willst.

Von einer seriellen Schnittstelle simultan an zwei andere zu senden wäre
kein Problem, da verbindet man einfach nur TxD der einen Seite mit zwei
RxD der anderen Seite.
Es gibt Schnittstellen ICs mit zwei oder vier seriellen Schnittstellen
drin, da spart man sich die Multiplexer zu bauen.
Du darfst so einen Multiplexer auch erst umschalten wenn das letzte Bit
des letzten Zeichens gesendet wurde, was mit Software etwas schwierig zu
erkennen sein kann. Was aber machst Du beim Empfang von den zwei anderen
wenn diese simultan antworten?

RS485 ist da besser, das hat die Multiplexerfunktion quasi mit drin,
aber man muß selber dafür sorgen das nicht simultan von mehreren
geantwortet wird.

Bye
 
Hi,

ich möchte gern über nen AVR mit einer seriellen Schnittstelle zwei RS232
ansprechen. Klar, ich könnte mit zwei MAX 232 und nen par Gattern das
realisieren. Aber vieleicht gibt es ja auch nen Treiberchip, der genau das
schon kann? Hat jemand ne Idee?
Teilproblem 1 (AVR): Entweder Du nimmst einen AVR, der zwei UARTs hat
(z. B. mega161) oder Du programmierst eine Soft-UART (gibts auch fertig
als Bibliotheken, wäre aber eine schöne Programmierübung mit externen
und Timer-Interrupts).

Teilproblem 2 (MAX232): Wenn Du auf die Handshake-Leitungen verzichten
kannst, dann reicht ein MAX232 völlig aus, denn er hat je zwei Sende-
und zwei Empfangseinheiten. Ansonsten brauchst Du zwei von denen.

cu
Thoralt

--
PS: Für Antworten bitte "-werbeblocker" aus der Adresse entfernen.
 
Teilproblem 1 (AVR): Entweder Du nimmst einen AVR, der zwei UARTs hat
(z. B. mega161) (...)
Sorry, hab mich vertan: mega162 soll es heißen.

Thoralt

--
PS: Für Antworten bitte "-werbeblocker" aus der Adresse entfernen.
 
On Tue, 13 Sep 2005 08:29:24 GMT, "Carsten"
<mein_vorname@team-warta.de> wrote:

ich möchte gern über nen AVR mit einer seriellen Schnittstelle zwei RS232
ansprechen. Klar, ich könnte mit zwei MAX 232 und nen par Gattern das
schlagt mich jetzt bitte nicht gleich, ich kenne den AVR zu wenig...
SW oder HW serielle?
einfach einen Max (oder Derivat) nehmen, der eben mehr als RX und TX
handeln kann, also z.B. einen mit 2...4 Transceivern...
mit ein wenig SW ließe sich auch das Senden auf der AVR-Seite bequem
umschalten. Aber was machst Du, wenn beide Geräte gleichzeitig Daten
an den AVR schicken??? Als einzige Möglichkeit würde mir einfallen,
Handshake zu verwenden (HW oder SW), um eben genau dieses Senden,
währen Du auf der anderen Seite lauschst, zu unterbinden. Ist nur die
Frage, ob das die verbundenen Geräte unterstützen.

ich würde die Logik natürlich auf der AVR-Seite machen, nicht auf der
V24-Seite. In etwa so...

__
--------------------+ |>=|-----------+
RX |-o|1 | |
| |__|---------+ | RX1 .-----------.
| | +-----| |
| | RX2 | |-----
| +-------| |-----
AVR | __ | |
TX |-----------o---|>=| | MAX |
| +------+ | |1 |o---| |
| | __ +--|---|__| | |-----
Ctrl |-o-|>=| | __ +--| |-----
| | |1 |o+ +-|>=| | | |
| +-|__| | |1 |o--+ '-----------'
--------------------+ +----|__|
(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)

bzw mehr Transceiver, wenn HW-Handshake nötig ist...

einzig die empfangenen Zeichen müssten damit invertiert werden (NOR)

Heinz
 
Hi!

ich möchte gern über nen AVR mit einer seriellen Schnittstelle zwei RS232
ansprechen. Klar, ich könnte mit zwei MAX 232 und nen par Gattern das
realisieren. Aber vieleicht gibt es ja auch nen Treiberchip, der genau das
schon
kann? Hat jemand ne Idee?

Idee: Ein AVR, der ne GPS-Maus ausliest und die Daten an ein Handy/Modem
schickt. Das Toggeln der beiden Schnittstellen kann man ja dann über einen
Pin des AVR steuern.
Willst du deinem AVR von Handy aus auch noch was mitteilen? Sonst: Wozu
2 Uarts? Einfach TX_GPS an RX_AVR und TX_AVR an RX_HANDY. Wiso hängst du
nicht direkt die GPS-Maus ans Handy?

Ansonsten ist ein Soft-Uart für den AVR wohl die einfachste und
günstigste Möglichkeit. Der Max232 kann auch so schon 2 serielle
Schnittstellen ohne Hardware Flow Control.

Softuarts:
http://www.siwawi.arubi.uni-kl.de/avr_projects/#softuart
http://www.atmel.com/dyn/products/app_notes.asp?family_id=607 (->304-306)

mfg
Jan
 
ich würde die Logik natürlich auf der AVR-Seite machen, nicht auf der
V24-Seite. In etwa so...

__
--------------------+ |>=|-----------+
RX |-o|1 | |
| |__|---------+ | RX1 .-----------.
| | +-----| |
| | RX2 | |-----
| +-------| |-----
AVR | __ | |
TX |-----------o---|>=| | MAX |
| +------+ | |1 |o---| |
| | __ +--|---|__| | |-----
Ctrl |-o-|>=| | __ +--| |-----
| | |1 |o+ +-|>=| | | |
| +-|__| | |1 |o--+ '-----------'
--------------------+ +----|__|
(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)

Jepp, genau sowas hab ich mir vorgestellt und die Frage war, gibt es das
ganze
Geraffel zufällig schon in EINEM Chip um Platz auf dem Board zu sparen.

Gurß,

Carsten
 
"Uwe Hercksen" <hercksen@mew.uni-erlangen.de> wrote in message
news:43268D93.1030505@mew.uni-erlangen.de...


Carsten schrieb:
Guten Morgen,

ich möchte gern über nen AVR mit einer seriellen Schnittstelle zwei RS232
ansprechen. Klar, ich könnte mit zwei MAX 232 und nen par Gattern das
realisieren. Aber vieleicht gibt es ja auch nen Treiberchip, der genau das
schon
kann? Hat jemand ne Idee?

Hallo,

schreib mal genauer was Du willst.

Hallo Uwe,

also Handshaking ist egal. Die GPS-Maus schickt immer wieder ihre Daten, die
mich
aber nur dann interessieren, wenn ich sie auslesen will. Danach "klemme" ich
sie wieder
ab und schicke was an die Handy-Schnittstelle.

Ich muss also nicht auf Signale von aussen reagieren.

Hintergrund: Ich möchte, sollte am Auto Alarm ausgelöst werden, dieses per
SMS versenden
und die GPS-Koordinaten hinzufügen. Und das in gewissen Abständen so lange,
bis ich die
Karre wieder hab ;-) Eventuell will ich auch darüber Alarm auslösen können,
wenn sich das Fahrzeug
wenn die Zündung aus ist, über eine gewisse Wegstrecke bewegt hat. Falls
also zwar jemand
die Anlage abgestellt hat, aber die zus. Schaltung und das Handy noch aktiv
sind.

So zusagen den "Jungs" schon vor ihrere Garage auflauern können ;-)

Gruß,

Carsten
 
Softuarts:
http://www.siwawi.arubi.uni-kl.de/avr_projects/#softuart
http://www.atmel.com/dyn/products/app_notes.asp?family_id=607 (->304-306)

mfg
Jan
Ah, ok das schaue ich mir mal an!

Danke!
 
Hi!


Hintergrund: Ich möchte, sollte am Auto Alarm ausgelöst werden,
dieses per
SMS versenden
und die GPS-Koordinaten hinzufügen. Und das in gewissen Abständen so
lange,
bis ich die
Karre wieder hab ;-) Eventuell will ich auch darüber Alarm auslösen
können,
wenn sich das Fahrzeug
wenn die Zündung aus ist, über eine gewisse Wegstrecke bewegt hat. Falls
also zwar jemand
die Anlage abgestellt hat, aber die zus. Schaltung und das Handy noch
aktiv
sind.
Spricht dann was degegen einfach den einen UART zu nutzen? Du sendest
nichts zum GPS-Modul und empfängst nichts vom Handy. Also wozu 2 Uarts?

mfg
Jan
 
On Tue, 13 Sep 2005 08:29:24 GMT, "Carsten" <mein_vorname@team-warta.de>
wrote:

ich möchte gern über nen AVR mit einer seriellen Schnittstelle zwei RS232
ansprechen. Klar, ich könnte mit zwei MAX 232 und nen par Gattern das
realisieren. Aber vieleicht gibt es ja auch nen Treiberchip, der genau das
schon
kann? Hat jemand ne Idee?
Warum nimmst Du nicht einfach einen AVR mit zwei seriellen? Einfacher gehts
nicht.

Mit freundlichen Grüßen

Frank-Christian Krügel
 
Carsten schrieb:
doch unter Unter Umständen will ich auch was vom Handy empfangen können.
Nämlich bei Bedarf abfragen, ob ne SMS im Speicher liegt, in der steht:
Standheizung einschalten.

Nur GPS-Seitig wäre read only.
Hallo,

dann könnte man zwar TxD nur zum Handy verbinden und RxD über
Multiplexer (auf TTL Ebene) wahlweise an GPS oder Handy verbinden, aber
dann würden Zeichen beim Umschalten verstümmelt und Du müsstest die
resultierenden Framing Errors, Breaks und Parity Errors richtig bearbeiten.
Der Datenstrom vom GPS würde nach dem Umschalten wild irgendwo in einer
Zeile beginnen und Du müsstest unvollständige Zeilen erkennen und
verwerfen. Evtl. reicht ja schon alle Zeichen nach dem Umschalten bis
zum ersten empfangenen CR wegzuschmeissen.
Bleibt zu hoffen das der UART sich durch unvollständige Zeichen nicht
aufhängt.

Bye
 
__
--------------------+ |>=|-----------+
RX |-o|1 | |
| |__|---------+ | RX1 .-----------.
| | +-----| |
| | RX2 | |-----
| +-------| |-----
AVR | __ | |
TX |-----------o---|>=| | MAX |
| +------+ | |1 |o---| |
| | __ +--|---|__| | |-----
Ctrl |-o-|>=| | __ +--| |-----
| | |1 |o+ +-|>=| | | |
| +-|__| | |1 |o--+ '-----------'
--------------------+ +----|__|
(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)

Hallo,

da GPS gar nicht empfängt ist die Umschaltung für TX nicht nötig.
Aber für RX wäre ein echter Multiplexer besser, damit wäre ein Mix aus
zwei Datenströmen ausgeschlossen.

Bye
 
Hi Jan,


Spricht dann was degegen einfach den einen UART zu nutzen? Du sendest
nichts zum GPS-Modul und empfängst nichts vom Handy. Also wozu 2 Uarts?
doch unter Unter Umständen will ich auch was vom Handy empfangen können.
Nämlich bei Bedarf abfragen, ob ne SMS im Speicher liegt, in der steht:
Standheizung einschalten.

Nur GPS-Seitig wäre read only.
 
Warum nimmst Du nicht einfach einen AVR mit zwei seriellen? Einfacher
gehts
nicht.

Hm, stimmt, aber die mit einem UART hab ich rumliegen und für die Mega
keinen
Compiler. Und ich würd schon gern beim CodeVision bleiben aber nicht die
kompl. Vollversion kaufen.


Gruß,

Carsten
 
Hi!

Hm, stimmt, aber die mit einem UART hab ich rumliegen und für die Mega
keinen
Compiler. Und ich würd schon gern beim CodeVision bleiben aber nicht die
Tu dir selber einen Gefallen und verwende den avr-gcc! Der ist kostenlos
, unterstützt alle Prozessoren, dank des mitgelieferten makefiles
inzwischen total einfach zu bedienen und er basiert auf dem sicherlich
nicht schlechten gcc Compiler. Es gibt für alle Perepherie ohne Ende
Beispiele oder fertige Headerfiles direkt mitgeliefert. Vom CodeVision
habe ich bis jetzt dagegen nicht viel gutes gehört! Ausserdem sind die
meisten Programme in NGs und Foren für den Compiler!

Link: http://sourceforge.net/projects/winavr/

mfg
Jan
 
Carsten wrote:


Hallo,

noch mal ein paar Detailfragen:
1. Viele GPS-Mäuse senden doch unaufgefordert einmal pro sekunde ihre Daten,
ist das bei Deiner auch so?

2. Die Verbindung zum anderen Endgerät muss bidirektional sein, oder reicht
da nur senden aus?

Wenn beide Geräte nur unidirekttional sind, dann bietet es sich an, die
Schnittstelle gar nicht zu multiplexen, sondern RX für GPS und TX für's
andere Gerät zu nutzen. (gleiche übertragungsraten vorrausgesetzt)
Ansonsten wurden glaube ich genügend brauchbare Lösungen genannt.

Die Lösung von Heinz, die beiden RX einfach in Hardware zu verodern scheint
mir nicht so einfach zu sein, da dein Handy immer exakt in den Sendepausen
des GPS senden müsste, wenn sich die Daten überschneiden, gibt's Chaos.

Daniel

--
.~. Daniel Schramm Phone: +49 231 6108112 Mail:daniel.schramm@gmx.de
/V\ Bruehlweg 36 Mobile:+49 178 8839848 ICQ: 35816985
// \\ 44379 Dortmund Fax: +49 231 96989961 WWW: pinguin.sauerland.de
/( )\ Germany
^`~'^
 
On Tue, 13 Sep 2005 11:47:37 GMT, "Carsten" <mein_vorname@team-warta.de>
wrote:

Warum nimmst Du nicht einfach einen AVR mit zwei seriellen? Einfacher
gehts
nicht.

Hm, stimmt, aber die mit einem UART hab ich rumliegen und für die Mega
keinen
Compiler. Und ich würd schon gern beim CodeVision bleiben aber nicht die
kompl. Vollversion kaufen.
Wofür brauchst Du einen anderen Compiler? Die AVRs sind durch die Bank
codecompatibel - mal abgesehen von solchen Kleinigkeiten wie ELPM oder der
Hardware Multiplikation, die die älteren Controller nicht haben. Du brauchst
halt nur andere Headerfiles, weil die Peripherieregister anders belegt sind,
und die kannst Du Dir notfalls auch selber bauen bzw vom gcc klauen.

Mit freundlichen Grüßen

Frank-Christian Krügel
 

Welcome to EDABoard.com

Sponsor

Back
Top