This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Adafruit I2S MEMS Microphone Breakout with the NRF9160 DK

Hello,

I am working on a project where I can have Voice over IP on the NRF9160 DK. I am now working with a I2S microphone (https://www.adafruit.com/product/3421) at the moment I have trouble programming I2S. I read the I2S documentation on the zephyr website but I have still trouble understanding it and there is also no example where I can look at. I don't know how to setup the struct device (https://docs.zephyrproject.org/2.0.0/reference/peripherals/i2s.html?highlight=i2s#) that you use in the functions to setup i2s and read/write the buffer. I also don't know which pin i have to connect to the microphone, because the pin names are not the same or can i just connect  to any pin and write in the code to use that pin? If sombody has an I2S example I would really appreciate that. I also need to find a speaker that I can use any suggestions?

Thank you in advance

  • Hi Martin,

    I managed to get the microphone to work. The only thing that I don't understand is that the frequency of the SCK pin is not the same frequency as the MCK pin. The MCK frequency would be 4 mhz and the SCK frequency  1 mhz and the micropohne doen'st work on a frequency lower then 2 mhz. I connected the microphone now to the MCK.

    Now I want to play audio with this i2s amplifier(https://www.adafruit.com/product/3006). I managed to play audio by connecting the data output from the  microphone directly to the amplifier to test it. Now I want to play audio by connecting to the NRF9160 dout pin. I know that I have to assign the data to the tx_buffer, ,but the audio that comes out is a random sound. I noticed that the data output from the nrf had a frequency of 700 khz. The microphone had a frequencccy of 300 khz and that works. How do i lower the frequency of the data output or should I change something else?

    Thank you in advance

Related