1

Is the I²C frequency meanwhile changeable? I read a few articles a while ago, that the frequency is not changeable.

2 Answers 2

3

Yes it is, for all the info available on the I2C interface (which is part of the BSC, Broadcom Serial Controller), I suggest reading Chapter 3 (BSC) of the BCM2835 ARM Peripherals datasheets.

On the first page of Chapter 3, it mentions the Clock Divider register. On page 33, it explains this register in more depth:

Clock Divider

SCL = core clock / CDIV

Where core_clk is nominally 150 MHz. If CDIV is set to 0, the divisor is 32768. CDIV is always rounded down to an even number. The default value should result in a 100 kHz I2C clock frequency.

1
  • The core clock seems to 250 rather than 150 MHz at least on the Raspberry Pi Zero W. Commented Mar 23, 2020 at 10:09
2

i2cf is a small tool to change the I2C clock frequency.

Changes to 10 kHz and 4 kHz were verified with an oscilloscope. Tested only on a Raspberry Pi Zero W. The source may require modification for other models or to be a more generic solution.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.