This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

"ASSERTION FAIL [err == 0] k_sem_take failed with err -11" when HCI is used with LP-UART

Test setup -

1. nRF52840 DK - 1 as hci host, 1 as hci controller

2. HCI Host runs nrf/samples/bluetooth/peripheral_hr_coded with modified configuration (attached as conf_hci_host.zip)

3. HCI Controller runs nrf/samples/bluetooth/hci_lpuart with overlay and conf for nrf52840 dk (attached as conf_hci_controller.zip)

4. Connections are made tx-pin <-> rx-pin, req-pin <-> rdy-pin with each other.

Issues observed -

[2021-03-24 12:10:46.108] ASSERTION FAIL [err == 0] @ WEST_TOPDIR/zephyr/subsys/bluetooth/host/hci_core.c:333
[2021-03-24 12:10:46.115]   k_sem_take failed with err -11

This results in a continuous restart of the hci host firmware.

Question -

1. What should be done to make HCI over LP-UART work?conf_hci_controller.zipconf_hci_host.zip

Parents Reply
  • Hi!

    I've spent some time looking into this now and while I haven't found a fix yet, I think I've found the source of the issue. The host and controller must be synchronized somehow, this is, from what I can see, done by resetting the controller when the host is ready. On the nRF9160DK there is a dedicated reset line between the nRF52840 SoC and nRF9160 SiP, as well as firmware handling the hci setup. This is not implemented for the nRF52840DK.

    I suggest that you study the nrf9160dk_nrf9160 and nrf9160dk_nrf52840 board definitions in the Zephyr, as well as the file nRF52840_reset.c, and see if you can reverse engineer the nRF9160DK setup to work for the two nRF52840 DKs. I'll have a look at this myself next week. 

    Bes regards,
    Carl Richard

Children
No Data
Related