<?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: MMA8652FC FIFO Buffer in Sensors</title>
    <link>https://community.nxp.com/t5/Sensors/MMA8652FC-FIFO-Buffer/m-p/363594#M1126</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Andrew,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="CS" style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;Glad to see it works now. &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;I would recommend reading the FIFO only, as you can see in my sample code. Then you should not get the second pulse on the INT1 pin.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;I hope it helps.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;Tomas&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 09 Mar 2015 10:49:45 GMT</pubDate>
    <dc:creator>TomasVaverka</dc:creator>
    <dc:date>2015-03-09T10:49:45Z</dc:date>
    <item>
      <title>MMA8652FC FIFO Buffer</title>
      <link>https://community.nxp.com/t5/Sensors/MMA8652FC-FIFO-Buffer/m-p/363591#M1123</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, I'm trying to read from the FIFO Buffer off of the MMA8652FC Accelerometer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I currently have it set up where the Buffer mode is set to be a Fill Buffer and the Watermark is set to 32 samples. I also have F_READ (Fast Read mode) enabled, so that the data I'm reading in is only 8-bits.&lt;/P&gt;&lt;P&gt;I do understand that whenever F_MODE is greater than 0, the OUT_X_MSB (0x01) register becomes the root pointer to XYZ FIFO data.&lt;/P&gt;&lt;P&gt;With this in mind, when I try to read and access the FIFO samples from OUT_X_MSB, it only returns 0x80 96 times. So it's clear I'm accessing the FIFO data improperly, however I cannot figure out why.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note that I am able to access the data normally with the FIFO buffer disabled&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The code I am using to read off of the FIFO is this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14256303581303854" jivemacro_uid="_14256303581303854" modifiedtitle="true"&gt;
&lt;P&gt;void accel_BufRead(uint8* Data_Ptr){&lt;/P&gt;
&lt;P&gt;&amp;nbsp; uint8 numBytes=96; //96 because I'm reading 32 samples of 8-bit XYZ data thus 32*3=96&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp; uint8 Write_Buf[1] = {0};&lt;/P&gt;
&lt;P&gt;&amp;nbsp; uint8 *Write_Ptr = &amp;amp;Write_Buf;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Write_Buf[0] = 0x01;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; I2C_1_MasterWriteBuf(Addr, Write_Ptr, 1, I2C_1_MODE_NO_STOP);//Addr is the slave address, Write_Ptr is the register address, I2C_1_MODE_NO_STOP&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //indicates a mode where it&lt;SPAN style="font-size: 9pt; line-height: 12pt;"&gt; will execute an I2C transfer without a Stop&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(0u == (I2C_1_MasterStatus() &amp;amp; I2C_1_MSTAT_WR_CMPLT)){} //Check if the write process was successful and completed&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; I2C_1_MasterReadBuf(Addr, Data_Ptr, numBytes, I2C_1_MODE_REPEAT_START);//Addr is the slave address, Data_Ptr is where the data will be stored,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //numBytes= 96 bytes of data expected to read, I2C_MODE_REPEAT_START &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //indicates mode where it&lt;SPAN style="font-size: 9pt; line-height: 12pt;"&gt; will execute an I2C transfer &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //by sending a Repeat Start instead of a Start&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(0u == (I2C_1_MasterStatus() &amp;amp; I2C_1_MSTAT_RD_CMPLT)){} //Check if the read process was successful and completed&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;

&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Feb 2026 21:08:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MMA8652FC-FIFO-Buffer/m-p/363591#M1123</guid>
      <dc:creator>ands</dc:creator>
      <dc:date>2026-02-03T21:08:21Z</dc:date>
    </item>
    <item>
      <title>Re: MMA8652FC FIFO Buffer</title>
      <link>https://community.nxp.com/t5/Sensors/MMA8652FC-FIFO-Buffer/m-p/363592#M1124</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Andrew,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It is hard to say where the problem might be, but attached you can find my example code I just wrote to test it. Accelerometer setting can be found in the MMA8652FC_Init function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here you can see some screenshots illustrating correct behavior.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;F_READ = 1, so the data is 8-bits only:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="FIFO 8bit data.JPG.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/51108i3CF8434A89DBC2FA/image-size/large?v=v2&amp;amp;px=999" role="button" title="FIFO 8bit data.JPG.jpg" alt="FIFO 8bit data.JPG.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ODR is set to 800Hz, so the FIFO interrupt happens every 40 ms (1.25 ms x 32 samples):&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="FIFO interrupt.JPG.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/51109i9B06B359E16BBE14/image-size/large?v=v2&amp;amp;px=999" role="button" title="FIFO interrupt.JPG.jpg" alt="FIFO interrupt.JPG.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;Let me know whether or not this helps, or if you have any other questions.&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;Regards,&lt;/P&gt;&lt;P style="background: white;"&gt;Tomas&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 13px; font-family: Arial, sans-serif; color: #333333;"&gt;&lt;EM&gt;&lt;SPAN style="color: #3d3d3d; font-style: inherit; font-size: 11px; font-family: inherit; font-weight: inherit;"&gt;&lt;EM&gt;PS:&lt;SPAN class="Apple-converted-space" style="font-weight: inherit; font-style: inherit; font-family: inherit;"&gt;&lt;SPAN class="Apple-converted-space"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 11px; font-family: inherit; color: #3d3d3d;"&gt;If my answer helps to solve your question, please mark it as "Correct" or “Helpful”. Thank you.&lt;/SPAN&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Mar 2015 11:20:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MMA8652FC-FIFO-Buffer/m-p/363592#M1124</guid>
      <dc:creator>TomasVaverka</dc:creator>
      <dc:date>2015-03-06T11:20:27Z</dc:date>
    </item>
    <item>
      <title>Re: MMA8652FC FIFO Buffer</title>
      <link>https://community.nxp.com/t5/Sensors/MMA8652FC-FIFO-Buffer/m-p/363593#M1125</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Tomas,&lt;/P&gt;&lt;P&gt;Thank you so much for replying to my question. Your sample code made me realize that the read function provided in Cypress' PSoC library just wasn't doing what I needed it to do. So I rewrote their read function and it seems like it is finally properly functioning. Thank you so much! This is the data output I get now.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="FIFO Data.PNG.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/51194i11B9CEEED9555A81/image-size/large?v=v2&amp;amp;px=999" role="button" title="FIFO Data.PNG.png" alt="FIFO Data.PNG.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;I polled the INT1 Pin to see if the interrupt was functioning properly and for the most part it is. There are times where it gets a strange signal where it goes low and high and low and high again. Here's a picture of what I'm talking about:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="FIFO_INT Signal.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/51195iB7CD001108CA9239/image-size/large?v=v2&amp;amp;px=999" role="button" title="FIFO_INT Signal.png" alt="FIFO_INT Signal.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Do you have any ideas of why that's happening? Just to make sure, the only thing I need to clear the interrupt is read the F_STATUS (0x00) register right?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 08 Mar 2015 08:16:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MMA8652FC-FIFO-Buffer/m-p/363593#M1125</guid>
      <dc:creator>ands</dc:creator>
      <dc:date>2015-03-08T08:16:38Z</dc:date>
    </item>
    <item>
      <title>Re: MMA8652FC FIFO Buffer</title>
      <link>https://community.nxp.com/t5/Sensors/MMA8652FC-FIFO-Buffer/m-p/363594#M1126</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Andrew,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="CS" style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;Glad to see it works now. &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;I would recommend reading the FIFO only, as you can see in my sample code. Then you should not get the second pulse on the INT1 pin.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;I hope it helps.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;Tomas&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Mar 2015 10:49:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MMA8652FC-FIFO-Buffer/m-p/363594#M1126</guid>
      <dc:creator>TomasVaverka</dc:creator>
      <dc:date>2015-03-09T10:49:45Z</dc:date>
    </item>
  </channel>
</rss>

