<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: I2S: Encoding and Decoding Signals in LabVIEW in Components</title>
    <link>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/2967827#M1270</link>
    <description>&lt;P&gt;Yes, If you have those four incoming signals you can pass them to the I2S_Decode function.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The array going into this VI must contain the combined data from the four signal lines in each element of the numeric array. i.e. each bit of the numeric value represents one digital line. Since you only have four digital lines the numeric values should be in the range of 0 -15. I have attahced an updated VI that shows the combined digital data and separate digital waveforms. Your data coming from the HSDIO should look similar to the combined digital data array.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The Master Clock Oversampling Factor represents the ratio between the Master Clock frequency and Serial Clock frequency. If they are the same it should be 1. In my example I used a factor of 4 so the MClk is four times faster than the serial clock. &amp;nbsp;The serial clock corresponds to the updates of the Data line containing the analog values.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="https://ip1.i.lithium.com/42e4d9e9bbdeb891d5484eb1b1fda43d70b732b3/68747470733a2f2f6e692e6c69746869756d2e636f6d2f74352f696d6167652f736572766572706167652f696d6167652d69642f31353235333969313131423643354139433746333036302f696d6167652d73697a652f6f726967696e616c3f763d6d70626c2d312670783d2d31" border="0" alt="I2S Digital Graph.png" title="I2S Digital Graph.png" align="center" /&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 26 Aug 2014 18:34:09 GMT</pubDate>
    <dc:creator>Christian_L</dc:creator>
    <dc:date>2014-08-26T18:34:09Z</dc:date>
    <item>
      <title>I2S: Encoding and Decoding Signals in LabVIEW</title>
      <link>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/959062#M265</link>
      <description>&lt;P&gt;&amp;nbsp;Please provide feedback, comments, and questions on various I2S examples&amp;nbsp;in this thread.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Generate / Acquire I2S Signals using High Speed Dogital I/O (HSDIO):&amp;nbsp;&lt;A href="https://decibel.ni.com/content/docs/DOC-47263" target="_blank"&gt;https://decibel.ni.com/content/docs/DOC-47263&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I2S Decoder using LV FPGA and RIO HW:&amp;nbsp;&lt;A href="https://decibel.ni.com/content/docs/DOC-1230" target="_blank"&gt;https://decibel.ni.com/content/docs/DOC-1230&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 16 May 2016 14:38:43 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/959062#M265</guid>
      <dc:creator>ninjaphil</dc:creator>
      <dc:date>2016-05-16T14:38:43Z</dc:date>
    </item>
    <item>
      <title>Re: I2S: Encoding and Decoding Signals in LabVIEW</title>
      <link>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/1138849#M453</link>
      <description>&lt;P&gt;Hi ninjaphil,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am not familiar with the protocol, but just wondering if this reference design can be used with M Series Correlated DIO?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would appreciate any advise.&lt;BR /&gt;Thanks.&lt;BR /&gt;Sincerely,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Krisna &lt;/P&gt;</description>
      <pubDate>Mon, 31 May 2010 07:20:55 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/1138849#M453</guid>
      <dc:creator>KrisnaWisnu</dc:creator>
      <dc:date>2010-05-31T07:20:55Z</dc:date>
    </item>
    <item>
      <title>Re: I2S: Encoding and Decoding Signals in LabVIEW</title>
      <link>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/2439406#M967</link>
      <description>&lt;P&gt;The NXP info link is dead, I2SBUS.pdf is no longer on their site.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 27 May 2013 13:19:53 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/2439406#M967</guid>
      <dc:creator>Hobbit13</dc:creator>
      <dc:date>2013-05-27T13:19:53Z</dc:date>
    </item>
    <item>
      <title>Re: I2S: Encoding and Decoding Signals in LabVIEW</title>
      <link>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/2439948#M968</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It's only 7 pages but it is a start.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Kees&lt;/P&gt;</description>
      <pubDate>Tue, 28 May 2013 06:42:41 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/2439948#M968</guid>
      <dc:creator>K C</dc:creator>
      <dc:date>2013-05-28T06:42:41Z</dc:date>
    </item>
    <item>
      <title>Re: I2S: Encoding and Decoding Signals in LabVIEW</title>
      <link>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/2504506#M1004</link>
      <description>&lt;P&gt;Hello&lt;/P&gt;
