I2C issue in v2.6.0 SDK

Hello,

So I had a project for Sparkfun nRF9160 Thing plus on toolchain/SDK v2.5.2. Today I noticed that v2.6.0 is out and decided to upgrade. I used basic cellular udp sample to get the lowest Thing Plus baseline current and noticed something strange. So I needed to put any used peripheral in suspended state. Since there is an onboard accelerometer which needed some additional configuring in .overlay file  naturally in main() I tried to suspend the i2c the device used. When I enabled `CONFIG_I2C=y` in .conf file project built just fine but after programming I checked the current profile which had strange pattern so I enabled serial output and noticed that application constantly resets itself. 
The output it gives:

E: ***** BUS FAULT *****
E: Precise data bus error
E: BFAR Address: 0x0
E: r0/a1: 0x0001b120 r1/a2: 0x00d00000 r2/a3: 0x00000000
E: r3/a4: 0x0000000c r12/ip: 0x00000001 r14/lr: 0x000181b5
E: xpsr: 0x81000000
E: Faulting instruction address (r15/pc): 0x0000bfdc
E: >>> ZEPHYR FATAL ERROR 25: Unknown error on CPU 0
E: Current thread: 0x2000ca18 (unknown)
E: Resetting system

So I just wanted to point out, that there is something broken in v2.6.0. I reverted back to 2.5.2 and everything runs smoothly. 

To replicate this issue:

1) Upgrade toolchain and SDK version to 2.6.0 in VS code;

2) Create a new application based on cellular UDP sample;

3) Enable serial output in `proj.conf` and also arr "CONFIG_I2C=y";

4) After building and programming, you should get the same output

Here is the generated support information:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
For help and support, visit the Nordic DevZone at https://devzone.nordicsemi.com/.
{
"platform": {
"os": "win32",
"osVersion": "Windows 10 Enterprise",
"osKernel": "10.0.19045",
"vscode": "1.87.2",
"electron": "27.3.2",
"node": "v18.17.1"
},
"system": {
"date": "2024-03-14T10:21:25.812Z",
"vscodeRoot": "c:\\Users\\andrisku\\AppData\\Local\\Programs\\Microsoft VS Code\\resources\\app",
"nrfConnectForDesktopInstalled": true,
"vscodeUptime": "00:09:56",
"osUptime": "03:32:53",
"cpu": "13th Gen Intel(R) Core(TM) i7-1355U"
},
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Hope this helps you to solve the issue! 

Regards,

Andris

Parents
  • Same problem is on the nRF5340 DK with v2.6.0 SDK. After enabling CONFIG_I2C the board starts to reboot with unknown error. After switching to v2.5.2 SDK the problem is gone.

Reply
  • Same problem is on the nRF5340 DK with v2.6.0 SDK. After enabling CONFIG_I2C the board starts to reboot with unknown error. After switching to v2.5.2 SDK the problem is gone.

Children
  • Are you also using Windows?    I don't know if it is related, but I also have trouble debugging simple programs on a nrf9160DK, but debugging a nrf52840dk (without TFM) works

  • Yes, Windows 11, toolchain 2.6.0, SDK 2.6.0, VS code extensions, nrf5340_nrf5340_cpuapp_ns. Easy way to reproduce:

    1) Create new application from blinky sample, build, flash, the LED is blinking.

    2) Add string CONFIG_I2C=y to the prj.conf. Build, flash, LED is turned off all the time.

    With toolchain 2.5.2 and SDK 2.5.2 everything is working (not only this simple sample, but I2C communication itself).