Mehere AVR an USART funkionieren nicht mehr

Gast #4212658
Lesenswert?

Bin gerade bei meinem ersten AVR-PRojekt, hab dabei für meine 
Modelleisenbahn ein Steuergerät für Weichen und Signale gebaut. Diese 
werden für jede Weiche/Signal verbaut und der passende Stellbefehl kommt 
vom PC über USART.

Die einzelnen Einheiten funktionieren einbahnfrei. Ich habe diese dann 
über eine Sternverdrahtung an einen MAX 232 und den PC angeschlossen. 
Ich brauche nur eine Kommunikation zwischen PC und Weiche.

Das ganze ging auch ganz gut, aber als ich ca. die 30 Weiche mit AVR 
angeschlossen habe ging die ganze Kommunikation nicht mehr. Entnehme ich 
den AVR wieder funktioniert alles wie bisher. Auch mit einem anderen AVR 
funktionier es leider immer noch nicht.

Was könnten die Probleme/Fehler sein und wie kann ich das lösen.
Gast #4212661
Lesenswert?

Tobi schrieb:
> Die einzelnen Einheiten funktionieren einbahnfrei. Ich habe diese dann
> über eine Sternverdrahtung an einen MAX 232 und den PC angeschlossen.
> Ich brauche nur eine Kommunikation zwischen PC und Weiche.

wie hast du das genau gemacht? Bidirektionales Rs232 kann man nicht so 
einfach mit mehre Teilnehmer aufbauen.
Gast #4212687
Lesenswert?

Ingo L. schrieb:
> Allerdings stellt sich mir die Frage, warum wurde kein I2C verwendet?
> Das ist doch genau dafür gedacht!

Am Anfang erschien mir die Variante mit dem USART als die einfachere. Im 
Nachhinein sicher nicht. Jetzt ist aber einiges schon verbaut und würde 
gerne nicht wieder alles ausbauen.

Frank M. schrieb:
> Zeig doch mal Dein Schaltbild dazu, damit wir nicht noch mehr durch die
> Glaskugel sehen müssen.

Kommunikation sieht ungefähr so aus:




                  _______
                 |         |    |-----|AVR
                 |         |    |
PC mit RS 232----| MAX 232 |----|-----|AVR
                 |         |    |
                 |_________|    |-----|AVR
Moderator Persönliche Seite #4212702
Lesenswert?

Tobi schrieb:
> Kommunikation sieht ungefähr so aus:
>
>
>                   _________
>                  |         |    |-----|AVR
>                  |         |    |
> PC mit RS 232----| MAX 232 |----|-----|AVR
>                  |         |    |
>                  |_________|    |-----|AVR

Dann machs so:

                     _____
                    |         |    |-----|AVR
                    |         |    |
PC mit RS 232---+---| MAX 232 |----|-----|AVR
                |   |         |    |
                |   |_________|    |-----|AVR
                |
                |   _____
                |   |         |    |-----|AVR
                |   |         |    |
                +---| MAX 232 |----|-----|AVR
                    |         |    |
                    |_________|    |-----|AVR


Und denke daran, nicht mehr als 25 Stück an einen MAX232 zu hängen, 
damit es auch stabil läuft.
Moderator Persönliche Seite #4212709
Lesenswert?

Ingo L. schrieb:
> Grundsätzlich funktioniert das auch, wenn er nur den Weichen Befehlen
> gibt und diese nicht antworten (also nur TXD).

Grundsätzlich aber nur bis zu einer bestimmten Anzahl von Empfängern, 
das Konzept ist nicht beliebig skalierbar.

> Allerdings stellt sich mir die Frage, warum wurde kein I2C verwendet?
> Das ist doch genau dafür gedacht!

Naja, I2C ist eigentlich für Kommunikation auf einer oder auch zwei 
Platinen innerhalb eines Gerätes gedacht. Ich schätze aber, dass der TO 
hier Strippen bis zu mehreren Metern hat. Jaja.... soll ja auch laufen, 
aber eigentlich ist auch I2C dafür nicht gedacht.

Das beste wäre hier wohl RS485, wobei es hier auch eine (physikalische) 
Grenze von Busteilnehmern gibt.
#4212713
Lesenswert?

Frank M. schrieb:
> Naja, I2C ist eigentlich für Kommunikation auf einer oder auch zwei
> Platinen innerhalb eines Gerätes gedacht. Ich schätze aber, dass der TO
> hier Strippen bis zu mehreren Metern hat. Jaja.... soll ja auch laufen,
> aber eigentlich ist auch I2C dafür nicht gedacht.
Man muss ja auch nicht mit MHzen über die Leitung tatken... Wenn man es 
etwas langsamer angeht gibts bei n paar Metern keine Probleme.
Moderator Persönliche Seite #4212721
Lesenswert?

Ingo L. schrieb:
> Man muss ja auch nicht mit MHzen über die Leitung tatken... Wenn man es
> etwas langsamer angeht gibts bei n paar Metern keine Probleme.

Soll er jetzt 29 AVR-Module wegwerfen, alles in I2C umbauen, damit er 
dann das 30te anschließen kann?

Ich habe doch oben schon die Lösung hingepinselt: Einfach einen weiteren 
MAX232 parallel anschließen und dann hat der TO für weitere zwei Dutzend 
AVR-Module Luft.
Gast #4212722
Lesenswert?

