Forum: Mikrocontroller und Digitale Elektronik PIC MSSP I2C Modul defekt?


von Maximilian G. (maxigraf)


Lesenswert?

Ich habe hier eine Schaltung mit drei PIC18LF2685 als I2C-Slaves (wobei 
ich im Moment nur mit zweien arbeite, der dritte ist abgesteckt). Das 
soll übrigens mal eine CNC-Fräse werden. Diese besteht aus einem 
Raspberry Pi (I2C-Master), einer Zwischenplatine auf der unter anderem 
die I2C-PullUp-Widerstände (2,2kOhm) verbaut sind und eine Pegelwandlung 
via MOSFETs zwischen den 3,3V des RPi und den 5V der PICs durchgeführt 
wird. Die drei übrigen Platinen mit den PICs sind die eigentlichen 
Motorcontroller (mit jeweils L297/L298). Verbunden ist alles mit 
Flachband-Kabeln.

Mit der I2C-Hardware hatte ich bisher eigentlich nie Probleme. Gestern 
Abend habe ich dann mal wieder daran herümgetüftelt und immer wieder 
neue Software eingespielt (via PICkit3) bis mir aufgefallen ist, dass 
die I2C-Kommunikation gar nicht mehr lief. Wie sich herausgestellt hat, 
ziehen beide PICs die SCL-Leitung permanent auf Low.

Ich habe daraufhin die Chips aus der Fassung genommen (natürlich nicht 
im laufenden Betrieb) worauf beide Leitungen durch die 
PullUp-Widerstände auf High gezogen werden konnten. Also habe ich die 
Chips mit einem Durchgangsprüfer gemessen und tatsächlich: die 
SCL-Leitung ist kurzgeschlossen mit GND. An dem dritten Chip konnte ich 
übrigens nichts derartiges messen, habe dort aber das Programm nicht 
getestet, weil ich den nicht auch noch kaputt machen möchte.

Dann habe ich versucht über ein kleines Programm, das nur den Port C auf 
Ausgang schaltet und abwechselnd von Low auf High und zurück schaltet, 
irgendeine Reaktion auf den beiden Pins SCL(RC3)/SDA(RC4) zu erhalten. 
Tatsächlich bleibt RC3 immer Low und RC4 immer High.

Es sieht also so aus, als würden die PICs dauer-Clock-Stretchen oder 
so...
Deswegen hoffe ich darauf, dass es kein Hardware-Defekt ist.

Nachdem ich nun aber das halbe Internet durchforstet habe, bisher leider 
nichts Brauchbares gefunden habe, hat vielleicht hier einer eine Idee?

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.