Wertes Forum, für meine Eisenbahnanlage (Signalsteuerungen) entwickle ich schon seit langem eigene Schaltmodule. Jeder Schaltmodul hat einen PIC µC. Die miteinander korrespondierenden Module werden über ser. UART-Verbindung miteinander verbunden. Die längste Verbindung zweier µC kann bis zu ca. 20m betragen. Hierfür wurde mir die allgemeine Verwendung von UART-Ver- bindungen empfohlen. Auf beiliegender Zeichnung sind die beiden Verbindungsfälle ersichtlich. Fall 1: Hier ist ein PIC 16F877A der MASTER und überträgt insges. 2byte an verschiedene Slaves. Fall 2: Obengenannter PIC ist hierbei jetzt der Slave, während nur 1 obengenannter Slave (Sk-Rel-Eb-Modul)jetzt der MASTER ist. Er überträgt nur 1 byte. Wie muß ich die Adressierung der einzelnen PICs in den Fällen 1 und 2 vornehmen? Nirgendwo konnte ich bislang entsprechende verständliche Anleitungen finden! Die Programmierung muß in C erfolgen. Wer kann mir mit wenigen verständlichen Angaben weiterhelfen? Für evtl. auftretende Fragen stehe ich gerne zur Verfügung. Freundliche Grüße und Dank im voraus. Jochen
Hallo, habe auch bereits 16 Pics über SPI verbunden. Bei Deinen Entfernungen ist aber wohl UART duch besser.. Du musst erst mal dafür sorgen, dass jeder PIC eine eigene Adresse bekummt. Z.B. über DIP codierschalter. Dann muss der Master ein Telegramm senden, die die Adresse des gemeinten PIC enthält. Nur der PIC, der sich angesprochen fühlt, sendet dann auf seiner TX Leitung Daten zurück. Setz mal besser noch jeweils 100 Ohm Widerstände in des TX Leitung der Slaves, um bei Fehlern zu verhindern, dass 2 Ausgänge parallel arbeiten. In der Software der Slaves die TX nur aus Ausgang setzen, wenn er auch senden möchte. LG Dirk
Gast
#3766536
Schau dir mal halbduplex RS485 an. Entweder Multimaster (wird schwieriger wegen Kollisionserkennung) oder Singlemaster (pollt ggf. die Slaves).
Gast
#3766568
Dirk F. schrieb: > Du musst erst mal dafür sorgen, dass jeder PIC eine eigene Adresse > bekummt. Z.B. über DIP codierschalter. Viele PICs haben ein EEPROM, wo man die ganz ohne zusätzlichen Hardwareaufwand ablegen kann. Wenn man jedem Modul zusätzlich noch eine Seriennummer fest einbrennt - kann man über Broadcast sogar die Adressen neu vergeben, so dass man Module tauschen und umadressieren kann. Außerdem bietet sich an, in jedem Modul z.B. eine Klartextinfo (Funktion, Anlagenkoordinaten, Gleis) o.ä. abzulegen, so dass man aus der bestehenden Anlage die Konfigurationsinformation abrufen kann und nicht auf (veraltete) Listen angewiesen ist.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.