Microchip PIC als I2C-Slave

OP #676792
Lesenswert?

Hallo zusammen,
hat schon einmal jemand einen Microchip Pic als Slave programmiert? Mein 
konkreter Anwendungsfall wäre folgender.
Ich möchte einen Pic als I2C-Slave programmieren. Dieser sollte zyklisch 
A/D-Werte einlesen (10-12 A/D-Wandler Eingänge) und diese auf 
Anforderung von einem Master (ebenfalls ein Microchip Pic) per I2C an 
den Master übermitteln. Das ganze möchte ich so gestalten, daß der 
Master angeben kann, von welchem A/D-Wandlereingang der Wert vom Slave 
gesendet werden soll.
Das ganze wird von mir in C programmiert. Wenn jemand dazu Tips hat oder 
eventuell auch schon Sourcecode (von dem ich gerne profitieren würde 
smile ), wäre es nett, wenn ihr dazu schreiben könntet.

Gruß
Nuecke
(Firma: Promaxx.net) #676875
Lesenswert?

Ja,
läuft hier - aber nicht in C.

Da gibt es aber Tausende Beispielprogramme in Netz - in jeder Sprache. 
Sicher auch auf der Seite von Microchip.
Sieh in das Datenblatt von dem PIC - da steht sehr viel drin !


Im Grunde sieht man sich ganz genau an, welche Zustände der 
I2C-Empfänger haben kann (Start,Stop,Parity,NAK...).
Dann muß man das alles in eine INT-Routine packen. Die I2C-Hardware löst 
immer schöne IRQ aus, die man löscht und bedient.
Sieh Dir vor allem jedes Bit an und sieh nach, was es bedeutet. 
Teilweise mußt Du Fehler-Bits selbst löschen (OV), teilweise kannst Du 
erst Werte schreiben, wenn bestimmte Bits gelöscht sind (BF) oder man 
wartet auf ein Bit (BCLIF)...

Die Adressierung mußt Du vorher mit einer Transmission vom Master 
übertragen, und dann kann der Master ja einen Receive durchführen und 
der Slave liefert die richtigen Daten.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren