klar geht das nit ... wenn die TX einfach zusammengelötet werden laufen die pegel gegeneinander ... kann ja nicht gehen.
wenn, dann geht das nur über je eine diode an den TX und n Pullup.
Hallo!
Schon oft wurde in diesem Forum empfohlen zum ansteuern von 2 µC's einfach die seriellen kabel zusammenzufassen und gebündelt "in den PC zu stecken". Das wurde mir im Forum auch mal so erzählt und ich habe es auch wiederholt und dieses Verfahren anderen Usern empfohlen . Jetzt bin ich endlich mal dazu gekommen das selber auszuprobieren und stelle fest dass es nicht funktioniert. Falls beide µCs mal genau gleichzeitig Daten an den PC senden, NUR DANN kommt ein Zeichenwirrwarr am PC an. Senden die µCs nacheinander, so kommt überhaupt nix an. Ist nur ein µC mit dem seriellen Kabel verbunden, so funktioniert alles wunderbar.
Komischerweise funktioniert das senden vom PC zu den µCs auch wenn beide µCs angeschlossen sind (Empfang in den µCs per Inkey())...
Also, so problemlos scheint das nicht zu funktionieren... Gibts vielleicht noch ein paar Tipps warum das so ist?
Viele Grüße,
William
edit: es funktioniert doch, das Problem ist gelöst (siehe weiter unten in diesem Thread)
klar geht das nit ... wenn die TX einfach zusammengelötet werden laufen die pegel gegeneinander ... kann ja nicht gehen.
wenn, dann geht das nur über je eine diode an den TX und n Pullup.
Vor den Erfolg haben die Götter den Schweiß gesetzt
und VITIS ... natürlich nur wenn die micros nicht gleichzeitig sprechen.
gruss
und an dich willa:
was soll das denn bringen zwei micros an einen port zu hängen, wenn du kein protokoll hast ? da geht ja aus deiner anfrage hervor, dass du keines hast.
möchtest du zwei oder einhundert mikros via pc über seriell abfragen ?
(das geht sehr (oder mittel) problemlos über eine serielle schnittstelle am pc
das gleiche gilt für den fall, dass du 2 oder einhundert micros kommandieren willst.
wenn die micros allerdings auf der gleichen leitung von sich aus sprechen sollen.. brauchst das master - slave protokoll... sonst reden die durcheinander.
MASTER/SLAVE heisst : einer steuert die konversation. er sagt also, wer sprechen darf und wer das maul zu halten hat. dann gibt es keine probleme.
gruss klaus
Hallo! Danke erstmal für eure Posts.
Naja, soooooo klar scheint das nicht zu sein, schließlich wurde das hier im Forum 3mal unabhängig voneinander empfohlen... Sonst wäre ich ja gar nicht auf die Idee gekommen...klar geht das nit ...
Könntest du das noch ein bisserl genauer erläutern? Dioden machen ja sinn, einfach nach jedem TX eine in die Leitung oder...? Und von wo nach wo dann Pullups?wenn, dann geht das nur über je eine diode an den TX und n Pullup
Naja, mein "Protokoll" ist: PC sendet eine Frage, µC1 antwortet sofort, µC2 wartet 100ms, µC3 wartet 200 ms.... So kommen die sich nicht in die Quere.was soll das denn bringen zwei micros an einen port zu hängen, wenn du kein protokoll hast ? da geht ja aus deiner anfrage hervor, dass du keines hast.
Ja wie denn? Bei mir klappts mit dem antworten ja nicht...möchtest du zwei oder einhundert mikros via pc über seriell abfragen ?
(das geht sehr (oder mittel) problemlos über eine serielle schnittstelle am pc
Vielen Dank und viele Grüße,
William
Viele Grüße, William
-> http://william.thielicke.org/
Hat vielleicht sonst noch jemand eine Idee wie das mit der Diode gemeint sein kann...? Verstehe halt nicht so viel von Elektronik.....
Viele Grüße, William
-> http://william.thielicke.org/
Das Problem ist, dass die µCs ihre Leitung fest auf Masse halten, wenn sie gerade nichts senden. Damit geraten sie mit dem gerade Sendenden in Konflikt.
Wenn du auf dem 5V-Pegel die Leitungen zusammenschaltest, brauchts du imho eher einen zentralen Pulldown. Und dann für jeden µC eine Diode in der Leitung, Anode am µC, Kathode am Widerstand. Dann liegt im Ruhezustand die Leitung auf Masse. Wenn einer sendet, zieht er über die Diode die Leitung auf 5V. Wenn ein zweiter gleichzeitig sendet, überlagern sich die Daten, aber es gibt keinen Kurzschluss.
Hi! Danke für deine Antwort. Kann ich mir das ungefähr so vorstellen wie im Bild? Dass die µCs nicht gleichzeitig senden, dafür sorge ich per Software.
Viele Grüße, William
-> http://william.thielicke.org/
Müsste eigentlich funktionieren... hab aber so was noch nie selbst ausprobiert. Ich vernetzte meine Controller lieber per I2C.
Hallo!
@ Willa
Dein Schaltplan ist elektronisch gesehen i.O. Zwischen den pull-down R und den PC gehört noch ein Wandler, der aus 5V Signalen +/- 12V macht (z.B. MAX232).
MfG
Die einfachste Methode ist das Daisy-Chaining ( Gänseblümchenkette ).
Nach dieser Methode, des seriellen Bussystems, arbeitet der PCI-Bus im PC und auch das Ethernet.
Kurze Erklärung : µC1 sendet auf TX ein Datenpaket an RX von µC2, ist dieser nicht der adressierte Empfänger gibt er das Paket über seinen TX an den RX des nächsten weiter bis einer die Daten vom Bus nimmt und über seinen TX den Empfang bestätigt. In diesem "Ring" kann, über Pegelwandler (z.B. MAX232) auch ein PC eingeschliffen werden.
( Das beim PCI-Bus, zur Quasiparallelisierung, noch DMA-Steuerung und Interruptservices inkl. Prefetch dazukommen, will ich nicht verschweigen, aber auch nicht langatmig erklären. Siehe dazu Literatur z.B. von, meinem Kumpel, Rodney Zaaks )
Gruß
P.s. Für eine reine Hardwarelösung würde ich die Ausgänge der µC über Exclusivodergatter anschließen.
Planung ersetzt Zufall durch Irrtum
Gruß aus dem Ruhrgebiet Hartmut
Lesezeichen