Hallo. Ich habe ein Frage bzgl. des Einlesens von zwei verschiendene Datenquellen via RS232 in einem AVR Net-IO von Pollin. Konkret geht's mir darum, dass von zwei verschiedenen Quellen alle Nase lang Daten geschickt werden, ich aber nur einen Net-IO aufhängen will, der diese Daten abwechselnd einfängt und auswertet (über tcp/ip und oder SD-Karte ... mal sehen). Jedenfalls weiß ich nicht, wie ich es hinkriegen kann, dass die Signale nicht durcheinander geraten, da beide Quellen "willkürlich" alle paar Sekunden senden. Nun habe ich mir als Schnellschuss-Lösung (?) des Problems einen HCF4016B bestellt. Da sind 4 Schalter + 4 Steuerleitungen drauf. Hat einer den Durchblick, ob das damit klappen könnte? Falls ja: Wie muss ich den IC beschalten, damit das klappt? Falls nein: Wie würdet ihr das realisieren? Ich stelle mir den Aufbau so vor, dass z.B. der Net-IO an einer Zeitschaltuhr hängt und von mir aus immer um 0:00h kurz aufwacht und dann beide Quellen ausliest... ohne dabei aus dem Tritt zu kommen... Danke erstmal für alle Tipps, White Rabbit
>Jedenfalls weiß ich nicht, wie ich es hinkriegen kann, >dass die Signale nicht durcheinander geraten, da beide Quellen >"willkürlich" alle paar Sekunden senden. Das geht nicht. Sorg dafür das deine Quellen die Fresse halten solange sie nicht gefragt werden.
> Das geht nicht. Sorg dafür das deine Quellen die > Fresse halten solange sie nicht gefragt werden. Das geht auch nicht ... die senden einfach ... völlig ungefragt :) (Es sind IR-Dioden)
Wenn die Datenrate nicht allzu hoch ist, kannst Du dem AVR auf der Net-IO-Platine eine zweite in Software implementierte UART spendieren. Du könntest auch per I2C eine externe zweikanalige UART wie die SC16IS762* anschließen. *) http://ics.nxp.com/products/sc16/datasheet/sc16is752.sc16is762.pdf
> Wenn die Datenrate nicht allzu hoch ist, kannst Du dem AVR auf der
Also die Datenrate ist 9600 Baud bei 7Bit, 1 Stopbit und Parität Even.
Die Dinger senden ca. alle 2 Sekunden. Sehe ich das richtig, dass ich
alternativ auch einfach einen ATMega644P nehmen kann, der ja zwei UARTS
an Bord hat?
Ich weiß nur nicht, wie die Daten dann über den Max232 an den ATMega
weitergeleitet werden müssen. (Fange gerade erst mit der Thematik an...)
White Rabbit schrieb: > Sehe ich das richtig, dass ich > alternativ auch einfach einen ATMega644P nehmen kann, der ja zwei UARTS > an Bord hat? Selbstverständlich. > Ich weiß nur nicht, wie die Daten dann über den Max232 an den ATMega > weitergeleitet werden müssen. Der MAX232 enthält zwei Pegelwandler von RS232 auf TTL und zwei Pegelwandler von TTL auf RS232. Sofern Du keine Hardwarehandshakeleitungen verwendest, benötigst Du pro verwendeter Schnittstelle genau einen halben MAX232, nämlich je einen Pegelwandler von RS232 auf TTL (der mit dem jeweiligen RX-Anschluss des µC zu verbinden ist) und einen Pegelwandler von TTL auf RS232 (der wiederum mit dem jeweiligen TX-Anschluss des µC zu verbinden ist).
White Rabbit schrieb: >> Wenn die Datenrate nicht allzu hoch ist, kannst Du dem AVR auf der > Also die Datenrate ist 9600 Baud bei 7Bit, 1 Stopbit und Parität Even. > Die Dinger senden ca. alle 2 Sekunden. Sehe ich das richtig, dass ich > alternativ auch einfach einen ATMega644P nehmen kann, der ja zwei UARTS > an Bord hat? > Ich weiß nur nicht, wie die Daten dann über den Max232 an den ATMega > weitergeleitet werden müssen. (Fange gerade erst mit der Thematik an...) Wenn Du keine Handshake-Leitungen brauchst, wird die Sache sehr einfach: Der zweite UART liegt auf Pin 16 und 17, die nur auf eine 10'er Pfostenleiste gehen. Lauf Schaltplan sind die Pins 9 und 10 vom MAX unbeschaltet. Sofern der Schaltplan aus dem Pollin-Download mit der Realität übereinstimmt, müßtest Du nur Pin 9 vom MAX mit Pin 16 vom M644p und Pin 10 vom MAX mit Pin 17 vom M644p verbinden. Dann hast Du auf der Sub-D Buchse auf 2 und 3 die erste und auf 7 und 8 die zweite serielle Schnittstelle. Vergleiche sicherheitshalber nochmal Schaltplan und Platine, bevor Du zur Tat schreitest. fchk
Hi. > Wenn Du keine Handshake-Leitungen brauchst, wird die Sache sehr einfach: Ich glaube nicht, da das Senden der Daten uni-direktional ist. Ich benötige also NUR RXD und noch nicht mal TXD. > Der zweite UART liegt auf Pin 16 und 17, die nur auf eine 10'er Also da das Signal eh schon als TTL rüberkommt, hatte ich den Max232 bisher immer ausgebaut und im Max232-IC-Sockel eine Drahtbrücke zwischen Pin 13 auf 12 gelegt, so dass das Signal direkt am ATMega an Pin 14 ankam. Das hat (bis auf die falsche Bit-Länge (ATMega mit ethersex versteht bisher nur 8Bit) auch geklappt. Es wäre natürlich super, wenn man dann einfach das andere Signal über Pin 8+9 am Max232 an Pin 16 vom M644p weiterreichen könnte. Müsste so richtig sein, oder? Jetzt hoffe ich "nur" noch, dass ich unter ethersex auch beide UARTS benutzen kann? (Konfig für M644p??) Danke für die Einsteigerhilfe, White Rabbit
Hi, was die Verarbeitung der 2 UARTs in Ethersex angeht, könnte Dir das hier helfen: http://www.ethersex.de/index.php/Protokolle_duplizieren Gruss, J.
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.