Forum: Mikrocontroller und Digitale Elektronik 2 PIC's miteinander verbinden


von Rudi H. (rubberdog)


Lesenswert?

Hallo Community,

ich möchte zwei PIC's über die 8 Bitleitungen eines Ports miteinander 
verbinden, um den 2. PIC nach Bitausgabe vom 1. PIC aus zu starten:

1.PIC misst eine bestimmte Zeitspanne und danach "sagt er" dem 2.PIC 
(z.B.  Bit2 an PortB geht auf Low), dass dieser ein Servo (PWM) bewegen 
soll. Danach wartet 1.PIC wieder auf ein bestimmtes Signal oder tut 
irgendetwas anderes, während 2.PIC das Servo hin- und herbewegt 
(vereinfacht gesagt).

Das stelle ich mir so vor - einfach die 8 Bitleitungen der Ports beider 
PIC's miteinander verbinden (gemeinsamer PullUp). Für beide PIC's 
gleiche Spannungsversorgung, aber getrennte Quarze und unterschiedliche 
Taktfrequenz. Jeder PIC hat sein Programm (2.PIC wartet auf Interrupt 
vom Port und startet dann seine Aufgabe).

Wird das so problemlos funktionieren? Was meint Ihr??

Vielen Dank für Eure Postings,
Rudi

von Sascha (Gast)


Lesenswert?

Du kannst auch die eingebauten seriellen Schnittstellen wie RS232, SPI 
oder I2C nutzen, dazu muss man keine 8 Portpins verschwenden. Und 
eigentlich kann das auch ein PIC alleine machen.

von Sebastian Hepp (Gast)


Lesenswert?

Du musst nur aufpassen dass nicht beide PICs gleichzeitig treiben.

Wenn PIC A und PIC B sie selbe Leitung zur selben Zeit auf 
unterschiedliche Pegel ziehen, dann entspricht das einem Kurzschluss und 
die Ports oder gar die ganzen PICs gehen kaputt. Mit PullUps kannst du 
dem Kurzschluss entgegenwirken, indem entweder ein PIC nur sendet und 
der Andere nur empfängt, oder du nicht zwischen High und Low sondern 
zwischen Low und Hochohmig umschaltest (So wie Open Collector Ausgänge).

Deshalb würde ich auch SPI, I2C oder auch RS232 nutzen. Letztendlich ist 
es deine Entscheidung.

Viele Grüße
Sebihepp

von Rudi H. (rubberdog)


Lesenswert?

@Sascha, @Sebihepp

Wow, vielen Dank für Eure rasche Antwort! Das mit der Portverschwendung 
hab' ich gar nicht so bedacht und statt dessen I2C oder SPI verwenden 
ist sicher die bessere Lösung!
Vielen Dank auch für den Tipp mit der Kurzschlussgefahr!

Liebe Grüße
Rudi

von Auch selbständig (Gast)


Lesenswert?

Hallo Rudi

Manche PICs sind auch mit einer CAN-Bus-Hardware ausgestattet

Dann könntest du sogar mehrere Controller über zwei Leitungen 
zusammenhängen. Gut eignet sich auch RS485 oder RS422.

Kommt halt auch darauf an wie weit die Prozessoren örtlich voneinander 
entfernt sind. SPI und I2C würde ich eher für kurze Strecken einsetzen.

Beste Grüsse

Geri

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
Noch kein Account? Hier anmelden.