How to setup a call based on CIS or BIS on nRF5340 DK audio boards?

Hi Nordic Team,

I try to have a call based on CIS, CIS is connected, and music playing is ok, so I stop music play, then I plug a microphone into LINE-IN port, then start a call on my laptop, talk through microphone, but the peer phone can't hear any voice for my side. do I miss something? thanks.

Best Regards,

Handom

Parents
  • Hello Handom,

    Which microphone are you using? Have you checked that the microphone's sound is being correctly transferred to the peer, outside of a call? The nRF5340 Audio DK does not provide power to the LINE IN option, and so you can not use a microphone that does not provide its own power to the signal (similar to how a phone or PC would provide both signal and power to the LINE IN).
    As an alternative you can switch to use the onboard PDM microphone, if you do not have a microphone with its own power available.

    Additionally, to my knowledge the TMAP profile is not yet available in Android and the nRF5340 Audio application, and so this is likely why the phone is not forwarding the audio to the call, even if it is receiving it properly.
    Does the headset device show up on the phone call menu alongside the 'speaker'/'BT Device' option?

    Best regards,
    Karl

  • Hi Karl,

    I checked the microphone, which didn't have its own power supply, so I can't use it.

    As you mentioned that I can switch to use the onboard PDM microphone, but I don't know how to switch it, please give me a solution, thanks.

    Best regards,

    Handom

  • Hello Handom,

    To use the onboard PDM microphone you should add the following:

    prj.conf:

    CONFIG_AUDIO_SOURCE_I2S=y
    CONFIG_AUDIO_SOURCE_PDM=n


    audio/Kconfig
    config AUDIO_SOURCE_PDM
    	bool "Use PDM MIC as audio source"
    


    in hw_codec_default_conf_enable from hw_codec.c
    #if (CONFIG_AUDIO_SOURCE_PDM)
    	LOG_INF("PDM turned on");
    	ret = cs47l63_comm_reg_conf_write(pdm_mic_enable_configure,
    					  ARRAY_SIZE(pdm_mic_enable_configure));
    	if (ret) {
    		return ret;
    	}
    #endif


    Best regards,
    Karl

  • Hi Karl,

    I changed the code as you suggested, but after that, I can't play music any more, how can I realize this in this environment? thanks.

    Best regards,

    Handom

Reply Children
  • Hello Handom,

    With my suggested changes you will be taking the input from the onboard PDM microphone - not the LINE IN option.
    If you wish to change between the PDM microphone and the LINE IN input option you will have to reconfigure the cirrus logic chip to choose the intended source every time you wish to change the source.
    Essentially, making the change I suggested in the hw_codec.c only happen when you wish to use the PDM microphone, and then switch back to the default cirrus logic configuration when you wish to use the LINE IN input.

    Best regards,
    Karl

Related