arduino / arduino/ArduinoCore-mbed
I2C Clock on the Giga Only Supports 100khz, 400khz and 1mhz. No intermediate frequencies Supported
- Dominant language
- C
- Stars
- 411
- Forks
- 225
- PR merge metrics
- No merged PRs in 30d
Description
See https://forum.arduino.cc/t/bno086-does-not-work-at-i2c-clock-100mhz/1200365. But quoting from that:
>While testing the BNO086 with the Arduino Giga I noticed that setting the I2C clock at 400khz would cause the BNO086 to not sent any of reports. Tested with a couple of examples.
>
>Did find that Sparkfun recommended running at a I2c Clock of 350khz instead of 400khz for reliable operation: [MCU keeps resetting the sensor · Issue #2 · sparkfun/SparkFun_BNO08x_Arduino_Library · GitHub](https://github.com/sparkfun/SparkFun_BNO08x_Arduino_Library/issues/2#issuecomment-1836815134) as a work around.
>
>However if I try any other clock > 100khz or <400khz (specifically I tried 200khz and 350Khz) I get the "red blinking LED of doom". So my guess is that nothing but 100 and 400khz is supported by the giga.
So the question is how can I setClock for clocks other than 100 and 400khz?
Just for reference I was able to setClock to 350khz on a Teensy. Had to make sure it wasn't me.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start at the Giga's setClock entry point and trace how I2C frequencies are accepted or rejected. Reproduce the reported behavior with the BNO086 examples at 100, 200, 350, and 400 kHz, then verify that intermediate frequencies work without the red blinking LED while the existing frequencies remain supported.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- embedded-iot
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100