Yes, I've set that, but with the 400KHz setting, the I2C bus performance (measured by framerate achievable on an OLED display) is less than 25% of what can be obtained with the broadcom setting. (26 FPS with broadcom lib, 6 FPS with the dtparam of 400000).
However, experimenting with the Hi-speed I2C modes, I'm able to get 23 FPS natively which is close to the max available using the broadcom library setting. I set dtparam=i2c_arm=on,i2c_arm_baudrate=1700000 just above the max 1.689MHz for the Hi-speed settings. (I haven't experimented going higher, but overclocked at 1.3GHz, I would actually need to set 2.08MHz to equate to the 1.689MHz division from a 1GHz sysclock). More than happy at 23 FPS which allows 200 ms OLED updates from MPU acceleration/orientation data.
I also found a thread from the kernel I2C / smbus documentation that provides a struct for setting the I2C bus frequency https://www.kernel.org/doc/html/v4.18/d ... i/i2c.html -- but this will take a bit of implementation, likely though a kernel driver.
However, experimenting with the Hi-speed I2C modes, I'm able to get 23 FPS natively which is close to the max available using the broadcom library setting. I set dtparam=i2c_arm=on,i2c_arm_baudrate=1700000 just above the max 1.689MHz for the Hi-speed settings. (I haven't experimented going higher, but overclocked at 1.3GHz, I would actually need to set 2.08MHz to equate to the 1.689MHz division from a 1GHz sysclock). More than happy at 23 FPS which allows 200 ms OLED updates from MPU acceleration/orientation data.
I also found a thread from the kernel I2C / smbus documentation that provides a struct for setting the I2C bus frequency https://www.kernel.org/doc/html/v4.18/d ... i/i2c.html -- but this will take a bit of implementation, likely though a kernel driver.
Statistics: Posted by drankinatty — Fri Feb 23, 2024 4:18 am