nrf5340 custom board ble driver,hci error

I am developing on a custom nRF5340 board, but I encountered a BLE-related error. To troubleshoot, I built and flashed the basic example peripheral_uart, but the following error message appeared. I am unsure where to start checking. Could you provide guidance?

[00:00:01.020,660] <err> bt_hci_driver: Endpoint binding failed with -11
[00:00:01.020,690] <err> bt_hci_core: HCI driver open failed (-11)
[00:00:00.000,427] <err> qspi_nor: JEDEC id [ff ff ff] expect [c2 28 17]

  • Hello,

    The first 2 errors indicate that the Bluetooth host is unable to communicate with the Bluetooth controller on the network core. The last one is about the QSPI flash NOR driver failing to read the ID of the external QSPI flash IC (External memory), but this can be ignored for now as it is not used by this sample. Does your board include the optional 32KHz crystal, and if not, have you made sure to select the internal RC oscillator as your LF clock source both on the app and network core?

    Best regards,

    Vidar

  • Thank you for your quick response. When I specify the configuration in both the net and app cores as shown below, it works. I have an additional question.

    1. 

    Do I need to specify the following configuration in both the net and app cores?

    CONFIG_SOC_ENABLE_LFXO=n CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC_CALIBRATION=y CONFIG_CLOCK_CONTROL_NRF_K32SRC_500PPM=y

    2. As shown in the captured image, I am modifying the overlay-bt_hci_ipc_conf file locally, but I don’t want to change the local files directly. Instead, I want to manage the modified elements separately. Is there a way to do this?

  • You only need to select CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y  in the app core and net core FW images. CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC_CALIBRATION=y and CONFIG_CLOCK_CONTROL_NRF_K32SRC_500PPM=y are seleced by default when the RC ocialltor is enabled.

    giun.kim said:
    2. As shown in the captured image, I am modifying the overlay-bt_hci_ipc_conf file locally, but I don’t want to change the local files directly. Instead, I want to manage the modified elements separately. Is there a way to do this?

    Ideally you should change the default LF clock source in the board file like for this board here and here. This ensures that the correct clock source is always is selected when you build a project. However, this is only if you have defined your own board. If you are using the nRF5340 DK as your build target, then you have to use overlays to change the clock source. Configuration changes to hci_ipc can be applied by creating a "sysbuild" folder like here: https://github.com/nrfconnect/sdk-nrf/tree/v2.8.0/samples/bluetooth/throughput/sysbuild/ipc_radio 

Related