Hallo, als -fast- Neuling auf diesem Sektor brauche ich noch Unterstützung und bitte ich um kurze Beantwortung. Es werden 2 PIC's mittels I2C-Übertragung miteinander verbunden. a) PIC 16F877 (MASTER) 16MHz. SSPADD für 100 KHz 39, Port C3 -SCL-, Port C4 -SDA-. b) PIC 16F688 (SLAVE) Quartz ?? Port C3 -SCL-, Port C4 -SDA-. Ablauffolge: b) Überträgt laufend eingehende Daten von insges. 8 Schaltern an a). Nach Verarbeitung der eingegangenen Daten überträgt a) die neuen Werte, wieder als 8 bit Datensatz (dieselbe Datenleitung), an b) und zusätzlich weitere SLAVEs. Fragen: 1) Benötigt SLAVE-PIC selbst auch ein Quartz für den Takt? (oder genügt interner Takt mit Widerstand (welcher Wert) an OSC1? -ER-Mode-) 2) Wie adressiere ich das (die) SLAVE(s)? Muß ich die selbst gewählte Adresse vorher im internen EEPROM abspeichern und dort dann im Programm abfragen? Bei großen PICs gibt es ein SSPADD-Register für 7 bit-Adresse, nicht aber im PIC 16F688. (kein MSSP-Modul vorhanden) 3) Für beide PIC's muß ein separates 'Programm.c' geschrieben werden. Wie lauten die versch. Anweisungen für die beiden 'Programme.c' ? MASTER-->SLAVE:(Anweisungen aus 'I2C.c'-Funktionen PICCLite entnommen)
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
Wie müssen die Anweisungen zu obigem Datenverkehr in Programm 'SLAVE.c' lauten? Ist die Übertragungsprozedur nur im Programm 'MASTER.c' nötig? Für weitere Info's stehe ich gerne zur Verfügung und danke vielmals im voraus. Jochen