Hello CircuitDojo Community,

In a Zephyr based application running on a Sparkfun nRF9160 based board, how may I track down what lower level driver code initializes the I2C peripheral? I see in Zephyr 2.6.0’s source tree a number of architecture specific driver files in:

[west_workspace]/zephyr/drivers/i2c

but none of the source files here have names which jump out as being for the ARM Cortex-M33. My goal is see whether there is lower level peripheral initialization code which could be called arbitrarily later after firmware boot time. I have an i2c peripheral which sometimes fails to initialize fully, but always initializes on a forced reboot, by invoking nrfjprog --reset with a JLink attached to the development board.

Hoping to find a way to re-try I2C initialization in a manner more pointed and elegant than a cold reboot!

  • Ted

    tedhavelka66 nRF Connect SDK has plumbing for getting I2C working in Zephyr on the nRF9160. You may want to poke around in there.

    Terms and Conditions | Privacy Policy