mikrocontroller.net

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


Autor: Rudi Herwig (rubberdog)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sebastian Hepp (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rudi Herwig (rubberdog)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Auch selbständig (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.