Forum: Mikrocontroller und Digitale Elektronik PIC C18 I2C weiß nicht weiter


von Thomas W. (thomas0906)


Lesenswert?

Hi

Ich habe heute den ganzen Tag nach Lösungen gesucht, aber es gibt 
wirklich kaum Informationen zu dem Thema.

Es geht darum, einen PIC18F4550 und einen 18F2620 mit I2C zu verbinden.

Ich arbeite mit dem PICKIT3 und MPLAB und C18 Compiler.

Nun gibt es ja die i2c.h vom Microchip.

Ich habe herausgefunden:
Die kann Strings senden, die kann einzelne Bytes senden.
Da gibt es keine Timeouts. Slave oder Master warten immer auf die
Antwort des anderen.

Ich möchte: Byte Array unterschiedlicher Längen senden. (1-33 Bytes)
Ich möchte im MAIN weiterarbeiten, also eigentlich nirgends 
hängenbleiben, wenn auf den Bus gewartet wird. Ich möchte daher auch 
gerne am Slave einen Interrupt ausgelöst haben (kein Polling) , wenn 
Daten anstehen. Notfalls aber auch Polling. Und natürlich TImeouts, wenn 
was hängt. Und gibt es auch Übertragungsfehler? Die muß man ja auch 
erkennen!? Wie?

Das einzige Beispiel von Microchip, das man findet, sendet einfach nur 
einen String mit einer 0 am Ende und macht kein Polling.

Wie habt ihr das gelöst?
Wo gibt es Hinweise, wie man die LIB vernünftig nutzt?
Examples für die Fälle, die mich interessieren?

Gruß
Thomas

von madeyemike (Gast)


Lesenswert?

Hallo Thomas,

Ich kann aus eigener Erfahrung sagen, dass die Lib gar nichts taugt. Wir 
mussten hier in der Arbeit unsere eigene Interrupt basierte I2C-Lib 
schreiben.

Von daher kann ich dir nur empfehlen, dass auch zu tun. Also 
Datenblätter wälzen und ab gehts :)

Gruß Mike

von Thomas W. (thomas0906)


Lesenswert?

Hi

Das habe ich befürchtet :-(
Lohnt für mich privat den Aufwand irgendwie nicht.
Schon komisch, daß es zu diesem Thema sooo wenig zu finden gibt.

Gruß
Thomas

von Holger W. (holgerw)


Lesenswert?

Ich hab mir die Lib von Microchip angesehen und quasi kopiert, dabei die 
Warteschleifen auf Timeout umgebaut.
Es hilft wenn man zuerst mit einer sicher funktionierenden Gegenstelle 
testet, z.b. EEprom.
Allerdings stehe ich mit I2C auch irgendwie auf Kriegsfuß.

Holger

von Lukas D. (lukas_d)


Lesenswert?

Hi,

das I2C.h file kann man wirklich den Hasen geben. Die Funktionen lassen 
sich relativ schnell schreiben. Musst mal nach dem Datenblatt AN734 und 
AN735 googlen. Darin geht es speziell um das MSSP-Modul im PIC sprich 
I2C. Enthalten sind auch die Funktionen, zwar im Assembler aber wenn man 
den Syntax versteht kann man die gut umwandeln. Wenn du hilfe benötigst 
kann ich jenachdem welche Probleme anfallen, da ich bestimmt selbst noch 
nicht alle gehabt habe, helfen.

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.