05-16-2016 04:13 AM - edited 05-16-2016 04:15 AM
Dear all,
I need to decode data from Digital MEMS microphone (ICS-43432) using NI myRIO 1900.
I have attached below the screenshot of thte sytem block diagram of microphone.
In my circuit, I am using only one MEMS circuit and I have connected the
I understand that I can use FPGA in myRIO to establish I2S communication and tranfer the data from FPGA to RT Host using DMA FIFO
I have found your actual post from the link below
https://decibel.ni.com/content/docs/DOC-1230
When i tried to run this program in myRIO, i am neither getting any significant output nor I understand how the program works.
I suspect the program is running too fast when i obseved the iteration counter both in FPGA and in RT.
I am wondering how do i configure the loop speed to that of my preferred sampling rate.
I need to perform sampling, fs at a rate of 48 KHz.
From the data sheet of the microphone, i realised that
SCK = 64 x fs = 64 x 48 KHz = 3.072 MHz
It's also mentioned that it produes 24 bit data
Can anyone help me explain or understand how this I2C program shown below works.
If not, can you provide me with some reference links.
Thanks in advance
FPGA screenshot
Real Time Target Screenshot
05-19-2016 04:53 PM
I'll try to give you some help on this example.
Looking at the datasheet for your microphone, the sensor outputs 24 bits per channel, but skips the first sample. Therefore you need to set the number of bits per sample to 25. After acquiring 25 bits from the SD line, you will have the 24 bits of valid data in the Sample Value register for transfer to the RT host VI. In the host VI, you should mask the data to the 24 bits to remove the extra bit acquired. This can be easily done using the Boolean And function (see example).