BBBlack i2c Debian 13 high speed

Goal is to be able to do perl/python scripting to exercise an external i2c slave device.
The bus speed is 400k.

I made some progress with a BBB that already had Debian 9 on it. I was able to get the bus speed adjusted by using an overlay. And that worked fine with the i2cset/i2cget/i2cdetect tools.

But I had trouble trying to install the packages to support perl/python i2c programming.

So I am now attempting to run on Debian 13 (booting from a microSD card). I got the programming packages installed. Then I ran into the issue of high speed i2c. I attempted to follow BBw - How to set i2c-2 baud rate to fast mode (400 kHz) but increasing the speed for i2c2 caused me to lose the device files for /dev/mmcblk1 and, though dmesg showd i2c2 bus was at 400k, I couldn’t actually communicate on it.

I am open to trying a different version of debian or whatever path will get me to the goal.
Chris

Which kernel version are testing right now?

I believe it is 6-17 something. I can get the actual if needed.

yes
uname -a
Linux BeagleBone 6.17.5-bone14 #1 SMP PREEMPT Tue Oct 28 23:21:44 UTC 2025 armv7l GNU/Linux

Messing with it some more (It’s a friday afternoon). the loss of mmcblk1 device files doesn’t seem directly related to i2c. If I edit uEnv.txt and take the comment mark from in front of “enable_uboot_overlays=1” then on the next boot my mmcblk1 device files don’t show up. This is while I still have “normal speed” i2c.

The best I can tell, the only other lines not commented out in the file are the uname_r at the top and down low the console and cmdline definitions/assignments

okay added back: add: BB-I2C1-FAST-00A0/BB-I2C2-FAST-00A0 · beagleboard/BeagleBoard-DeviceTrees@050550c · GitHub

In the image your running, you’ll find this source direcotyr:

/opt/source/dtb-6.17.x/

Run these commands to pull in all changes:

cd /opt/source/dtb-6.17.x/
git pull

and build:

./build_n_install.sh

This will give you two more nodes you can ad to /boot/uEnv.txt:

BB-I2C1-FAST-00A0.dtbo
BB-I2C2-FAST-00A0.dtbo

For example:

uboot_overlay_addr6=BB-I2C0-FAST-00A0.dtbo
uboot_overlay_addr7=BB-I2C2-FAST-00A0.dtbo

All these do is change one register:

clock-frequency = <100000>; -> clock-frequency = <400000>;

So if you end up makig your own i2c overlay, just include the clock change..

Regards,

1 Like