Description
The RA4M1 I2C controller runs slower than the selected clock rate for some 3.3V devices. These devices run at the full rate on Uno R3.
I have had no problems with 5V devices. All 5V devices I have tried run at 400kHz.
I looked for any issues for RA4M1 on the Renesas site. It seems the controller is very fussy for 3.3V devices. Devices fail if powered by slightly less than 3.3V and Renesas states:
For the functioning of IIC Slave on all the boards except for EK-RA6M3/EK-RA6M3G,FPB-RA6E1,external pull up resistors of value 3.9 or 4.7k ohms are required to be connected on I2C(SDA/SCL) lines.
Here is an example with a SSD1306 128 x 64 OLED display which has 4.7 K pullups to 3.3V.
On a R4 Minima I get 329kHz for 400kHz requested clock. I get 95kHz for 100 kHz requested clock.
I added an analog trace for SCL.
For the same program and device on Uno R3 I get exactly 400 kHz.:
Any Ideas what is causing 3.3V devices to run a bit slower on R4?
I have not tried more than one I2C device at a time on R4.
Edit: Are internal pullups enabled on R4?