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

Mini-PC, Steuerzentrale und mehr sind hier Thema

Moderatoren: mane, flax

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

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

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 (ab 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
(die intern auf dem RPi generierten) 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 Boards mit RPi-B, RPi-2, RPi-3B, RPi-3B+ und RPi Zero W mittels Oszilloskops ergaben sich
folgende Unterschiede:

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 RPi-Modell 3B, RPi-Modell 3B+ sowie Zero W zeigten 62,5 kHz.

In der Datei /boot/config.txt lassen sich die Clockraten entsprechend anpassen.

Für die aktuellen Raspbian-Versionen (Raspbian-jessie bis 07/17 und Raspbian-stretch ab 08/17) gilt:

Raspberry Pi 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".

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

Raspberry Pi 3B: für reale 100 kHz ist entsprechend "dtparam=i2c1_baudrate=160000" und für reale 400 kHz
ist "dtparam=i2c1_baudrate=640000" einzugeben.

Raspberry Pi 3B+: für reale 100 kHz ist entsprechend "dtparam=i2c1_baudrate=160000" und für reale 400 kHz
ist "dtparam=i2c1_baudrate=640000" einzugeben.

Raspberry Pi Zero W: 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