Problem with Bluetooth enabling for nrf5340 custom board

Hi,

I am testing the Bluetooth function on my custom board with nRF5340 CLAA chip. I have tested the clock, I2S and SPI on this chip previously and they all worked perfectly. Now, I am using the sample code peripheral_nus to test the Bluetooth function. In my board, I connected an antenna Johanson Dielectrics 2450AT43B100E to the ANT pin of the chip.

I encountered an issue when I got to bt_enable in the code. The program got stuck here and would not proceed. Then I debugged further and found out that the error came from this line

err = send(group, full_packet, len + NRF_RPC_HEADER_SIZE);

within the nrf_rpc_cmd_common function in nrf_rpc.c file. This line returned -32 which I believe indicated -EPIPE (Broken pipe). So I suspect that the network core of my chip was not initialized properly and the IPC communication between two cores failed because my previous testings were all on application core alone and they all worked fine.

I have a Kconfig.sysbuild file in my application folder following another example, with the contents below:

source "${ZEPHYR_BASE}/share/sysbuild/Kconfig"

config NRF_DEFAULT_IPC_RADIO
	default y

config NETCORE_IPC_RADIO_BT_HCI_IPC
	default y

I believe that this allows me to generate two images for two cores separately, with the Bluetooth sample code built for application core and the default ipc_radio built for the network core. I created my own board folder called nrf5340_platform and built the application with nrf5340_platform/nrf5340/cpuapp. Both firmwares were built and flashed to the board successfully.

In my prj.conf, I enabled:

CONFIG_I2S=y
CONFIG_AUDIO=y
CONFIG_AUDIO_DMIC=y
CONFIG_GPIO=y
CONFIG_RTT_CONSOLE=y
CONFIG_USE_SEGGER_RTT=y
CONFIG_UART_CONSOLE=n
# CONFIG_DISK_ACCESS=y
# CONFIG_DISK_DRIVER_SDMMC=y
# CONFIG_FILE_SYSTEM=y
# CONFIG_FAT_FILESYSTEM_ELM=y
# CONFIG_SPI=y
CONFIG_MAIN_STACK_SIZE=4096
CONFIG_BT=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_ZEPHYR_NUS=y
CONFIG_BT_DEVICE_NAME="MynRF5340"

# Enable HCI over RPMsg for nRF5340
CONFIG_BT_RPC_STACK=y

# Enable IPC service and OpenAMP for RPMsg
CONFIG_IPC_SERVICE=y
CONFIG_IPC_SERVICE_RPMSG=y
CONFIG_OPENAMP=y

# Ensure the Net Core domain is specified for sysbuild
CONFIG_BUILD_WITH_TFM=n

In the dts files of app and net, I have zephyr,bt-hci-ipc = &ipc0 with:

&ipc0 {
	status = "okay";
};

In nrf5340_platform-shared_sram.dtsi, I have:

/ {
	chosen {
		/* shared memory reserved for the inter-processor communication */
		zephyr,ipc_shm = &sram0_shared;
	};

	reserved-memory {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		sram0_shared: memory@20070000 {
			/* SRAM allocated to shared memory */
			reg = <0x20070000 0x10000>;
		};
	};
};

I also tried to debug with RTT viewer. The app console gives me messages:

00> [00:00:00.000,15[00:00:00.000,244] <dbg> clock_control: clkstarted_handle: lfclk: Clock started

00> [00:00:00.000,274] <dbg> os: setup_thread_stack: stack 0x200029e8 for thread 0x20000d48: obj_size=768 buf_start=0x200029e8  buf_size 768 stack_ptr=0x20002ce8

00> --- 1 messages dropped ---

00> [00:00:00.000,366] <dbg> os: setup_thread_stack: stack 0x20005228 for thread 0x20001668: obj_size=1024 buf_start=0x20005228  buf_size 1024 stack_ptr=0x20005628

00> [00:00:00.000,457] <dbg> BT_RPC: serialization_init: Init begin

00> [00:00:00.000,488] <dbg> NRF_RPC: nrf_rpc_init: Initializing nRF RPC module

00> [00:00:00.000,518] <dbg> NRF_RPC: nrf_rpc_init: Group 'bt_rpc' has id 0

00> [00:00:00.000,579] <dbg> os: setup_thread_stack: stack 0x20002ce8 for thread 0x20001280: obj_size=1024 buf_start=0x20002ce8  buf_size 1024 stack_ptr=0x200030e8

00> [00:00:00.000,579] <dbg> os: setup_thread_stack: stack 0x200030e8 for thread 0x20001348: obj_size=1024 buf_start=0x200030e8 0m

00>

The net console gives me messages:

00> [00:00:00.000,000] <dbg> clock_control: clkstarted_handle: lfclk: Clock started

00> [00:00:00.000,061] <dbg> os: setup_thread_stack: stack 0x2100ab30 for thread 0x21008670: obj_size=2048 buf_start=0x2100ab30  buf_size 2048 stack_ptr=0x2100b330

00> [00:00:00.000,091] <dbg> os: setup_thread_stack: stack 0x2100aa30 for thread 0x210085f0: obj_size=256 buf_start=0x2100aa30  buf_size 256 stack_ptr=0x2100ab30

00> [00:00:00.000,122] <dbg> os: setup_thread_stack: stack 0x21009630 for thread 0x21002390: obj_size=2048 buf_start=0x21009630  buf_size 2048 stack_ptr=0x21009e30

00> [00:00:00.000,244] <dbg> os: setup_thread_stack: stack 0x21009e30 for thread 0x21008550: obj_size=1024 buf_start=0x21009e30  buf_size 1024 stack_ptr=0x2100a230

00> [00:00:00.000,335] <dbg> os: setup_thread_stack: stack 0x2100b330 for thread 0x210086f0: obj_size=2048 buf_start=0x2100b330  buf_size 2048 stack_ptr=0x2100bb30

00> --- 8 messages dropped ---

00> [00:00:00.002,471] <dbg> os: z_impl_k_mutex_4245unt: 1

00> --- 26 messages dropped ---

00> [00:00:02.394,165] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.395,721] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.397,247] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.398,803] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 27 messages dropped ---

00> [00:00:02.400,360] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.401,916] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.403,472] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.405,029] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.406,585] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.408,142] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.409,667] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.411,224] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.412,780] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.414,306] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.415,863] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.417,388] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.418,945] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.420,501] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.422,027] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.423,583] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.425,109] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.426,666] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.428,222] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.429,748] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.431,304] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 27 messages dropped ---

00> [00:00:02.432,891] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)

00> --- 29 messages dropped ---

00> [00:00:02.434,600] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)

00> --- 28 messages dropped ---

00> [00:00:02.436,340] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)

00> --- 29 messages dropped ---

00> [00:00:02.438,018] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)

00> --- 29 messages dropped ---

00> [00:00:02.439,758] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)

00> --- 29 messages dropped ---

00> [00:00:02.441,467] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)

00> --- 28 messages dropped ---

00> [00:00:02.443,145] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.444,732] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.446,289] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.447,875] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.449,432] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.450,988] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 27 messages dropped ---

00> [00:00:02.452,545] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.454,101] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.455,657] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.457,214] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.458,770] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.460,327] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.461,883] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.463,409] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.464,965] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.466,522] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.468,078] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.469,604] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.471,160] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.472,686] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.474,243] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.475,799] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.477,355] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.478,881] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.480,438] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.481,994] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.483,520] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.485,076] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.486,602] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.488,159] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.489,715] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.491,241] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.492,797] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.494,323] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.495,880] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.497,406] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.498,962] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.500,518] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.502,044] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.503,601] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.505,126] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.506,683] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.508,239] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.509,765] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.511,322] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.512,847] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.514,404] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 26 messages dropped ---

00> [00:00:02.515,960] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1

00> --- 27 messages dropped ---

00> [00:00:02.517,547] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)

00> --- 29 messages dropped ---

00> [00:00:02.519,256] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)

00> --- 28 messages dropped ---

00> [00:00:02.520,965] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)

00> --- 29 messages dropped ---

00> [00:00:02.522,674] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)

00> --- 29 messages dropped ---

00> [00:00:02.524,414] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)

00> --- 29 messages dropped ---

00> [00:00:02.526,123] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)

Can you please advise me which directions I should go to enable the Bluetooth on my board? Thank you very much for your help!

Related