&lt;P&gt;where can I download the vi's cited in &lt;A href="http://www.ni.com/white-paper/9540/en" target="_blank"&gt;http://www.ni.com/white-paper/9540/en&lt;/A&gt;&amp;nbsp;(e.g. I2S_Decode_Formated_Data.viI2S_Decode_Formated_Data.vi) and also the physical connections to a DIO or FPGA board?&lt;/P&gt;
&lt;P&gt;thanks in advance.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Giovanni&lt;/P&gt;</description>
      <pubDate>Fri, 26 Jul 2013 11:36:35 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/2504506#M1004</guid>
      <dc:creator>Patekkio</dc:creator>
      <dc:date>2013-07-26T11:36:35Z</dc:date>
    </item>
    <item>
      <title>Re: I2S: Encoding and Decoding Signals in LabVIEW</title>
      <link>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/2957743#M1265</link>
      <description>Hi,&lt;BR /&gt;&lt;BR /&gt;I'm pretty new in this type of protocol. I'm trying to integrate the I2S to HSDIO. May I ask what is the connections I should make (I'm having HSDIO to generate and acquire at the same time without a DUT in between). How many bits does the I2S encode output uses?&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Please advice&lt;BR /&gt;&lt;BR /&gt;Thanks&lt;BR /&gt;&lt;BR /&gt;Warmest regards,&lt;BR /&gt;Lennard.C</description>
      <pubDate>Wed, 20 Aug 2014 12:35:16 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/2957743#M1265</guid>
      <dc:creator>Lennard.C</dc:creator>
      <dc:date>2014-08-20T12:35:16Z</dc:date>
    </item>
    <item>
      <title>Re: I2S: Encoding and Decoding Signals in LabVIEW</title>
      <link>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/2959305#M1266</link>
      <description>&lt;P&gt;In general I2S includes 3 signal lines. This I2S description should povide you most of the necessary information. I assume you will generate and read back the I2S bus, you will use 6 pins/channels in total, 3 out and 3 in.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.sparkfun.com/datasheets/BreakoutBoards/I2SBUS.pdf" target="_blank"&gt;https://www.sparkfun.com/datasheets/BreakoutBoards/I2SBUS.pdf&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 21 Aug 2014 17:29:08 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/2959305#M1266</guid>
      <dc:creator>Christian_L</dc:creator>
      <dc:date>2014-08-21T17:29:08Z</dc:date>
    </item>
    <item>
      <title>Re: I2S: Encoding and Decoding Signals in LabVIEW</title>
      <link>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/2961415#M1268</link>
      <description>&lt;P&gt;Hi Christian,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks for the reply. I would like to ask if I were to use 4 channels in which consists of the Master Clock, Serial Clock, Word Select and Serial Data to the HSDIO, would it be possible to decode using the&amp;nbsp;I2S decode portion from the example? If so, what are the changes (e.g. connections from the HSDIO or the code) I need to take note of? Can this I2S encode and decode subVIs can be used for general I2S encode and decode applications?&amp;nbsp;What defines the value for "Master clock Over Sample Factor"?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="line-height: 15px;"&gt;I also noticed that there is a CLK IN/&lt;/SPAN&gt;&lt;SPAN style="line-height: 15px;"&gt;OUT function for the Master Clock however they are not enquiring external CLK in/out ports of the HSDIO.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please advice&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Warmest regards,&lt;/P&gt;
&lt;P&gt;Lennard.C&lt;/P&gt;</description>
      <pubDate>Mon, 25 Aug 2014 02:46:08 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/2961415#M1268</guid>
      <dc:creator>ASEAN</dc:creator>
      <dc:date>2014-08-25T02:46:08Z</dc:date>
    </item>
    <item>
      <title>Re: I2S: Encoding and Decoding Signals in LabVIEW</title>
      <link>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/2967827#M1270</link>
      <description>&lt;P&gt;Yes, If you have those four incoming signals you can pass them to the I2S_Decode function.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The array going into this VI must contain the combined data from the four signal lines in each element of the numeric array. i.e. each bit of the numeric value represents one digital line. Since you only have four digital lines the numeric values should be in the range of 0 -15. I have attahced an updated VI that shows the combined digital data and separate digital waveforms. Your data coming from the HSDIO should look similar to the combined digital data array.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The Master Clock Oversampling Factor represents the ratio between the Master Clock frequency and Serial Clock frequency. If they are the same it should be 1. In my example I used a factor of 4 so the MClk is four times faster than the serial clock. &amp;nbsp;The serial clock corresponds to the updates of the Data line containing the analog values.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="https://ip1.i.lithium.com/42e4d9e9bbdeb891d5484eb1b1fda43d70b732b3/68747470733a2f2f6e692e6c69746869756d2e636f6d2f74352f696d6167652f736572766572706167652f696d6167652d69642f31353235333969313131423643354139433746333036302f696d6167652d73697a652f6f726967696e616c3f763d6d70626c2d312670783d2d31" border="0" alt="I2S Digital Graph.png" title="I2S Digital Graph.png" align="center" /&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 26 Aug 2014 18:34:09 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/2967827#M1270</guid>
      <dc:creator>Christian_L</dc:creator>
      <dc:date>2014-08-26T18:34:09Z</dc:date>
    </item>
    <item>
      <title>Re: I2S: Encoding and Decoding Signals in LabVIEW</title>
      <link>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/2989909#M1278</link>
      <description>&lt;P&gt;Have you decoded and listened to any audio using this VI? I am just wondering what the quality of the data would be once it has been decoded and processed, any additional noise or distortion for example.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks &amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 11 Sep 2014 14:31:54 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/2989909#M1278</guid>
      <dc:creator>nashm999</dc:creator>
      <dc:date>2014-09-11T14:31:54Z</dc:date>
    </item>
    <item>
      <title>Re: I2S: Encoding and Decoding Signals in LabVIEW</title>
      <link>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/3295632#M1505</link>
      <description>&lt;P&gt;Dear all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need to decode data from Digital MEMS microphone (ICS-43432) using NI myRIO 1900.&lt;/P&gt;&lt;P&gt;I have attached below the screenshot of thte sytem block diagram of microphone.&lt;/P&gt;&lt;P&gt;&lt;IMG src="https://ip1.i.lithium.com/8c8fd72d2dd2976a48a8fe529ba0b741a9fdc6e4/68747470733a2f2f6e692e6c69746869756d2e636f6d2f74352f696d6167652f736572766572706167652f696d6167652d69642f31383334393069354436413146303138343238343743452f696d6167652d73697a652f6f726967696e616c3f763d76322670783d2d31" border="0" alt="System Block Diagram.JPG" title="System Block Diagram.JPG" width="533" height="321" /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In my circuit, I am using only one MEMS circuit&amp;nbsp;and I have connected the&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;LR to 0 (GND)&lt;/LI&gt;&lt;LI&gt;WS to Connector A: Digital Input 0&lt;/LI&gt;&lt;LI&gt;SCK to Connector A: Digital Input 1&lt;/LI&gt;&lt;LI&gt;SD to Connector A: Digital Input 2&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#0000FF"&gt;I understand&amp;nbsp;that I can use FPGA in myRIO to&amp;nbsp;establish I2S communication and tranfer the data from FPGA to RT Host using DMA FIFO&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have found your actual post&amp;nbsp;from the link below&lt;/P&gt;&lt;P&gt;&lt;A title="LabVIEW FPGA I2S decoder" href="https://decibel.ni.com/content/docs/DOC-1230" target="_blank"&gt;https://decibel.ni.com/content/docs/DOC-1230&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When i tried to run this program in myRIO, i am neither&amp;nbsp;getting any significant output nor&amp;nbsp;I understand how the program works.&lt;/P&gt;&lt;P&gt;I suspect the program is running too fast when i obseved the iteration counter both in FPGA and in RT.&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;I am wondering how do i configure the loop speed to that of my preferred sampling rate.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;I need to perform sampling, fs at a rate of 48 KHz&lt;/STRONG&gt;.&amp;nbsp;&lt;/P&gt;&lt;P&gt;From the data sheet of the microphone, i realised that&amp;nbsp;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;STRONG&gt;&lt;FONT color="#0000FF"&gt;SCK = 64 x f&lt;FONT size="1 2 3 4 5 6 7"&gt;s&lt;/FONT&gt; = 64 x 48 KHz = 3.072 MHz&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;It's also mentioned&amp;nbsp;that&lt;STRONG&gt; it produes &lt;FONT color="#0000FF"&gt;24 bit data&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can anyone help me explain or understand how this I2C program shown below works.&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;If not, can you provide me with some reference links.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance&amp;nbsp;&lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://ni.lithium.com/i/smilies/16x16_smiley-happy.gif" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;FPGA screenshot&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;IMG src="https://ip1.i.lithium.com/011e661364f5bd875635112d8a7453e7dae2e643/68747470733a2f2f6e692e6c69746869756d2e636f6d2f74352f696d6167652f736572766572706167652f696d6167652d69642f31383334393269334142363931454146324239344641352f696d6167652d73697a652f6f726967696e616c3f763d76322670783d2d31" border="0" alt="FPGA screenshot.JPG" title="FPGA screenshot.JPG" /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Real Time Target Screenshot&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;IMG src="https://ip1.i.lithium.com/4c7eb23fdb39adb6c262bdbc4b7f40cbd991b189/68747470733a2f2f6e692e6c69746869756d2e636f6d2f74352f696d6167652f736572766572706167652f696d6167652d69642f31383334393369363441434542373231303439433337352f696d6167652d73697a652f6f726967696e616c3f763d76322670783d2d31" border="0" alt="RT screenshot.JPG" title="RT screenshot.JPG" /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 16 May 2016 09:15:01 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/3295632#M1505</guid>
      <dc:creator>PrasanthTP</dc:creator>
      <dc:date>2016-05-16T09:15:01Z</dc:date>
    </item>
    <item>
      <title>Re: I2S: Encoding and Decoding Signals in LabVIEW</title>
      <link>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/3297691#M1507</link>
      <description>&lt;P&gt;I'll try to give you some help on this example.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The Read Loop, which is the blue structure is a Single Cycle Loop and runs at the clock rate of the FPGA, which is 40 MHz by default.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;The Read Loop synchronizes itself to the I2S signal by looking for the edges on the SClk and WS (LRClk in the FPGA code), so you do not need to configure the loop speed. Based on these edges and the number of bits, the read loop uses a simple state machine (implemented using the various case structures) to read the SD line, collect the data bits in a register, and transfer the collected data using the DMA FIFO.&lt;/LI&gt;
&lt;LI&gt;After starting the FPGA VI the Read loop sits in the Wait for Start case. After starting the read operation from the Host VI, the Read loop goes into the&amp;nbsp;the Synch Start case.&lt;/LI&gt;
&lt;LI&gt;In the Synch Start case, the FPGA is reading the WS (LRCLk) line looking for a falling edge, which indicates the start of the Left Channel, and goes into the Read state.&lt;/LI&gt;
&lt;LI&gt;In the Read state, the FPGA VI looks for rising edges on the SCLk, which is the indicator to read the SD (SData) line. On the next cycle of the read loop it reads the SD line and writes the bit to the Sample Value register.&lt;/LI&gt;
&lt;LI&gt;The Bit Counter register keeps track of how many bits have been written to the Sampe Value register. After the configured number of bits have been collected, the Sample Value is written to the DMA FIFO.&lt;/LI&gt;
&lt;LI&gt;While looking at the SClk, the FPGA VI is also looking for the WS (LRClk) signal to change, which indicates the end of the current channel and beginning of the next channel. At this point the Bit Counter is reset and the VI is starting to collect the bits for the other channel.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;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).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="https://ip1.i.lithium.com/e465862d10070e6bb8800b064227860d6af31ebe/68747470733a2f2f6e692e6c69746869756d2e636f6d2f74352f696d6167652f736572766572706167652f696d6167652d69642f31383337333869363731313930353630344641373331362f696d6167652d73697a652f6f726967696e616c3f763d76322670783d2d31" border="0" alt="Mask Channel Data.png" title="Mask Channel Data.png" /&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 19 May 2016 21:53:41 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Components/I2S-Encoding-and-Decoding-Signals-in-LabVIEW/m-p/3297691#M1507</guid>
      <dc:creator>Christian_L</dc:creator>
      <dc:date>2016-05-19T21:53:41Z</dc:date>
    </item>
  </channel>
</rss>