Frank M. schrieb:
>                      _________
>                     |         |    |-----|AVR
>                     |         |    |
> PC mit RS 232---+---| MAX 232 |----|-----|AVR
>                 |   |         |    |
>                 |   |_________|    |-----|AVR
>                 |
>                 |    _________
>                 |   |         |    |-----|AVR
>                 |   |         |    |
>                 +---| MAX 232 |----|-----|AVR
>                     |         |    |
>                     |_________|    |-----|AVR

Hab ich schon probiert, funktioniert leider nicht. Das macht anscheinend 
die RS 232 Schnittstelle nicht mit.

Hab es mal so probiert

                      _______
                     |         |        |-----|AVR
                     |         |        |
 PC mit RS 232-------| MAX 232 |---+----|-----|AVR
                     |         |   |    |
                     |_________|   |    |-----|AVR
                                   |
                                   |
                                   |
                      _______    |
                     |         |   |    |-----|AVR
                 +---|         |---+    |
                 |   | MAX 232 |        |-----|AVR
                 +---|         |--------|
                     |_________|        |-----|AVR


Gibt aber auch keine Verbesserung, leider.

Ingo L. schrieb:
> Verbessert sich die Sache wenn du die Baudrate runter nimmst?

Noch nicht, würde ich mal ausprobieren. Was ist den zu empfehlen, habe 
aktuell 9600.
Moderator (Firma: Titel) Persönliche Seite #4212732
Lesenswert?

Tobi schrieb:
> Das macht anscheinend die RS 232 Schnittstelle nicht mit.
Doch. Die macht noch einiges mehr mit.

> Gibt aber auch keine Verbesserung, leider.
Dann ist da ein Fehler in deiner Schaltung. Die gepostete würde (mit 
passendem Massebezug) durchaus funktionieren.

> Baudrate ... aktuell 9600.
Das ist langsam genug.

Hast du ein Oszilloskop?
Moderator Persönliche Seite #4212735
Lesenswert?

Tobi schrieb:
> Hab ich schon probiert, funktioniert leider nicht. Das macht anscheinend
> die RS 232 Schnittstelle nicht mit.

Das glaube ich nicht. Normalerweise ist es überhaupt kein Problem, an 
eine RS232 mehrere Empfänger anzuhängen. Du musst etwas falsch gemacht 
haben.

> Hab es mal so probiert
>
>                       _________
>                      |         |        |-----|AVR
>                      |         |        |
>  PC mit RS 232-------| MAX 232 |---+----|-----|AVR
>                      |         |   |    |
>                      |_________|   |    |-----|AVR
>                                    |
>                                    |
>                                    |
>                       _______    |
>                      |         |   |    |-----|AVR
>                  +---|         |---+    |
>                  |   | MAX 232 |        |-----|AVR
>                  +---|         |--------|
>                      |_________|        |-----|AVR

Das geht aber nur, wenn Du die Anzahl der AVRs pro MAX232 reduzierst. Du 
bist mit 29 Stück an einer instabilen Schwelle. Außerdem ist diese 
Lösung "von hinten durch die Brust ins Auge".

Der MAX232 hat doch 2 Transceiver, warum dann nicht so:

                            ----------
              +------- R1In +        + 25 x AVR
PC RS232 -----|             | MAX232 |
              +------- R2In +        + 25 x AVR
                            ----------

Geh dabei signifikant runter von den 29 "Verbrauchern".
Gast #4212737
Lesenswert?

Lothar M. schrieb:
>> Das macht anscheinend die RS 232 Schnittstelle nicht mit.
> Doch. Die macht noch einiges mehr mit.
>
>> Gibt aber auch keine Verbesserung, leider.
> Dann ist da ein Fehler in deiner Schaltung. Die gepostete würde (mit
> passendem Massebezug) durchaus funktionieren.


Dann werde ich nochmal die Schaltung kontrollieren und schauen ob das 
dann funktioniert.

Lothar M. schrieb:
> Hast du ein Oszilloskop

leider nur ein sehr einfaches, glaube dass ich nicht die 
Flankensteilheit oder ähnliches rausbekommen würde.
#4212754
Lesenswert?

Tobi schrieb:
> Das ganze ging auch ganz gut, aber als ich ca. die 30 Weiche mit AVR
> angeschlossen habe ging die ganze Kommunikation nicht mehr. Entnehme ich
> den AVR wieder funktioniert alles wie bisher. Auch mit einem anderen AVR
> funktionier es leider immer noch nicht.

kannst du mal sagen welche Längen welche Strippen haben?

ist PC zu MAX lang oder MAX zu AVR lang, der feine Unterschied.

Die längsten Strippen sollten PC zu MAX sein, vom MAX zu AVR sollten nur 
wenige cm betragen, evtl. wie schon geschrieben MAX mehrere AVR in 
Gruppen zusammenfassen die kurz angebunden sind, die längeren Strecken 
eben vom PC zu MAX verteilen.
Gast #4212938
Lesenswert?

Tobi schrieb:
> Hab meinen MAX 232 neu verdrahtet, jetzt klappt wieder alles.

Dann geh mal auf maximal 20, und nimm lieber einen 2. MAX232 wenn du 
mehr als 40 brauchst.
Man muss nicht bis auf Kante gehen, sonst geht es nächste Woche wieder 
nicht, wenn z.B. die Netzspannung mal 3% Unter oder 5% Überspannung hat, 
oder bei der nächsten Hitzewelle es im Raum 7° wärmer ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren