Regarding the Issue of Frequency Modification for nRF54L15

Hi!
    I'm currently attempting to develop software using the nRF54L15 and NCS v2.9.0 (previously, I used the nRF52840 and NCS v2.9.0). Both development processes are carried out in the VS Code environment.
    However, I've noticed abnormal issues during BLE Mesh debugging. The specific manifestations are as follows:
  1. In the nRF Connect plugin, the nRF54L15 - DK development board often cannot be erased. When I click the "erase board" button, an error occurs. At this time, the chip seems to be in a locked state, and I have to use the "Erase all" function in the "Programmer" software to fix it.
  2. Every time I click the "Debug" button in the nRF Connect plugin, it takes a long time (more than 10 seconds) to enter the debugging interface. Moreover, debugging fails and cannot proceed, which is manifested as follows:
    (1) In VS Code, except for the "Stop" and "Pause" buttons, other debugging buttons are grayed out and ineffective (I think the debugging is already running at this time). After clicking the "Pause" button and then clicking the "Restart" button, subsequent debugging will most likely fail.
    (2) In OZone, when clicking the "Download & Reset Program" button, it will most likely prompt "UsageFault", and only in a few cases can it jump to the debugging interface.
    However, the nRF52840 and nRF52833 development boards work normally. My supplier told me that the reason is "since Bluetooth is used, debugging will disrupt the timing, which in turn leads to hardware failures." But this cannot explain the fact that the same project can be debugged on the nRF52840.
    So I suspect that the debugging failure is caused by the nRF54L15's CPU running too fast (because its default frequency is 128MHz). I want to reduce its frequency to 64MHz, the same as that of the nRF52840. However, I can't find the macro definition (similar to the CONFIG_xxx macro definition) to modify the frequency. But the datasheet shows that the nRF54L15 can be selected between 128MHz and 64MHz. So how can I switch to the 64MHz frequency?
  • Hi,

    Here is my configuration parameters:

    This is the JSON file I obtained:

    // IMPORTANT: The following data can contain sensitive or confidential information about your environment.
    // If you do not want others to see this information, make sure to remove it before sharing the data.
    
    // For help and support, visit Nordic Semiconductor's DevZone at https://devzone.nordicsemi.com/.
    
    {
      "platform": {
        "os": "win32",
        "osVersion": "Windows 10 Pro for Workstations",
        "osKernel": "10.0.19044",
        "vscode": "1.98.2",
        "electron": "34.2.0",
        "node": "v20.18.2"
      },
      "system": {
        "date": "2025-03-29T03:15:31.258Z",
        "vscodeRoot": "c:\\Users\\PC\\AppData\\Local\\Programs\\Microsoft VS Code\\resources\\app",
        "nrfConnectForDesktopInstalled": true,
        "vscodeUptime": "44:12:23",
        "osUptime": "72:17:39",
        "cpu": "12th Gen Intel(R) Core(TM) i5-12400"
      },
      "workspace": {
        "name": "v290 (工作区)",
        "workspaceFile": "e:\\NCS\\v290.code-workspace",
        "folders": [
          "e:\\NCS\\v2.9.0",
          "e:\\NCS\\light"
        ]
      },
      "sdks": [
        {
          "version": "v2.9.0",
          "path": "e:\\NCS\\v2.9.0"
        },
        {
          "version": "v2.5.0",
          "path": "e:\\NCS\\v2.5.0"
        },
        {
          "version": "v3.0.99",
          "path": "e:\\NCS\\v2.0.0"
        }
      ],
      "activeBuild": "e:\\NCS\\light\\build",
      "apps": [
        {
          "workspace": "e:\\NCS\\light",
          "uri": "e:\\NCS\\light",
          "buildConfigurations": [
            {
              "id": "e:\\NCS\\light\\build",
              "name": "build",
              "boardId": "nrf54l15dk/nrf54l15/cpuapp",
              "type": "Sysbuild",
              "isChild": false,
              "isStale": false,
              "taskBindings": {
                "build": [],
                "pristineBuild": [],
                "flash": [],
                "eraseAndFlash": []
              },
              "sdk": "e:\\NCS\\v2.9.0",
              "toolchain": "nRF Connect SDK Toolchain v2.9.0"
            }
          ]
        }
      ],
      "toolchains": [
        {
          "version": "2.9.0",
          "path": "c:\\ncs\\toolchains\\b620d30767"
        },
        {
          "version": "2.5.0",
          "path": "c:\\ncs\\toolchains\\c57af46cb7"
        }
      ],
      "connectedDevices": [
        {
          "serialNumber": "xxxxxxxxxxxx",
          "boardVersion": "PCA10156",
          "deviceFamily": "NRF54L_FAMILY",
          "deviceVersion": "NRF54L15_xxAA_ENGB",
          "jlinkObFirmwareVersion": "J-Link OB-nRF5340-NordicSemi compiled Feb 11 2025 17:15:35",
          "protectionStatus": "NRFDL_PROTECTION_STATUS_NONE"
        }
      ],
      "tools": {
        "C:\\ncs\\toolchains\\b620d30767\\opt\\zephyr-sdk\\arm-zephyr-eabi\\bin\\arm-zephyr-eabi-gcc.exe": "0.17.0",
        "C:\\Program Files\\SEGGER\\JLink_V820\\JLink.exe": "8.20",
        "C:\\Program Files\\Nordic Semiconductor\\nrf-command-line-tools\\bin\\nrfjprog.exe": "10.24.2",
        "C:\\Users\\PC\\AppData\\Roaming\\nrfconnect\\nrfutil-sandboxes\\device\\2.6.4\\bin\\nrfutil.exe": "7.13.0",
        "C:\\ncs\\toolchains\\b620d30767\\cmake": "3.21.0",
        "C:\\ncs\\toolchains\\b620d30767\\opt\\bin\\Scripts\\west.exe": "1.2.0",
        "C:\\ncs\\toolchains\\b620d30767\\opt\\bin\\python.exe": "3.12.4",
        "C:\\ncs\\toolchains\\b620d30767\\opt\\bin\\ninja.exe": "1.10.2",
        "C:\\ncs\\toolchains\\b620d30767\\opt\\bin\\gperf.exe": "3.1",
        "C:\\ncs\\toolchains\\b620d30767\\opt\\bin\\dtc.exe": "1.4.7",
        "C:\\ncs\\toolchains\\b620d30767\\opt\\bin\\gn.exe": "2202",
        "C:\\ncs\\toolchains\\b620d30767\\mingw64\\bin\\git.exe": "2.37.3.windows.1",
        "arm-gdbPath": "c:\\ncs\\toolchains\\b620d30767\\opt\\zephyr-sdk\\arm-zephyr-eabi\\bin\\arm-zephyr-eabi-gdb.exe",
        "riscv-gdbPath": "C:\\ncs\\toolchains\\b620d30767\\opt\\zephyr-sdk\\riscv64-zephyr-elf\\bin\\riscv64-zephyr-elf-gdb.exe"
      },
      "nrfutil": {
        "nrfutil-device": {
          "version": "2.7.9",
          "binPath": "c:\\Users\\PC\\.vscode\\extensions\\nordic-semiconductor.nrf-connect-2025.1.127-win32-x64\\platform\\nrfutil\\bin\\nrfutil-device",
          "jlinkInfo": {
            "description": "This version of SEGGER J-Link is different from the J-Link version that was used to test nrfutil device commands",
            "expectedVersion": {
              "version": "JLink_V7.94i",
              "versionFormat": "string"
            },
            "name": "JlinkARM",
            "version": "JLink_V8.20 ",
            "versionFormat": "string"
          }
        },
        "nrfutil-toolchain-manager": {
          "version": "0.14.4",
          "binPath": "c:\\Users\\PC\\.vscode\\extensions\\nordic-semiconductor.nrf-connect-2025.1.127-win32-x64\\platform\\nrfutil\\bin\\nrfutil-toolchain-manager"
        }
      },
      "environment": {
        "westEnv": {
          "HOME": "C:\\Users\\PC",
          "HOMEDRIVE": "C:",
          "HOMEPATH": "\\Users\\PC",
          "PATH": "C:\\ncs\\toolchains\\b620d30767;C:\\ncs\\toolchains\\b620d30767\\mingw64\\bin;C:\\ncs\\toolchains\\b620d30767\\bin;C:\\ncs\\toolchains\\b620d30767\\opt\\bin;C:\\ncs\\toolchains\\b620d30767\\opt\\bin\\Scripts;C:\\ncs\\toolchains\\b620d30767\\opt\\nanopb\\generator-bin;C:\\ncs\\toolchains\\b620d30767\\opt\\zephyr-sdk\\arm-zephyr-eabi\\bin;C:\\ncs\\toolchains\\b620d30767\\opt\\zephyr-sdk\\riscv64-zephyr-elf\\bin;c:\\Users\\PC\\.vscode\\extensions\\nordic-semiconductor.nrf-connect-2025.1.127-win32-x64\\platform\\nrfutil\\lib\\nrfutil-toolchain-manager;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files\\dotnet\\;C:\\Users\\PC\\AppData\\Local\\Programs\\Python\\Python38;C:\\Users\\PC\\AppData\\Local\\Programs\\Python\\Python38\\Scripts;D:\\nordic_tools\\bin;C:\\Program Files\\Nordic Semiconductor\\nrf-command-line-tools\\bin;E:\\NCS\\toolchains\\v2.5.0\\opt\\bin\\Scripts;E:\\NCS\\toolchains\\v2.5.0\\opt\\bin;E:\\NCS\\toolchains\\v2.9.0\\opt\\bin\\Scripts;E:\\NCS\\toolchains\\v2.9.0\\opt\\bin;C:\\Users\\PC\\AppData\\Roaming\\nrfconnect\\nrfutil-sandboxes\\device\\2.6.4\\bin;C:\\Program Files\\Nordic Semiconductor\\nrf-command-line-tools\\bin\\;C:\\Users\\PC\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\PC\\.dotnet\\tools;C:\\Users\\PC\\AppData\\Local\\Programs\\Microsoft VS Code\\bin",
          "ZEPHYR_BASE": "e:\\NCS\\v2.9.0\\zephyr",
          "ZEPHYR_TOOLCHAIN_VARIANT": "zephyr",
          "ZEPHYR_SDK_INSTALL_DIR": "C:\\ncs\\toolchains\\b620d30767\\opt\\zephyr-sdk",
          "PYTHONPATH": "C:\\ncs\\toolchains\\b620d30767\\opt\\bin;C:\\ncs\\toolchains\\b620d30767\\opt\\bin\\Lib;C:\\ncs\\toolchains\\b620d30767\\opt\\bin\\Lib\\site-packages"
        },
        "inherited": {
          "HOME": "C:\\Users\\PC",
          "HOMEDRIVE": "C:",
          "HOMEPATH": "\\Users\\PC",
          "Path": "C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files\\dotnet\\;C:\\Users\\PC\\AppData\\Local\\Programs\\Python\\Python38;C:\\Users\\PC\\AppData\\Local\\Programs\\Python\\Python38\\Scripts;D:\\nordic_tools\\bin;C:\\Program Files\\Nordic Semiconductor\\nrf-command-line-tools\\bin;E:\\NCS\\toolchains\\v2.5.0\\opt\\bin\\Scripts;E:\\NCS\\toolchains\\v2.5.0\\opt\\bin;E:\\NCS\\toolchains\\v2.9.0\\opt\\bin\\Scripts;E:\\NCS\\toolchains\\v2.9.0\\opt\\bin;C:\\Users\\PC\\AppData\\Roaming\\nrfconnect\\nrfutil-sandboxes\\device\\2.6.4\\bin;C:\\Program Files\\Nordic Semiconductor\\nrf-command-line-tools\\bin\\;C:\\Users\\PC\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\PC\\.dotnet\\tools;C:\\Users\\PC\\AppData\\Local\\Programs\\Microsoft VS Code\\bin",
          "PATH": "C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files\\dotnet\\;C:\\Users\\PC\\AppData\\Local\\Programs\\Python\\Python38;C:\\Users\\PC\\AppData\\Local\\Programs\\Python\\Python38\\Scripts;D:\\nordic_tools\\bin;C:\\Program Files\\Nordic Semiconductor\\nrf-command-line-tools\\bin;E:\\NCS\\toolchains\\v2.5.0\\opt\\bin\\Scripts;E:\\NCS\\toolchains\\v2.5.0\\opt\\bin;E:\\NCS\\toolchains\\v2.9.0\\opt\\bin\\Scripts;E:\\NCS\\toolchains\\v2.9.0\\opt\\bin;C:\\Users\\PC\\AppData\\Roaming\\nrfconnect\\nrfutil-sandboxes\\device\\2.6.4\\bin;C:\\Program Files\\Nordic Semiconductor\\nrf-command-line-tools\\bin\\;C:\\Users\\PC\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\PC\\.dotnet\\tools;C:\\Users\\PC\\AppData\\Local\\Programs\\Microsoft VS Code\\bin"
        }
      },
      "terminal": {
        "defaultProfile": null
      },
      "config": {
        "nordic-semiconductor.nrf-connect": {
          "topdir": "",
          "toolchain": {
            "path": ""
          },
          "ozonePath": "",
          "applications": [],
          "applicationOptions": {},
          "kconfig": {
            "interface": "kconfig"
          },
          "west": {
            "env": {
              "$base": "terminal"
            }
          },
          "boardRoots": [],
          "taskBindings": {},
          "buildTerminal": {
            "condensedProgress": true
          },
          "debugging": {
            "flash": true,
            "bindings": {},
            "justMyCode": false
          },
          "activeAppFollowActiveEditor": true,
          "flash": {
            "softreset": false,
            "erase": false,
            "recover": false
          },
          "enableTelemetry": true,
          "thirdpartyIntegration": {},
          "toolchainManager": {
            "indexURL": null,
            "installDirectory": null
          },
          "nrfutil": {
            "home": null
          },
          "defaultOpenAction": "ask",
          "terminalProfile": {
            "shell": null
          }
        },
        "nordic-semiconductor.nrf-terminal": {
          "terminalMode": "character"
        }
      },
      "extensions": {
        "internal": {
          "nordic-semiconductor.nrf-connect": {
            "version": "2025.1.127",
            "path": "c:\\Users\\PC\\.vscode\\extensions\\nordic-semiconductor.nrf-connect-2025.1.127-win32-x64",
            "isActive": true
          },
          "nordic-semiconductor.nrf-terminal": {
            "version": "2024.9.14",
            "path": "c:\\Users\\PC\\.vscode\\extensions\\nordic-semiconductor.nrf-terminal-2024.9.14",
            "isActive": true
          },
          "nordic-semiconductor.nrf-devicetree": {
            "version": "2024.12.15",
            "path": "c:\\Users\\PC\\.vscode\\extensions\\nordic-semiconductor.nrf-devicetree-2024.12.15",
            "isActive": true
          },
          "nordic-semiconductor.nrf-kconfig": {
            "version": "2024.12.13",
            "path": "c:\\Users\\PC\\.vscode\\extensions\\nordic-semiconductor.nrf-kconfig-2024.12.13",
            "isActive": true
          }
        },
        "external": {
          "marus25.cortex-debug": null,
          "ms-vscode.cpptools": "1.23.6",
          "ms-vscode.js-debug": "1.97.1",
          "ms-vscode.js-debug-companion": "1.1.3",
          "ms-vscode.vscode-js-profile-table": "1.0.10",
          "MS-CEINTL.vscode-language-pack-zh-hans": "1.98.2025031209",
          "ms-vscode.cmake-tools": "1.20.53",
          "ms-vscode.cpptools-extension-pack": "1.3.1",
          "ms-vscode.cpptools-themes": "2.0.0"
        }
      }
    }

    I've masked some of its content (since this post is public). The masked content is as follows:

    The data of serialNumber:

    Some environment variable paths under environment:

    Some environment variable paths under inherited:

    If you directly click the "Debug with Ozone" button and then click the button in the top-left corner of Ozone (the red-bordered section), it will result in the following HardFault error pop-up:

    If you first click the "Flash" button to download the program to the chip in advance, then click the "Debug with Ozone" button, and finally click any one of the three buttons in the top-left corner of Ozone (the red-bordered section), it will result in the following UsageFault error pop-up:


    However, clicking the reset button occasionally allows debugging to proceed.

  • Are you seeing anything in the console log on Ozone on the bottom left?

    And I am also not seeing any issues with normal debugging using the VSC extensions, though I assume you are still seeing the situation you described earlier?

    (1) In VS Code, except for the "Stop" and "Pause" buttons, other debugging buttons are grayed out and ineffective (I think the debugging is already running at this time). After clicking the "Pause" button and then clicking the "Restart" button, subsequent debugging will most likely fail.

    Regards,

    Elfving

  • Hi,

    This issue can now be attributed to a misunderstanding. Through testing, I found that the problem described in"(1) In VS Code, except for the 'Stop' and 'Pause' buttons, other debugging buttons are grayed out and ineffective (I think the debugging is already running at this time). After clicking the 'Pause' button and then clicking the 'Restart' button, subsequent debugging will most likely fail."is caused by slow debugging startup.

    Specifically, it takes approximately 10 seconds after clicking the 'Debug' button to enter the debugging interface. At this point, only the 'Stop' and 'Pause' buttons are available. I need to wait an additional 30 seconds for other buttons to become active before normal debugging can proceed. In other words, the total time from clicking the 'Debug' button to enabling full debugging functionality is excessively long.This resulted in my incorrect conclusion that debugging was impossible.

    As a result, debugging in VS Code has been a disastrous experience for me. After SEGGER Embedded Studio was discontinued, I tried VS Code debugging but eventually abandoned it and switched to Ozone. Ozone worked stably on nRF52832 and nRF52840, but encountered issues with nRF54L15. Previously, I provided detailed explanations along with "Generate Support Information" as requested.
    My current core question is: How to debug nRF54L15 using Ozone?

    Regards,

    Listen

  • listenYes said:
    As a result, debugging in VS Code has been a disastrous experience for me. After SEGGER Embedded Studio was discontinued, I tried VS Code debugging but eventually abandoned it

    I am sorry to hear that. 

    Since I am not seeing this on my side in VSC, I then immediately wonder if you are seeing this on other systems as well, or just this one computer. Is this something you could test? After all, how long this takes can vary a bit depending on the system, even though 30 seconds seems like way too long. The 54L might spend a bit longer than the other single-core nRFs though, like nRF52840.

    Our VSC team do not immediately see what this could come from either.

    listenYes said:
    Ozone worked stably on nRF52832 and nRF52840, but encountered issues with nRF54L15. Previously, I provided detailed explanations along with "Generate Support Information" as requested.
    My current core question is: How to debug nRF54L15 using Ozone?

    Could you check the log in Ozone? Getting Ozone working should be rather straight forward, though I, like you, did see some issues when trying this on an NRF54L. If I check the log there in Ozone, I see that it complained about me having \n in my path.

    Util.Log ("Downloading Program: c:\\nordic\\ownApplications\\hello_world_29\\build_1\\merged.hex"); - Invalid escaped character '\n' found in parameter 1 at position 24
    Regards,

    Elfving

  • Hi

    I used two computers: one is a brand-new laptop that was just activated; the other is a desktop that had been reinstalled. Both computers took an extremely long time. However, I need to clarify: since I could not directly pull the source code from the nRF Connect for Desktop software, I used the vendor-packaged source code and toolchains for local installation.

    I reviewed the following Ozone logs, and it appears we encountered the same issue. The log content is as follows:

    Regards,

    Listen

Related