<?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>SensorsのトピックRe: MMA8653FCR1 Configuring Interrupts</title>
    <link>https://community.nxp.com/t5/Sensors/MMA8653FCR1-Configuring-Interrupts/m-p/461147#M2556</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I found the solution.&amp;nbsp; Here:&amp;nbsp; &lt;SPAN style="font-size: 11.0pt; font-family: 'Calibri',sans-serif;"&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/thread/378621#comments"&gt;https://community.freescale.com/thread/378621#comments&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For my code, I just needed to have the following methods:&lt;/P&gt;&lt;H4&gt;&lt;/H4&gt;&lt;H4&gt;void MMA8653::initialize()&lt;/H4&gt;&lt;H4&gt;{&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2cSend(CTRL_REG1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x00&amp;nbsp;&amp;nbsp; ); //Standby Mode&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2cSend(CTRL_REG2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x07&amp;nbsp;&amp;nbsp; ); //Autosleep enabled / Low Power&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2cSend(CTRL_REG3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x08&amp;nbsp;&amp;nbsp; ); //Wake from Motion interrupt / Active Low / PushPull&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2cSend(CTRL_REG4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x04&amp;nbsp;&amp;nbsp; ); //Enable Motion interrupt&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2cSend(CTRL_REG5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x04&amp;nbsp;&amp;nbsp; ); //Interrupt on INT1&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2cSend(FF_MT_CFG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x71&amp;nbsp;&amp;nbsp; ); //Event not latched/Motion/ Enable X/Y/Z detection on INT1&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2cSend(FF_MT_THS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x12&amp;nbsp;&amp;nbsp; ); //Set threshold value to 1.134g&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2cSend(FF_MT_COUNT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x00&amp;nbsp;&amp;nbsp; ); //Set number of debounce&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2cSend(CTRL_REG1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x21&amp;nbsp;&amp;nbsp; ); //Set ODR to 200Hz &amp;amp; active mode&lt;/H4&gt;&lt;H4&gt; }&lt;/H4&gt;&lt;H4&gt;&lt;/H4&gt;&lt;H4&gt;void MMA8653::clearInterrupt()&lt;/H4&gt;&lt;H4&gt;{&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp; char buffer[7];&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp; Wire.beginTransmission(adress_acc);&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp; Wire.write(FF_MT_SRC);&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp; Wire.endTransmission();&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp; Wire.requestFrom(adress_acc,7);&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp; Wire.readBytes(buffer, 7);&lt;/H4&gt;&lt;H4&gt;}&lt;/H4&gt;&lt;H4&gt;&lt;/H4&gt;&lt;P&gt;When an event happens, I just call clearInterrupt() and life is groofy.&amp;nbsp; Works like a charm&lt;/P&gt;&lt;P&gt;Thanks for all the help everybody !!!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 12 May 2016 15:44:35 GMT</pubDate>
    <dc:creator>curtisharrison</dc:creator>
    <dc:date>2016-05-12T15:44:35Z</dc:date>
    <item>
      <title>MMA8653FCR1 Configuring Interrupts</title>
      <link>https://community.nxp.com/t5/Sensors/MMA8653FCR1-Configuring-Interrupts/m-p/461145#M2554</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;BR /&gt;I've been trying off and on to set up an interrupt on the MMA8653FCR1 accelerometer.&amp;nbsp; I has seemed to be working from time to time, but then it would just not work.&lt;/P&gt;&lt;P&gt;I'm coding in the Energia environment and would appreciate some guidance as to what registers need to be set, and to what values.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here's precisely what I need:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. I need to run in low power mode.&lt;/P&gt;&lt;P&gt;2. When there is an abrupt movement detected (2g) I need the sensor to come alive and set an interrupt.&lt;/P&gt;&lt;P&gt;3. Please let me know if the interrupt is setting my pin to high or to low.&lt;/P&gt;&lt;P&gt;4. Is there anything I need to do when I get an interrupt so that future interrupts will fire?&lt;/P&gt;&lt;P&gt;5. I would like the interrupt to fire when I gently shake the board that has the MMA8653FCR1 on it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your assistance,&lt;/P&gt;&lt;P&gt;Curtis&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Feb 2026 22:28:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MMA8653FCR1-Configuring-Interrupts/m-p/461145#M2554</guid>
      <dc:creator>curtisharrison</dc:creator>
      <dc:date>2026-02-03T22:28:09Z</dc:date>
    </item>
    <item>
      <title>Re: MMA8653FCR1 Configuring Interrupts</title>
      <link>https://community.nxp.com/t5/Sensors/MMA8653FCR1-Configuring-Interrupts/m-p/461146#M2555</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Curtis, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. In order to set the &lt;STRONG&gt;Low Power Mode&lt;/STRONG&gt;, you may refer to the &lt;STRONG&gt;MODS&lt;/STRONG&gt; bits from the &lt;STRONG&gt;CTRL_REG2 System Control 2 register&lt;/STRONG&gt;. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. I would like to recommend the following Bare Metal Example project in order to know how to deal with the interrupts:&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: red;"&gt;&lt;A href="https://community.nxp.com/docs/DOC-101192"&gt;MMA8652FC - Bare metal example project&lt;/A&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3. The interrupt polarity is set at the IPOL bit from the &lt;STRONG&gt;CTRL_REG3&lt;/STRONG&gt; Interrupt Control register.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4. The &lt;SPAN class="highlight"&gt;interrupt is c&lt;/SPAN&gt;leared when reading the &lt;STRONG&gt;PL_STATUS &lt;/STRONG&gt;register.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;5. In case you need to generate an interrupt every time the accelerometer is shaken, I recommend to enable the &lt;STRONG&gt;Freefall/Motion Interrupt&lt;/STRONG&gt; at the &lt;STRONG&gt;CTRL_REG4 register&lt;/STRONG&gt;. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Please be aware that the Freefall/motion interrupt is routed to the INT2 by default. In order to change it, you may refer to the CTRL_REG5 register.&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In order to get more information about the Freefall/Motion configuration and status registers, you may refer to the chapter 6.7 at the &lt;A href="http://cache.nxp.com/files/sensors/doc/data_sheet/MMA8653FC.pdf?fpsp=1&amp;amp;WT_TYPE=Data%20Sheets&amp;amp;WT_VENDOR=FREESCALE&amp;amp;WT_FILE_FORMAT=pdf&amp;amp;WT_ASSET=Documentation&amp;amp;fileExt=.pdf" title="http://cache.nxp.com/files/sensors/doc/data_sheet/MMA8653FC.pdf?fpsp=1&amp;amp;WT_TYPE=Data%20Sheets&amp;amp;WT_VENDOR=FREESCALE&amp;amp;WT_FILE_FORMAT=pdf&amp;amp;WT_ASSET=Documentation&amp;amp;fileExt=.pdf"&gt;MMA8653FC datasheet&lt;/A&gt;​.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please let me know if you need more detailed information about setting the Freefall registers. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this information will be useful for you.&lt;/P&gt;&lt;P&gt;If I misunderstood your question, feel free to let me know.&amp;nbsp; I will be glad to help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day.&lt;/P&gt;&lt;P&gt;David Diaz.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 May 2016 01:06:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MMA8653FCR1-Configuring-Interrupts/m-p/461146#M2555</guid>
      <dc:creator>david_diaz</dc:creator>
      <dc:date>2016-05-12T01:06:06Z</dc:date>
    </item>
    <item>
      <title>Re: MMA8653FCR1 Configuring Interrupts</title>
      <link>https://community.nxp.com/t5/Sensors/MMA8653FCR1-Configuring-Interrupts/m-p/461147#M2556</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I found the solution.&amp;nbsp; Here:&amp;nbsp; &lt;SPAN style="font-size: 11.0pt; font-family: 'Calibri',sans-serif;"&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/thread/378621#comments"&gt;https://community.freescale.com/thread/378621#comments&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For my code, I just needed to have the following methods:&lt;/P&gt;&lt;H4&gt;&lt;/H4&gt;&lt;H4&gt;void MMA8653::initialize()&lt;/H4&gt;&lt;H4&gt;{&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2cSend(CTRL_REG1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x00&amp;nbsp;&amp;nbsp; ); //Standby Mode&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2cSend(CTRL_REG2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x07&amp;nbsp;&amp;nbsp; ); //Autosleep enabled / Low Power&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2cSend(CTRL_REG3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x08&amp;nbsp;&amp;nbsp; ); //Wake from Motion interrupt / Active Low / PushPull&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2cSend(CTRL_REG4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x04&amp;nbsp;&amp;nbsp; ); //Enable Motion interrupt&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2cSend(CTRL_REG5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x04&amp;nbsp;&amp;nbsp; ); //Interrupt on INT1&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2cSend(FF_MT_CFG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x71&amp;nbsp;&amp;nbsp; ); //Event not latched/Motion/ Enable X/Y/Z detection on INT1&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2cSend(FF_MT_THS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x12&amp;nbsp;&amp;nbsp; ); //Set threshold value to 1.134g&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2cSend(FF_MT_COUNT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x00&amp;nbsp;&amp;nbsp; ); //Set number of debounce&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2cSend(CTRL_REG1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x21&amp;nbsp;&amp;nbsp; ); //Set ODR to 200Hz &amp;amp; active mode&lt;/H4&gt;&lt;H4&gt; }&lt;/H4&gt;&lt;H4&gt;&lt;/H4&gt;&lt;H4&gt;void MMA8653::clearInterrupt()&lt;/H4&gt;&lt;H4&gt;{&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp; char buffer[7];&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp; Wire.beginTransmission(adress_acc);&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp; Wire.write(FF_MT_SRC);&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp; Wire.endTransmission();&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp; Wire.requestFrom(adress_acc,7);&lt;/H4&gt;&lt;H4&gt;&amp;nbsp;&amp;nbsp; Wire.readBytes(buffer, 7);&lt;/H4&gt;&lt;H4&gt;}&lt;/H4&gt;&lt;H4&gt;&lt;/H4&gt;&lt;P&gt;When an event happens, I just call clearInterrupt() and life is groofy.&amp;nbsp; Works like a charm&lt;/P&gt;&lt;P&gt;Thanks for all the help everybody !!!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 May 2016 15:44:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MMA8653FCR1-Configuring-Interrupts/m-p/461147#M2556</guid>
      <dc:creator>curtisharrison</dc:creator>
      <dc:date>2016-05-12T15:44:35Z</dc:date>
    </item>
  </channel>
</rss>

