nRF54l15 sdk3.3.0 支持MIC source 发射和sink接受,短语音测试,用es8311单声道编解码,I2S无信号输出

nRF54l15 sdk3.3.0 支持MIC source 发射和sink接受,短语音测试,用es8311单声道编解码, 目前sink端读取 es8311 i2c地址正确。

sink端不能产生 I2S输出信号。I2S引脚 P1.08 MCLK  P1.11  BCLK  P1.12 LRCLK  P1.09 SDout

同意的代码逻辑在nRF5340+es8311是正常的
打印信息如下:

15:38:06.771]收←◆W: nrfx GRTC init returned -120 (MPSL may have already initialized it)
*** Booting nRF Connect SDK v3.3.0-ba167d9f3db4 ***
*** Using Zephyr OS v4.3.99-fd9204a02d52 ***
I: [0;32m
nRF5340 Audio nRF5340 Audio DK cpuapp
NCS base version: 3.3.0
Cmake run : Wed Jun 10 15:30:01 2026[0m
I: 2 Sectors of 4096 bytes
I: alloc wra: 1, de0
I: data wra: 1, 1f0
I: SoftDevice Controller build revision:
I: 27 03 7d 53 04 8d fe 99 |'.}S....
I: a9 f2 9a ad de 5b 6a e2 |.....[j.
I: 74 6c ac 75 |tl.u
W: Num of Controller's ACL packets != ACL bt_conn_tx contexts (3 != 2)
I: Controller: SoftDevice: Version 6.2 (0x10), Revision 12451
I: Local identity addr: FE:58:F5:0B:90:0D (random)
I: ===== Start I2C Bus Device Dump (bus: i2c@104000) =====
I: ES8311 found at 0x18, scanning I2C address range: 0x01 ~ 0x7F

[15:38:06.878]收←◆I: I2C Bus Dump done 鈫?total found: 1 device(s)
I: ===============================================

I: I2C pull-up handled by TWIM pinctrl bias-pull-up (no manual GPIO config)
I: I2C ctrl open success, dev addr:0x18, I2C dev:i2c@104000
I: Create NRF5340 Zephyr I2C ctrl instance success
I: GPIO interface instance created success (NRF5340 Zephyr)
I: ADC started
I: DAC started
I: Open codec device OK
W: APLL (HFCLKAUDIO) not available, drift compensation disabled
I: Local addr: FE:58:F5:0B:90:0D (random). May time out. Updates not printed
I: Scanning successfully started

[15:38:07.208]收←◆I: PA synced to name: NRF5340_BROADCASTER, id: 0xc64f6e, addr: FA:79:36:35:6E:0C (random)

[15:38:07.807]收←◆I: Syncing to broadcast stream index 0x0001 (bitfield)
W: Presentation delay not supported: 3000 us
W: Keeping current value: 10000 us

[15:38:08.415]收←◆I: Stream index 0 started
I: LC3 codec config for sink:
I: Frequency: 48000 Hz
I: Duration: 10000 us
I: Chan alloc: 0x1
I: Oct pr frame: 120 (96000 bps)
I: Frames pr SDU: 1
W: Stream not started
W: Stream not started
W: Stream not started
I: Stream stopped by user
I: Stream index 0 stopped. Reason: 22

 

Parents
  • Hi,

    I am sorry that I can't reply in Chinese here, all the support communication here is done in English. Though by translating what you've said, I do get some understanding of what you are struggling with. 

    Is the idea that you are getting this LE Audio setup working with the 54L15, but on the 5340 you are not getting an output on the es8311? Are these custom boards you are working with? 

    Regards,

    Elfving

  • Hi 
    When using the LE Audio settings at 54L15, it was possible to successfully run the program. I used the 54L15 development board, with an external es8311 decoding board connected. The external es8311 decoding board did not output any audio, and the audio stopped, with the message "Stream index 0 stopped. Reason: 22". Using the 5340 development board with the es8311 decoding board worked normally.

Reply
  • Hi 
    When using the LE Audio settings at 54L15, it was possible to successfully run the program. I used the 54L15 development board, with an external es8311 decoding board connected. The external es8311 decoding board did not output any audio, and the audio stopped, with the message "Stream index 0 stopped. Reason: 22". Using the 5340 development board with the es8311 decoding board worked normally.

Children
  • I see. Although it seems to me that the issue here lies with the communication with the external es8311, I got to also add that I do not think we officially support LE Audio on the 54L15. Would you be able to move to the nRF54LM20?

  • We have adopted nRF54l15 as the transmission medium for voice control.

    I am using nRF54L15 + ES8311 as both source and sink. Currently, when the nRF54L15 + ES8311 is used as a sink, it fails to receive audio from the source. The symptom is that whenever audio is received at the sink end, the system logs: "Stream index 0 stopped. Reason: 22."

    The tests conducted so far are as follows:

    1) When the nRF54L15 without ES8311 generates a 1 kHz signal as the source and transmits it, the nRF54L15 without ES8311 acts as the sink and successfully receives the signal—PCM data is correctly printed by the program.

    2) The nRF54L15 + ES8311 functions properly as a source; voice input via microphone works normally, and the nRF5340 can successfully receive and play back the audio.

    3) When the nRF54L15 + ES8311 is used as a sink and generates a 1 KHz test signal locally, the ES8311 can decode and output a 1 kHz signal correctly.

    4) However, when the nRF54L15 + ES8311 is used as a sink, it fails to receive audio from the source. Whenever audio is received from the source, the error message appears: "Stream index 0 stopped. Reason: 22."
    LOG:

    *** Booting nRF Connect SDK v3.3.0-ba167d9f3db4 ***
    *** Using Zephyr OS v4.3.99-fd9204a02d52 ***
    I: [0;32m
    nRF5340 Audio nRF5340 Audio DK cpuapp
    NCS base version: 3.3.0
    Cmake run : Wed Jun 10 16:51:25 2026[0m
    I: 2 Sectors of 4096 bytes
    I: alloc wra: 1, ee0
    I: data wra: 1, f0
    I: SoftDevice Controller build revision:
    I: 27 03 7d 53 04 8d fe 99 |'.}S....
    I: a9 f2 9a ad de 5b 6a e2 |.....[j.
    I: 74 6c ac 75 |tl.u
    W: Num of Controller's ACL packets != ACL bt_conn_tx contexts (3 != 2)
    I: Controller: SoftDevice: Version 6.2 (0x10), Revision 12451
    I: Local identity addr: FE:58:F5:0B:90:0D (random)
    I: ===== Start I2C Bus Device Dump (bus: i2c@104000) =====
    I: ES8311 found at 0x18, scanning I2C address range: 0x01 ~ 0x7F
    I: I2C Bus Dump done 鈫?total found: 1 device(s)
    I: ===============================================

    I: I2C pull-up handled by TWIM pinctrl bias-pull-up (no manual GPIO config)
    I: I2C ctrl open success, dev addr:0x18, I2C dev:i2c@104000
    I: Create NRF5340 Zephyr I2C ctrl instance success
    I: GPIO interface instance created success (NRF5340 Zephyr)
    I: ADC started
    I: DAC started
    I: Open codec device OK
    W: APLL (HFCLKAUDIO) not available, drift compensation disabled
    I: Local addr: FE:58:F5:0B:90:0D (random). May time out. Updates not printed
    I: Scanning successfully started

    [16:54:38.543]收←◆I: PA synced to name: NRF5340_BROADCASTER, id: 0xc64f6e, addr: FA:79:36:35:6E:0C (random)

    [16:54:39.144]收←◆I: Syncing to broadcast stream index 0x0001 (bitfield)
    W: Presentation delay not supported: 3000 us
    W: Keeping current value: 10000 us

    [16:54:39.751]收←◆I: Stream index 0 started
    I: LC3 codec config for sink:
    I: Frequency: 48000 Hz
    I: Duration: 10000 us
    I: Chan alloc: 0x1
    I: Oct pr frame: 120 (96000 bps)
    I: Frames pr SDU: 1
    W: Stream not started
    W: Stream not started
    W: Stream not started
    I: Stream stopped by user
    I: Stream index 0 stopped. Reason: 22

    According to log analysis, the core issue is APLL (HFCLKAUDIO) not available, resulting in drift compensation being disabled—audio PLL unavailability causes drift compensation to be disabled.
    The I2S hardware path and BLE decoding path each operate independently and normally, but clock synchronization (drift compensation) between them has failed.
    Since the audio PLL is unavailable and drift compensation is disabled, this typically leads to audio reception stuttering, but does not cause the audio stream to stop.

    Please provide some analysis suggestions.

  • zhangwei said:
    W: Stream not started
    W: Stream not started
    W: Stream not started

    Interestingly, here as well, the logs seem to say that the stream hasn't started. What are you using as the source here? Any device? Maybe the computational budget is blown. Does simply disabling the ES8311 allow it to work? Could you check the thread analyzer while doing this?

    Regards,

    Elfving

Related