PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme RS232 zwischen 2 µcs und PC



MelMan
23.12.2008, 14:08
Tag zusammen,

bin am verzweifeln. Also ich habe einen ATMGEA8, einen ATMEGA644 und meine PC zusammen als Ring verbunden, sodass sie untereinander kommunizieren können (s. Anhang). Die Kommunikation funktioniert aber nur, wenn ich am ATMEGA644 das Programmierkabel (ISP Dongle) angeschlossen habe. Sobald ich diesen entferne, bekomme ich nur Müll. Des weiteren ist das Problem dass die Kommunikation zwischen ATMEGA8 und ATEMGA44 auch laufen soll, wenn der PC aus ist aber das funktioniert dann gar nich mehr. Weis da einer weiter?

Mfg

PicNick
23.12.2008, 14:46
Die Sache mit dem ISP-Dongle ist meistens die, dass OHNE der Reset-Pin vom µC in der Luft hängt. Der sollte mit Pull-up auf + hängen.
Für den PC kannst du einen Stecker nehmen, der die Verbindung AT8 --> AT644 kurz-schliesst, wenn der PC abgesteckt wird.
Geht auch elektrisch, das ist aber komplizierter

Besserwessi
23.12.2008, 14:48
Als Ring geht dass mit einem Fehlenden Teilnehmer nur, wenn mann dann statt dem PC einen Dummystecker hat, der einfach TX,RX verbindet.

Das Problem mit dem ISP dongle könnte eine fehlende oder schlechte Masseverbindung sein.

MelMan
23.12.2008, 15:20
Ok das mit den RxD und TxD verbinden sollte ich hinbekommen aber mein RESET hängt schon auf +.

PicNick
23.12.2008, 16:12
Nun, Masse + Reset sind heisse Kandidaten, check' das wirklich ganz genau.
Etwas theoretisch noch + , je nachdem, wo's herkommt.

MelMan
23.12.2008, 16:17
jop bin grad dabei hab festgestellt dass ich, wenn ich keine Spannung anliegen habe, eine 0 Ohm masseverbindung vom Controller zum PC habe. Sobald ich aber Spannug drauf gebe habe ich ca. 60 Ohm. Ich versuch mal ein bisschen rum meld mich dann wenn ich erfolgreich bin (oder auch nicht)

MelMan
23.12.2008, 17:33
So habs..lag an dem Kabel. Mit nem neuen funktioniert es einwandfrei. Jetzt muss ich nur noch das mit RxD und TxD machen. Kann ich da nicht theoretisch nen Transistor zwischen schalten der, sobald der PC aus ist, RxD und TxD verbindet?

Besserwessi
23.12.2008, 21:15
Es ist nicht gerade die wirklich feine Art, aber es könnte reichen einen passenden Widerstand von ca. 2 kOhm zwischen TX und Rx zum PC zu haben. Allerdings wohl nur, wenn der PC nicht nur aus ist sondern wirklich das Kabel abgezogen wird. Mit nur einem Transistor als Schalter ist das sonst wohl auch nicht getan.
1. Ist das RS232 Signal bibolar, hat also Strom in beide Richtungen. Und 2. kann der Ausgeschaltete PC das Signal deutlich stören, man müßte also wirklich umschalten. Wenn die Controller dicht zusammen sind, und am besten auch noch aus der gleichen Versorgungsspannung gespeißt werden, könnte man das Signal relativ einfach umschalten, dann aber besser gleich mit TTL bzw, CMOS Signalpegeln und nicht erst mit den +-10 V Pegeln der RS232.

MelMan
24.12.2008, 12:39
Also die beiden Controller sind weit entfernt (ca.8 Meter) und ich möchte nicht immer das Kabel vom PC abziehen. Die Steuerung soll, wenn der PC aus geht, einfach ganz normal weiterlaufen nur dass der PC halt im Ring fehlt. Sobald er wieder eingeschaltet wird kann er wieder an der Kommunikation teilnehmen. Die µcs laufen beide über eine Spannungsquelle

Besserwessi
25.12.2008, 14:51
Ein umschalten sollte schon gehen, ist aber nicht ganz einfach, denn das RS232 Signal hat positive und negative Spannungen. Den PC Eingang könnte man wohl duch einen einfachen Widerstand abkoppeln, sodass der nicht mehr weiter stört. Das wird erst bei hohen Baudraten ein Problem. Das umschalten des Signals könnte man dann mit 2 JFETs machen. Da keine Spannung kein gültiger zustand für die RS232 ist, sollte man sogar den Auszusand noch erkennen können.

Einfacher wäre es aber wohl das Signal das zum PC geht, immer auch an den anderen Controller zu schicken und nur bei Bedarf auszuwerten.

Bernhard667
25.12.2008, 16:12
Hallo,
das könnte man doch mit Relais machen. Wenn der PC an ist kannst Du von dort dir 5V oder 12 Volt aus dem Netzteil rausholen und damit Relais anziehen.
Wenn der PC aus ist, fallen die Relais ab.
Diese Relais schalten dann um zwischen 2 und 3 Teilnehmern in deinem Netzwerk.

Du kannst die Spannung für die Relais auch aus USB rausziehen. Dort hast Du auch 5V, und musst den PC nicht aufmachen.

Bernhard

MelMan
25.12.2008, 18:22
Ja das mit dem Relais hab ich auch überlegt. Wenn der PC aus ist, soll nur noch der AT8 Befehle vom AT644 empfangen (der AT8 soll also nicht an den AT644 senden). Ich hab mir gedacht es reicht wenn der PC einfach aus ist aber leider hat die Steuerung dann nicht mehr funktionoert. Aber ich werd es mal mit einem Relais ausprobieren.