I2C1 bus frequency at 400 kHz?


according to the TRM of AM335x the I2C bus frequency can be 100 kHz or 400 kHz. But when I have a look into the StarterWare I2C examples, only 100 kHz are used (for EEPROM and PMIC).

Is there a special reason for this? Or is it just a limitation of the example sources and BBB hardware in general can run with 400 kHz?


BeagleBone Black under Linux, runs at 400KHz.


Find the register that sets the frequency in the TRM and read and examine the clocking used for I2C. Typically it’s a divider from the CPU clock which maybe set in a register. Make sure the divider value is a binary multiple of the divided clock. If it is change the StarterWare line of code to use your new divider. If it’s not a multiple you have to Change the main clock so it is and divide to 400 kHz. Follow the I2C init code examination of all registers the code reference in the TRM and make sure it makes sense . Usually the TRM gives a brief explanation of steps needed to do to . Compare steps to code