I am totally lost and desperate with solving an issue that I could not solve in weeks now. Here is how it looks like:
- custom nrf52840 board (Ebyte E72) with external 32khz crystal
- no Softdevice used (using mbed Cordio Stack)
- programmed using P20 of an attached nrf52_DK
- I2C connected to Port 0 Pin 12 (SDA) and Port 0 Pin 7 (CLK)
On mbedOS5 (up to 5.15.4) all is working perfectly fine. I can connect to the I2C devices attached and communicate properly without any issues. On the logic analyzer the data line as well as the clock are looking nice and clean.
If I now compile the same code for mbedOS 6 (tested all versions .0, .1, .2, .2.1, .3, .4) the code is buidling without any errors but when I am trying to communicate with the I2C devices I can not see any proper signal on the data line.
I have even removed all code related to I2C and started with a very clean I2C example again with the same result - data line does not seem to work on mbedOS6 while on mbedOS5 all is fine.
If anyone of you has any tip what I can try to make it work - I highly appreciate any tip.
THANK YOU!!! (even for reading)
Here is what I have tested so far without success:
- enabled TWIM in sdkconfig (in mbedOS6 it is disabled)
- added “device_has”: [“I2C”] to custom_target.json
- replaced the whole I2C code with the example from mbedOS
- tried to write/read a single byte from a device without the use of any additional library
- switching to single-byte API read/write (tip from MultipleMonomials)
- removing mbedOS 6 and setting up a new project
Here are screenshots from the LA: