arduino / arduino/ArduinoCore-mbed

I2C Clock on the Giga Only Supports 100khz, 400khz and 1mhz. No intermediate frequencies Supported

Open
#798 4 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.