Hello,
I have been using the TWIM peripheral of the nRF52832 (via the twi_mngr) to talk to an accelerometer and a magnetometer. I have 4.7k ohm pullup resistors (in parallel with the internal pullups since they are hardcoded to be used by the twim driver) which I previously was instructed to use in order to achieve 400kbps.
I am encountering a strange behavior where the peripheral just simply stops talking to the sensors on the bus. I am unable to isolate under what conditions this occurs. It seems to be rather unpredictable. When it does occur, I notice that it occurs sooner and sooner after each reset of the nRF52832 to the point that it occurs immediately upon reset and no transactions occur on the bus. This will continue to happen and the only thing I've found that makes the behavior go away temporarily is leaving everything off for some time.
Inspecting the TWIM registers when his behavior is actively happening, I find that no error has occurred of any kind. It is as if the peripheral simply freezes up into some state. This manifests in the twi_mngr as an out of memory error when trying to schedule transactions since the MCU continues to schedule transactions indefinitely but the TWIM peripheral is not sending the interrupts needed for twi_mngr to clear the transaction queue.
If you have any idea what might be causing this behavior, help would be greatly appreciated.