Einstellung der I2C-Bus-Baudrate beim Raspberry Pi (B, 2, 3)

Mini-PC, Steuerzentrale und mehr sind hier Thema

Moderatoren: mane, flax

wuff
Mitglied
Beiträge: 16
Registriert: 26.05.2016, 17:51

Einstellung der I2C-Bus-Baudrate beim Raspberry Pi (B, 2, 3)

Beitragvon wuff » 01.07.2017, 03:04

Der I2C-Bus (oder SMB) des Raspberry Pi bietet sich für die gesamte Bandbreite der Messtechnik an,
da viel Messtechnik-Peripherie und auch die meisten Microcontroller mit I2C-Slave-Interfaces aus-
gestattet sind.

Die aktuellen Raspbian-Distributionen (02/, 04/ und 06/2017) bieten eine simple Aktivierungsmöglichkeit
des I2C-Bus 1 (GPIO Pin 3 und 5 mit Pull-ups gegen 3,3 V) durch Aktivierung einer Checkbox in der Interface-
Sektion der Raspbian-Konfiguration an. Auf den PCBs sind 1,8-kOhm Pullup-Widerstände am SCL- und SDA-Pin
gegen 3,3 V verlötet.

Der I2C-Standard sieht als Clockraten in der Regel 100 kHz und 400 kHz (seltener noch 1 MHz) vor.

In Raspbian ist von einer voreingestellten Clockrate von 100 kHz die Rede.

Durch Nachprüfen an 3 Boards (RPi-B, RPi-2 und RPi-3) mittels eines Oszilloskops ergaben sich folgende
Differenzen:

Der RPi-Modell B zeigte im Default-Modus die richtige Baudrate von 100 kHz. Der RPi-Modell 2 zeigte
die halbe Clockrate von 50 kHz und der RPi-Modell 3 zeigte ca. 63 kHz.

Nach längerer Rumsucherei im Web fand ich nun die richtige Möglichkeit, um die Clockrate entsprechend
zu korrigieren. Erschwerend dabei ist, dass für verschiedene Versionen des Betriebssystems unterschiedliche
Systemdateien mit unterschiedlichen Befehlen editiert werden müssen und dass sich das auch für zukünftige
Versionen immer wieder ändern kann.

Für die aktuellen Raspbianversionen gilt:

RPi-Modell B: für 100 kHz ist kein Eingriff nötig. Es kann aber mit "sudo nano /boot/config.txt" nach dem
schon existierenden Eintrag "dtparam=i2c_arm=on" zusätzlich die Zeile "dtparam=i2c1_baudrate=100000"
eingegeben werden. Für 400 kHz lautet der Eintrag dann entsprechend "dtparam=i2c1_baudrate=400000".

RPi-Modell 2: für reale 100 kHz ist entsprechend "dtparam=i2c1_baudrate=200000" und für reale 400 kHz
ist "dtparam=i2c1_baudrate=800000" einzugeben.

RPi-Modell 3: für reale 100 kHz ist entsprechend "dtparam=i2c1_baudrate=160000" und für reale 400 kHz
ist "dtparam=i2c1_baudrate=640000" einzugeben.

Nach anschliessenden Neustarts werden die aktualisierten Baudraten dann übernommen.

W. Wachter

Zurück zu „Raspberry & Co“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast