nrf5340 audio sync with other LE Audio Tx occurrs error

Hello,

I am using nrf5340 audio BIS headset with other LE Audio Tx test. The nRF Connect SDK version is v2.2.0.

During the sync process on both sides, the headset error occurs, as follows:

HL [00:02:08.907,531] <inf> bis_headset: Codec config for LC3:
HL [00:02:08.907,531] <inf> bis_headset:        Frequency: 48000 Hz
HL [00:02:08.907,531] <inf> bis_headset:        Frame Duration: 10000 us
HL [00:02:08.907,531] <inf> bis_headset:        Octets per frame: 100 (80000 kbps)
HL [00:02:08.907,562] <inf> bis_headset:        Frames per SDU: 1
HL [00:02:08.907,562] <inf> bis_headset:        Channel allocation: 0x3
HL [00:02:08.907,562] <inf> bis_headset: Codec config for LC3:
HL [00:02:08.907,592] <inf> bis_headset:        Frequency: 48000 Hz
HL [00:02:08.907,592] <inf> bis_headset:        Frame Duration: 10000 us
HL [00:02:08.907,592] <inf> bis_headset:        Octets per frame: 100 (80000 kbps)
HL [00:02:08.907,623] <inf> bis_headset:        Frames per SDU: 1
HL [00:02:08.907,623] <inf> bis_headset:        Channel allocation: 0x3
HL [00:02:08.907,714] <inf> bis_headset: Syncing to broadcast stream index 0
HL [00:02:09.357,910] <inf> bis_headset: Stream index 0 started
HL [00:02:09.373,046] <wrn> audio_datapath: I2S RX overrun. Single msg
HL [00:02:14.364,929] <wrn> audio_datapath: In I2S TX underrun condition, total: 5000
rtt:~$ ASSERTION FAIL [err == 0] @ WEST_TOPDIR/zephyr/subsys/bluetooth/host/hci_core.c:329
        k_sem_take failed with err -11
HL [00:02:19.364,807] <wrn> audio_datapath: In I2S TX underrun condition, total: 10000
HL [00:02:20.016,479] <err> os: r0/a1:  0x00000003  r1/a2:  0x20013730  r2/a3:  0x00000001
HL [00:02:20.016,479] <err> os: r3/a4:  0x20013795 r12/ip:  0x00000000 r14/lr:  0x0001ce0b
HL [00:02:20.016,479] <err> os:  xpsr:  0x61100000
HL [00:02:20.016,479] <err> os: s[ 0]:  0x00000000  s[ 1]:  0x00000000  s[ 2]:  0x00000000  s[ 3]:  0x00000000
HL [00:02:20.016,510] <err> os: s[ 4]:  0x00000000  s[ 5]:  0x00000000  s[ 6]:  0x00000000  s[ 7]:  0x00000000
HL [00:02:20.016,510] <err> os: s[ 8]:  0x00000000  s[ 9]:  0x00000000  s[10]:  0x00000000  s[11]:  0x00000000
HL [00:02:20.016,510] <err> os: s[12]:  0x00000000  s[13]:  0x00000000  s[14]:  0x00000000  s[15]:  0x00000000
HL [00:02:20.016,540] <err> os: fpscr:  0x00000000
HL [00:02:20.016,540] <err> os: Faulting instruction address (r15/pc): 0x0001ce16
HL [00:02:20.016,540] <err> os: >>> ZEPHYR FATAL ERROR 3: Kernel oops on CPU 0
HL [00:02:20.016,571] <err> os: Current thread: 0x20002fc8 (sysworkq)
HL [00:02:20.016,601] <err> error_handler: Caught system error -- reason 3. Entering infinite loop

But if I change the le_audio_bis_headset.c

bt_audio_broadcast_sink_sync(broadcast_sink, bis_index_bitfields[active_stream_index],audio_streams_p, NULL);

to

bt_audio_broadcast_sink_sync(broadcast_sink, 6 ,audio_streams_p, NULL);

the error will not occur, but the sound will be abnormal.

I found a ticket in DevZone similar to this problem, but it didn't help.

What confuses me is that changing bis_index_bitfields[active_stream_index] to 6 means syncing both stream[0] and stream[1], but if I change this value to stream[0] alone or stream[1] alone, an error occurs. Why is this the case?

Related