PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2x ATMEGA 1x serielle Schnittstelle?



boeseTURBO-CT
14.06.2004, 20:06
Mal ne blöde Frage....

Ich hab zwei ATMEGA die ich einfach parallel an die serielle Schnittstelle anschließe (über n MAX232 IC)... Die Software auf den AVR´s wird so programmier das immer nur ein AVR senden kann, und der andere AVR warten muss bis der erste seine Daten gesendet bzw. empfangen hat. Geht das überhaupt? oder is das totaler Blödsinn?

Das Problem ist halt das ich die Messwerte von 2 AVR´s über eine serielle schnittstelle überwachen will...

Hat da jemand ne Idee?

Gruss

Jan

pbürgi
14.06.2004, 20:11
Des funzt schon aber so weit ich weiß brauchst du da keine MAX232, sonst konvertierst du die Spannung erst auf 5V(oder was halt die serielle Schnittstelle hat) und dann wieder runter.
Du musst halt den "Sende-Port" an den "Empfangs-Port" vom anderen und umgekehrt anschließen.
Dann musst du Programme schreiben, die nur senden, wenn sie nicht Empfangen, aber ich glaub des brauchst du auch net, aber da kann ich mich täuschen, sonst brauchst du nen Buffer.

boeseTURBO-CT
14.06.2004, 20:21
Moin,

neeee jetzt haste mich falsch verstanden... Ich hab meine serielle Schnittstelle. Die is am PC über den MAX232 angeschlossen. Hinter dem MAX232 sind dann zwei ATMEGA die Daten an den PC senden sollen... Nun war die Frage ob das funktioniert wenn man den ATMEGA´s praktisch sagt das Sie nicht gleichzeitig senden und nich gleichzeitig empfangen dürfen...

Gruss

Jan

recycle
14.06.2004, 21:41
Ich hab zwei ATMEGA die ich einfach parallel an die serielle Schnittstelle anschließe (über n MAX232 IC)... Die Software auf den AVR´s wird so programmier das immer nur ein AVR senden kann, und der andere AVR warten muss bis der erste seine Daten gesendet bzw. empfangen hat. Geht das überhaupt? oder is das totaler Blödsinn?


Besonders gesund hört sich das für mich nicht an, wenn du RX und TX der beiden Controller einfach so parallel schaltest.
Wenn der eine Controller TX auf high schaltet und beim anderen liegt TX auf low (oder auch umgekehrt) klingt das irgendwie nach Kurzschluss.

Ich weiss nicht, ob die Controller das abkönnen. Wenn du es einfach probieren willst, würde ich da wenigstens Widerstände zwischensetzen.

Wenn man mehrere Controller über die serielle Verbinden will, könnte man das auch als Rngschaltung aufbauen.

boeseTURBO-CT
14.06.2004, 21:47
Hallo recycle

Hmmm da haste aber recht, das hab ich noch nicht bedacht...

Was ist eine Rngschaltung? Haste da n Beispiel oder so?

Gruss

Jan

recycle
15.06.2004, 01:09
@boeseTURBO-CT



Hmmm da haste aber recht, das hab ich noch nicht bedacht...

Ob ich da wirklich recht habe, weiss ich nicht genau. Das hängt ja letztendlich davon ab, wie die RX und TX Pins beim ATMega intern beschaltet sind.
Mein Posting meinte ich erst mal nur als Warnung, vielleicht meldet sich ja noch jemand der sich etwas besser mit dem Innenleben der ATMegas auskennt und weiss ob die das verkraften oder nicht.



Was ist eine Rngschaltung? Haste da n Beispiel oder so?

Die Ringschaltung wurde vor kurzem in irgendeinem Thread hier besprochen. In welchem weiss ich leider nicht mehr, da müsstest du es mal mit der Suchfunktion probieren.

Im Prinzip verbindest du dabei TX vom 1. mit RX vom 2. und TX vom 2. mit RX vom 3. Controller usw.
TX vom letzten Controller verbindest du dann wieder mit RX vom ersten und erhältst so einen Ring, bei dem jeder Controller Daten von dem einen Nachbarn empfangen und an den anderen senden kann.

D.h., dass die Daten im Ring immer von einem Teilnehmer an den anderen weitergegeben werden müssen, bis sie bei demjenigen ankommen für den sie bestimmt sind. Bei 3 Teilnehmern sollte das aber nicht besonders problematisch sein.

Kjion
15.06.2004, 08:57
Ob ich da wirklich recht habe, weiss ich nicht genau. Das hängt ja letztendlich davon ab, wie die RX und TX Pins beim ATMega intern beschaltet sind.
Mein Posting meinte ich erst mal nur als Warnung, vielleicht meldet sich ja noch jemand der sich etwas besser mit dem Innenleben der ATMegas auskennt und weiss ob die das verkraften oder nicht.

Zwei Ausgänge aneinander hängen ist nie gut. Die ATmegas haben intern bei den Ports Push-Pull Treiber, das heißt wenn man auch nur aus Versehen die falsch setzt kann es einen dicken Kurzschluss geben.

@boeseTURBO-CT
Du könnest dafür aber zum Beispiel RS485 Treiber einsetzen, die sind extra dafür ausgelegt das die Daten zwischen mehreren Teilnehmern ausgetauscht werden können...

MfG Kjion

15.06.2004, 09:43
Ringschaltung wird hier beschrieben
https://www.roboternetz.de/phpBB2/viewtopic.php?t=1665&highlight=netzwerk

boeseTURBO-CT
15.06.2004, 12:23
@Kjion

Hast du da irgentwo n Beispiel wie man das letztendlich verkabelt? Woher weiß den welcher IC wann welcher IC angesprochen wird?

Gruss

Jan

boeseTURBO-CT
15.06.2004, 14:10
Kann man die Umschaltung zwischen den zwei seriellen schnittstellen der AVR´s nicht ner logischen "UND" Verknüpfung ein und ausschalten?

boeseTURBO-CT
16.06.2004, 09:50
Lässt sich die Umschaltung nicht einfach so realisieren:

http://www.electronicsplanet.ch/Schaltun/ElSchalt/schalter4.gif ??

Oder funzt das nisch?

AlexAtRobo
16.06.2004, 11:35
Das sollte in meinen Augen funktionieren. Du kannst aber auch fertige Multiplexer / Demultiplexer verwenden.