Variable I2C speed | Cypress Semiconductor
Variable I2C speed
I need to change the I2C speed while running my program. For example first check on low-speed which slaves are present, and if these slaves are all high-speed I would like to use high speed for the further communication.
I do this by defining 2 I2C components (I2C_Slow and I2C_Fast) and multiplexing between them as indicated in "Figure 8 : I2C Bus Sharing". This example is for slaves but it also works for masters.
For the future, I would like to use a more flexible way to change the I2C speed of the master.
I cannot find and API to change to i2c rate. Am I overlooking it ? I did find the possibility to use external clocking but this seems rather complex.
I'm using PSOC5LP and PSOC Creator 3.3SP1 with I2C Version 3.5