How to connect external 3.3V I/F I2S signal to nrf5340-audio-dk

Hello,
devzone.nordicsemi.com/.../set-nrf5340-audio-dk-as-i2s-slave-over-external-bus
Based on this post, I changed I2S to SLAVE setting.
The external I2S I/F level is 3.3V.
When OB/EXT is green, it is noisy when I2S of 3.3V I/F is connected to P5, but we have confirmed that the audio signal is sent to the RX side and the sound is heard.


devzone.nordicsemi.com/.../access-to-i2s-interface-on-nrf5340-audio-dk

Based on this post, I tried changing the I2S port.
If OB/EXT lights up orange, does that mean the port has been changed to P10 instead of P5?

But when OB/EXT is orange, there is no sound even if you forcefully connect the 3.3V I/F to P10.

Also, in order to change the 3.3V I/F to 1.8V I/F, I changed the I2S signal level using TI's TXS0108E.
When I connect the nrF5340 to the enabled I2S port (P5 or P10), I checked with an oscilloscope and found that there is quite a lot of noise on the I2S signal.
Since it is a bidirectional buffer, it seems that the noise component is flowing backwards, or the GND level is not stable and crosstalk noise is being buffered.

Is there a way to run nrF5340-audio-DK with 3.3V I/F?
Or is there a good way to make I2S a 1.8V I/F?

  • Hello,

    When connected to P5, I found that the output of CIRRUS's CODEC collided with the external 3.3V I/F, causing the audio to be heard mixed with noise.
    With the P5 connection, even if the level shift is correct, noise (output from CIRRUS) will be mixed in the I2S DATA line and no sound will be produced.

    Also, I have connected the P10 to the 1.8V I/F I2S with a software setting that turns OB/EXT orange, but there is no sound.
    Could you please give me detailed steps to use external hardware codec?

  • Hello,

    Just to aid my understanding so that I may best advice you, is your overall goal to interface the nRF5340 Audio DK with an external hardware codec that outputs I2S at 3.3V?

    MontBlanc said:
    Could you please give me detailed steps to use external hardware codec?

    Please follow these steps to work with an external hardware codec:



    Best regards,
    Karl

  • Hello, thank you for your reply.

    I believe I have followed the steps below, but I may be missing something.
    Actually, the LED on OB/EXT has changed to orange.

    Remove hw_codec_init() and all CS47L63 related code from the project
    This ay not be done correctly.

    main.c
    #include <hal/nrf_gpio.h>

    and added
    nrf_gpio_cfg_output(21);
    nrf_gpio_pin_set(21);
    inside
    int main(void){}


    audio_system.c
    "ret = hw_codec_init();"
    delete

    hw_codec.c
    Change all "return ret" in to "retuern 0"

    Are there any other changes?

  • Hello,

    MontBlanc said:
    thank you for your reply.

    No problem at all, I am happy to help! :) 

    MontBlanc said:
    I believe I have followed the steps below, but I may be missing something.

    Your changes looks alright to me - How does your logs look with these changes, and what is it that goes wrong when you say 'may be missing something'?

    Could you confirm which version of the nRF Connect SDK you are working wtih?

    Best regards,
    Karl

  • Hello,

    I wrote this because I was not confident in changing the source code and thought there might be something missing.
    Does that mean that there are no mistakes in the changes made to the source code?

    There is one more thing that I am not confident about, but as for the Build and Flash procedures.
    Build and Flash the source code of A on the TX(gateway) side and RX(Headset Left) side respectively. In this state, a sound will be heard.
    After that, Flash and Build will not be executed on the RX side.

    Modify the TX side and build and Flash the B source code only on the TX side. →Sound comes out on the RX side.
    Modify the TX side, build and Flash the C source code on the TX side. →There is no sound on the RX side because it is unclear whether the source code has been corrected.
    Modify the TX side, build and Flash the source code of A to the TX side. →No sound on the RX side (cause unknown)
    Build and Flash the source code of A for TX and RX at the same time. →Sound comes out on the RX side.

    In other words, if Flash and Build are repeated only on the TX side, the RX side may also be in an abnormal state.
    Are my Build and Flash procedures correct?
    Is it necessary to branch TX and RX using an if statement in the source code and build and flash them at the same time?

    Best Regards.

Related