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
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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.