Calliope mini v3 und i2c

Es hält sich das hartnäckige Gerücht, dass die i2c-Adressen 16 (0x10), 24 (0x1E) und 104 (0x68) beim Calliope durch interne i2c-Bausteine belegt sind und deswegen nicht verwendet werden können. So seien beispielsweise die Echtzeituhren DS1307 und DS3231 nicht mit dem Calliope zu gebrauchen, weil sie über die i2c-Adresse 104 (0x68) angesprochen werden.

Diese Aussage (z.B. hier) gilt für die alten Calliope mini v1.3, v2.0 und v2.1. Diese Versionen haben genau einen i2c-Bus, den sich interne und externe i2c-Bausteine teilen müssen. Intern arbeitet der Baustein Bosch BMX055, bei dem jeder Funktionsblock über eine eigene i2c-Adresse angesprochen wird, u.z. 16 (0x10) Magnetometer, 24 (0x1E) Accelerometer und 104 (0x68) Gyroskop. Diese drei i2c-Adressen werden im i2c-Scanner angezeigt, programmiert mit MicroBlocks. Extern ist nichts am Calliope angeschlossen.

Die obige Aussage gilt nicht für den Calliope v3. Der Calliope v3 besitzt einen internen und einen externen i2c-Bus, die völlig unabhängig voneinander funktionieren. Intern ist im Calliope v3 der Baustein LSM303AGR mit zwei i2c-Adressen eingesetzt, u.z. 25 (0x19) Accelerometer und 30 (0x1E) Magnetometer. Außerdem sind zwei weitere interne i2c-Adressen 112 (0x70) und 114 (0x72) belegt durch Interface MCU … letzteres habe ich bei Jørn von Calliope erfragt.

Extern habe ich in diesem Experiment die Echtzeituhr DS1307 mit der i2c-Adresse 104 (0x68) angeschlossen, um mal eben dem hartnäckigen Gerücht entgegenzuwirken.

Ja, in MicroBlocks gibt es unterschiedliche Blöcke für den internen und den externen i2c-Bus. In MakeCode habe ich für den internen i2c-Bus keine Optionen gefunden.

Viel Erfolg für eure eigenen Experimente mit unterschiedlichen i2c-Modulen am Calliope mini v3!

Beste Grüße
Ralf

3 „Gefällt mir“