I2C nicht mit internem 8 MHz Takt?

Hallo,

kann es sein, das I2C nur mit Quarz und nicht mit dem internen 8 MHz Takt sauber läuft? Ich bekomme mein I2C LCD mit PCF8574 ums Verrecken nicht ans Laufen.
PullUps sind dran, die Adressierung stimmt, usw...
Am Arduino lief es jedenfalls schon. Jetzt habe ich einen Aufbau auf Lochrasterplatine, wo ich den Quarz eigentlich nicht brauche (dachte ich)
Außerdem wäre es interessant, ob es inzwischen eine Lösung / Lib mit nichtblockierendem I2C Code gibt. Hintergrund ist, das ich das LCD Display gerne für Abgleicharbeiten hätte, es für den normalen Betrieb aber entbehrlich ist. Auskommentieren und neu Compilieren und Flashen gige zwar, ist aber nicht besonders elegant :wink:

Update: mit internem Takt geht, ich hatte a vergessen, die Fuses über den Bootloader zu setzen und b hatt ich SDA und SCL vertauscht :blush:

vertauscht

Ja, dann... dann darf es auch versagen ....
8)

Was heißt Abgleicharbeiten? Theoretisch kannst du das ganze doch mit einem Simplen Schalter trennen. Wenn Schalter atkiv, I2C wird angesprochen.

Ich hatte mir mal eine Lib in avr-gcc geschrieben. Zwar nicht für I2C aber SPI und blockierungsfrei. Das ganze wurde mit einem Timer gelöst, der im Hintergrund die Daten abgearbeitet hat. Soll heißen, das ganze war gepuffert. Einmal Werte übergeben hat das ganze dann nach und nach neben dem normalen Code abgearbeitet. Blockierend war da nichts. Warum nicht evtl. einen SPI Adapter basteln? Dürfte bei 8MHz immerhin mit 4MHz laufen. Einfach einen 595er dafür nutzen.

Ich schau nachher mal, ob ich die Lib noch wieder finde.