<?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: Interfacing MMA8653FCR1 in Sensors</title>
    <link>https://community.nxp.com/t5/Sensors/Interfacing-MMA8653FCR1/m-p/430624#M2052</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;Shalin,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You have to make sure the I²C communication is working well. I suggest you to read the WHO_AM_I register (0x0D) which contains the Device ID (0x5A). If you don't read 0x5A, maybe you have a problem with I²C com (can be missed pull-up resistor, invalid frequency) or with the MMA . If you read the right value, it could be a configuration problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let-me know if you're able to communicate with the MMA reading the Device ID. After ensuring that, next step is to check your motion detection configuration.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Anthony&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 27 Oct 2015 15:31:01 GMT</pubDate>
    <dc:creator>anthonyduhamel</dc:creator>
    <dc:date>2015-10-27T15:31:01Z</dc:date>
    <item>
      <title>Interfacing MMA8653FCR1</title>
      <link>https://community.nxp.com/t5/Sensors/Interfacing-MMA8653FCR1/m-p/430623#M2051</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I am trying to interface the MMA8653FCR1 via I2C. I have to configure the MMA to detect motion interrupts and give out a pulse on INT1. The pseudo code for the same is as follows&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) CTRL_REG1 = 0x00&amp;nbsp;&amp;nbsp;&amp;nbsp; // Put MMA in standby mode&lt;/P&gt;&lt;P&gt;2) INT_SOURCE = 0x04&amp;nbsp; // Activate Motion Interrupt&lt;/P&gt;&lt;P&gt;3) XYZ_DATA_CFG = 0x00 // 2g Mode&lt;/P&gt;&lt;P&gt;4) FF_MT_CFG = 0xf8&amp;nbsp;&amp;nbsp;&amp;nbsp; // Motion on all three axis&lt;/P&gt;&lt;P&gt;5) FF_MT_THS = 0x1f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Motion Threshold&lt;/P&gt;&lt;P&gt;6) CTRL_REG3 = 0x0a&amp;nbsp;&amp;nbsp; // Active High and Motion can Wake-up Controller&lt;/P&gt;&lt;P&gt;7) CTRL_REG4 = 0x04&amp;nbsp;&amp;nbsp; //Enable Motion Interrupts&lt;/P&gt;&lt;P&gt;&lt;LI-EMOJI id="lia_smiling-face-with-sunglasses" title=":smiling_face_with_sunglasses:"&gt;&lt;/LI-EMOJI&gt; CTRL_REG5 = 0x02&amp;nbsp; // Interrupts on INT1&lt;/P&gt;&lt;P&gt;9) CTRL_REG1 = 0x01&amp;nbsp; // MMA Active.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have tried the above code, the I2C library for my controller is working perfectly fine. The MMA however is unresponsive.&lt;/P&gt;&lt;P&gt;Could someone provide me with a link or sample code which can help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Shalin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Feb 2026 21:55:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/Interfacing-MMA8653FCR1/m-p/430623#M2051</guid>
      <dc:creator>shalinchikhalka</dc:creator>
      <dc:date>2026-02-03T21:55:40Z</dc:date>
    </item>
    <item>
      <title>Re: Interfacing MMA8653FCR1</title>
      <link>https://community.nxp.com/t5/Sensors/Interfacing-MMA8653FCR1/m-p/430624#M2052</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;Shalin,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You have to make sure the I²C communication is working well. I suggest you to read the WHO_AM_I register (0x0D) which contains the Device ID (0x5A). If you don't read 0x5A, maybe you have a problem with I²C com (can be missed pull-up resistor, invalid frequency) or with the MMA . If you read the right value, it could be a configuration problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let-me know if you're able to communicate with the MMA reading the Device ID. After ensuring that, next step is to check your motion detection configuration.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Anthony&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Oct 2015 15:31:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/Interfacing-MMA8653FCR1/m-p/430624#M2052</guid>
      <dc:creator>anthonyduhamel</dc:creator>
      <dc:date>2015-10-27T15:31:01Z</dc:date>
    </item>
    <item>
      <title>Re: Interfacing MMA8653FCR1</title>
      <link>https://community.nxp.com/t5/Sensors/Interfacing-MMA8653FCR1/m-p/430625#M2053</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Anthony,&lt;/P&gt;&lt;P&gt;Thanks for the prompt reply.&lt;/P&gt;&lt;P&gt;I had the wiring wrong, I am able to communicate with the MMA8653 now.&lt;/P&gt;&lt;P&gt;Could you please guide me as to how can I set up motion interrupts for the same. I read the datasheet and understood the working of the registers, is there a specific order with which I should address the MMA(Standby mode--&amp;gt;Set Threshold --&amp;gt; Set Interrupt source...etc).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Shalin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Oct 2015 21:05:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/Interfacing-MMA8653FCR1/m-p/430625#M2053</guid>
      <dc:creator>shalinchikhalka</dc:creator>
      <dc:date>2015-10-28T21:05:23Z</dc:date>
    </item>
    <item>
      <title>Re: Interfacing MMA8653FCR1</title>
      <link>https://community.nxp.com/t5/Sensors/Interfacing-MMA8653FCR1/m-p/430626#M2054</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Shalin,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is no specific order to configure the device. You have just to begin by putting the MMA in Standymode first, then configure all your registers and finish by switching it in Active Mode. In fact, register changes are saved and effective when the MMA moves from Standby mode to Active mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Capture.PNG"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/26070iA8C029D4CF22A13C/image-size/large?v=v2&amp;amp;px=999" role="button" title="Capture.PNG" alt="Capture.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" style="border: 1px solid #c6c6c6; width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;&lt;STRONG&gt;Step&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;&lt;STRONG&gt;Note&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;&lt;STRONG&gt;Reg&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;&lt;STRONG&gt;Value to write&lt;/STRONG&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 6px;"&gt;1&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;MMA8653FCR1 in standby mode&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;CTRL_REG1 (0x2A) &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;0bXXXXXXX0&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 6px;"&gt;2&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;Configure the device &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;..&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;..&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 6px;"&gt;3&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;MMA8653FCR1 in active mode&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;CTRL_REG1 (0x2A)&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;0bXXXXXXX1&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For motion interrupts on MMA8653, I have to check. I'm used to work with the &lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;MMA8652: motion detection can be easly enabled by using Transient Detection with High-Pass filter feature. Unfortunalty, MMA8653 doesn't get this fonction, so I will see if it's possible.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="differences.PNG"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/26118iFC23F345360A60A0/image-size/large?v=v2&amp;amp;px=999" role="button" title="differences.PNG" alt="differences.PNG" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;I will take a look at Motion Interrupt &lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;MMA8653 &lt;/SPAN&gt;feature. If you progress on your side, keep me informed.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;Thanks,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;Anthony&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2015 08:14:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/Interfacing-MMA8653FCR1/m-p/430626#M2054</guid>
      <dc:creator>anthonyduhamel</dc:creator>
      <dc:date>2015-10-29T08:14:42Z</dc:date>
    </item>
    <item>
      <title>Re: Interfacing MMA8653FCR1</title>
      <link>https://community.nxp.com/t5/Sensors/Interfacing-MMA8653FCR1/m-p/430627#M2055</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Shalin,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have prepared for you some code samples for MMA565x motion detection configuration.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="_jivemacro_uid_14461270607534358 jive_macro_code jive_text_macro" data-renderedposition="101_8_1232_880" jivemacro_uid="_14461270607534358" modifiedtitle="true"&gt;&lt;P&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; Define&lt;/P&gt;&lt;P&gt;////////////////////////////////////////////////////////////////////////////////&lt;/P&gt;&lt;P&gt;#define MMA8653FC_CTRL_REG1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2A&lt;/P&gt;&lt;P&gt;#define MMA8653FC_CTRL_REG2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2B&lt;/P&gt;&lt;P&gt;#define MMA8653FC_CTRL_REG3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2C&lt;/P&gt;&lt;P&gt;#define MMA8653FC_CTRL_REG4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2D&lt;/P&gt;&lt;P&gt;#define MMA8653FC_CTRL_REG5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2E&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define MMA8653FC_FF_MT_CFG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x15&lt;/P&gt;&lt;P&gt;#define MMA8653FC_FF_MT_SRC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x16&lt;/P&gt;&lt;P&gt;#define MMA8653FC_FF_MT_THS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x17&lt;/P&gt;&lt;P&gt;#define MMA8653FC_FF_MT_COUNT&amp;nbsp;&amp;nbsp; 0x18&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define MMA8653FC_WHO_AM_I&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0D&lt;/P&gt;&lt;P&gt;#define MMA8653FC_WHO_AM_I_VAL&amp;nbsp;&amp;nbsp; 0x5A&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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; Public methods&lt;/P&gt;&lt;P&gt;////////////////////////////////////////////////////////////////////////////////&lt;/P&gt;&lt;P&gt;bool MMA8653FC::init()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; bool __b_result = false;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint8_t __u8_temp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(bRead(MMA8653FC_WHO_AM_I,&amp;amp;__u8_temp,1))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Check presence of the sensor&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(__u8_temp == MMA8653FC_WHO_AM_I_VAL)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Check Sensor ID answer&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(bWrite(MMA8653FC_CTRL_REG1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x00&amp;nbsp;&amp;nbsp; )) //Standby Mode&lt;/SPAN&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(bWrite(MMA8653FC_CTRL_REG2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x07&amp;nbsp;&amp;nbsp; )) //Autosleep enabled / Low Power&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(bWrite(MMA8653FC_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;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(bWrite(MMA8653FC_CTRL_REG4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x04&amp;nbsp;&amp;nbsp; )) //Enable Motion interrupt&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(bWrite(MMA8653FC_CTRL_REG5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x04&amp;nbsp;&amp;nbsp; )) //Interrupt on INT1 &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(bWrite(MMA8653FC_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;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(bWrite(MMA8653FC_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;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(bWrite(MMA8653FC_FF_MT_COUNT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,0x00&amp;nbsp;&amp;nbsp; )) //Set number of debounce&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(bWrite(MMA8653FC_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;/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; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __b_result= true;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return &lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;__b_result ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;bool MMA8653FC::clearINTflag()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint8_t &lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;__u8_result;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; return bRead(MMA8652FC_FF_MT_SRC,&amp;amp;__u8_result,1);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here the motion threshold is 1.134g on 3axis. You can change this value, but be carefull: gravity of earth is 1g! If you want more sensitivity, you probably need to disable an axis (MR_CFG register) or use the MMA8652 with Transient&amp;amp;HighPassFilter features.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When you catch a motion with your interrupt function, be sure to call "clearINTflag()" function to clear the INT flag.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14461277470627005" data-renderedposition="1170_8_1232_608" jivemacro_uid="_14461277470627005"&gt;&lt;P&gt;void OnMotionDetected()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; _t_led2 = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("Motion detected!\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; wait(0.1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _t_accelerometer.clearINTflag();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _t_led2 = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int main()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _t_pc.baud(115200);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _t_it.fall(&amp;amp;OnMotionDetected);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _t_pc.printf("Hello ");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _t_it.enable_irq();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(_t_accelerometer.init())&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(true)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sleep();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(true)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&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; wait(0.05);&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; _t_led = !_t_led;&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; wait(0.05);&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; _t_led = !_t_led;&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; wait(0.05);&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; _t_led = !_t_led;&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; wait(1);&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; _t_led = !_t_led;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope it will help you!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Anthony&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2015 14:10:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/Interfacing-MMA8653FCR1/m-p/430627#M2055</guid>
      <dc:creator>anthonyduhamel</dc:creator>
      <dc:date>2015-10-29T14:10:51Z</dc:date>
    </item>
    <item>
      <title>Re: Interfacing MMA8653FCR1</title>
      <link>https://community.nxp.com/t5/Sensors/Interfacing-MMA8653FCR1/m-p/430628#M2056</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Anthony,&lt;/P&gt;&lt;P&gt;Thanks a lot for the above help.&lt;/P&gt;&lt;P&gt;I am facing some issues though.&lt;/P&gt;&lt;P&gt;I am unable to read the WHO_AM_I register, it gives a value of 0x00.&lt;/P&gt;&lt;P&gt;When initially configured, the MMA8653 gives an interrupt by default(without motion). Below is the code for the same.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void MMA8653_init(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;uint8 buffer_i2c2[2] = {0};&lt;/P&gt;&lt;P&gt;uint8 value = 0;&lt;/P&gt;&lt;P&gt;CyDelay(3);&lt;/P&gt;&lt;P&gt;int i , j;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer_i2c2[0]= M_WHO_AM_I;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_I2CMasterWriteBuf(MMA_ADDR, buffer_i2c2, 1, I2C_I2C_MODE_COMPLETE_XFER ); &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (0u == (I2C_I2CMasterStatus() &amp;amp; I2C_I2C_MSTAT_WR_CMPLT))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (void) I2C_I2CMasterReadBuf(MMA_ADDR,&amp;amp;value, 1, \&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; I2C_I2C_MODE_COMPLETE_XFER);&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; while (0u == (I2C_I2CMasterStatus() &amp;amp; I2C_I2C_MSTAT_RD_CMPLT));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; value = value;&amp;nbsp; //&lt;STRONG&gt;Value shown here displays 0x00&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer_i2c2[0]=M_CTRL_REG1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer_i2c2[1] = 0x00;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_I2CMasterWriteBuf(MMA_ADDR, buffer_i2c2, 2, I2C_I2C_MODE_COMPLETE_XFER ); &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (0u == (I2C_I2CMasterStatus() &amp;amp; I2C_I2C_MSTAT_WR_CMPLT))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer_i2c2[0]=M_CTRL_REG2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer_i2c2[1] = 0x07;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_I2CMasterWriteBuf(MMA_ADDR, buffer_i2c2, 2, I2C_I2C_MODE_REPEAT_START );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (0u == (I2C_I2CMasterStatus() &amp;amp; I2C_I2C_MSTAT_WR_CMPLT))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer_i2c2[0]=M_CTRL_REG3;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer_i2c2[1] = 0x08;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_I2CMasterWriteBuf(MMA_ADDR, buffer_i2c2, 2, I2C_I2C_MODE_REPEAT_START );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (0u == (I2C_I2CMasterStatus() &amp;amp; I2C_I2C_MSTAT_WR_CMPLT))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer_i2c2[0]=M_CTRL_REG4;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer_i2c2[1] = 0x04;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_I2CMasterWriteBuf(MMA_ADDR, buffer_i2c2, 2, I2C_I2C_MODE_REPEAT_START );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (0u == (I2C_I2CMasterStatus() &amp;amp; I2C_I2C_MSTAT_WR_CMPLT))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer_i2c2[0]=M_CTRL_REG5;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer_i2c2[1] = 0x04;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_I2CMasterWriteBuf(MMA_ADDR, buffer_i2c2, 2, I2C_I2C_MODE_REPEAT_START );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (0u == (I2C_I2CMasterStatus() &amp;amp; I2C_I2C_MSTAT_WR_CMPLT))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer_i2c2[0]=M_FF_MT_CFG; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer_i2c2[1] = 0x71;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_I2CMasterWriteBuf(MMA_ADDR, buffer_i2c2, 2, I2C_I2C_MODE_REPEAT_START );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (0u == (I2C_I2CMasterStatus() &amp;amp; I2C_I2C_MSTAT_WR_CMPLT))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer_i2c2[0]=M_FF_MT_THS;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer_i2c2[1] = 0x12;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_I2CMasterWriteBuf(MMA_ADDR, buffer_i2c2, 2, I2C_I2C_MODE_REPEAT_START );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (0u == (I2C_I2CMasterStatus() &amp;amp; I2C_I2C_MSTAT_WR_CMPLT))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer_i2c2[0]=M_FF_MT_COUNT; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer_i2c2[1] = 0x00;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_I2CMasterWriteBuf(MMA_ADDR, buffer_i2c2, 2, I2C_I2C_MODE_REPEAT_START );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (0u == (I2C_I2CMasterStatus() &amp;amp; I2C_I2C_MSTAT_WR_CMPLT))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {}&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer_i2c2[0] = M_FF_MT_SRC;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_I2CMasterWriteBuf(MMA_ADDR, buffer_data, 1, I2C_I2C_MODE_REPEAT_START );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (0u == (I2C_I2CMasterStatus() &amp;amp; I2C_I2C_MSTAT_WR_CMPLT));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (void) I2C_I2CMasterReadBuf(MMA_ADDR, buffer_data, 1, \&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; I2C_I2C_MODE_COMPLETE_XFER);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (0u == (I2C_I2CMasterStatus() &amp;amp; I2C_I2C_MSTAT_RD_CMPLT));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer_i2c2[0]=M_CTRL_REG1;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer_i2c2[1] = 0x21;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_I2CMasterWriteBuf(MMA_ADDR, buffer_i2c2, 2, I2C_I2C_MODE_REPEAT_START );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (0u == (I2C_I2CMasterStatus() &amp;amp; I2C_I2C_MSTAT_WR_CMPLT))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {}&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am also clearing the interrupt in main,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; if(MMA_intr == 1)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&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; buffer_data[0] = M_FF_MT_SRC;&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; I2C_I2CMasterWriteBuf(MMA_ADDR, buffer_data, 1, I2C_I2C_MODE_COMPLETE_XFER);&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; while (0u == (I2C_I2CMasterStatus() &amp;amp; I2C_I2C_MSTAT_WR_CMPLT));&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; (void) I2C_I2CMasterReadBuf(MMA_ADDR, buffer_data, 1, \&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; I2C_I2C_MODE_COMPLETE_XFER);&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; while (0u == (I2C_I2CMasterStatus() &amp;amp; I2C_I2C_MSTAT_RD_CMPLT));&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; adxl_intr = 0;&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; LED_YELLOW_Write(0u);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Shalin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2015 17:27:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/Interfacing-MMA8653FCR1/m-p/430628#M2056</guid>
      <dc:creator>shalinchikhalka</dc:creator>
      <dc:date>2015-10-29T17:27:56Z</dc:date>
    </item>
    <item>
      <title>Re: Interfacing MMA8653FCR1</title>
      <link>https://community.nxp.com/t5/Sensors/Interfacing-MMA8653FCR1/m-p/430629#M2057</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;Shalin,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;If you can't read WHO_AM_I value stop trying to configure the sensor. You have to read this value to be sure the MMA works well. Maybe you have hardware issues.... And perhaps your I²C communication does not work...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;Can you share with us your schematic &amp;amp; check if I²C is working well?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;By the way, I suggest you to write an I2C_Read and an I2C_Write function, your code will be more legible ans easier to debug...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="_jivemacro_uid_14461939666697367 jive_macro_code jive_text_macro" data-renderedposition="197_8_1232_400" jivemacro_uid="_14461939666697367" modifiedtitle="true"&gt;&lt;P&gt;void MMA8653_SingleWrite(uint8_t register,uint8_t value )&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint8 buffer_i2c2[] = {register,value};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; I2C_I2CMasterWriteBuf(MMA_ADDR, buffer_i2c2, 2, I2C_I2C_MODE_COMPLETE_XFER );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (0u == (I2C_I2CMasterStatus() &amp;amp; I2C_I2C_MSTAT_WR_CMPLT));&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uint8_t MMA8653_SingleRead(uint8_t register)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint8_t value;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Write register address&lt;/P&gt;&lt;P&gt;&amp;nbsp; I2C_I2CMasterWriteBuf(MMA_ADDR, &amp;amp;register, 1, I2C_I2C_MODE_COMPLETE_XFER );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (0u == (I2C_I2CMasterStatus() &amp;amp; I2C_I2C_MSTAT_WR_CMPLT));&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Read returned value&lt;/P&gt;&lt;P&gt;&amp;nbsp; I2C_I2CMasterReadBuf(MMA_ADDR, &amp;amp;value, 1,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_I2C_MODE_COMPLETE_XFER);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (0u == (I2C_I2CMasterStatus() &amp;amp; I2C_I2C_MSTAT_RD_CMPLT));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; return value;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;Thanks,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;Anthony&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2015 17:36:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/Interfacing-MMA8653FCR1/m-p/430629#M2057</guid>
      <dc:creator>anthonyduhamel</dc:creator>
      <dc:date>2015-10-29T17:36:03Z</dc:date>
    </item>
    <item>
      <title>Re: Interfacing MMA8653FCR1</title>
      <link>https://community.nxp.com/t5/Sensors/Interfacing-MMA8653FCR1/m-p/430630#M2058</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;Shalin,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;Your problem should be your read function.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt; As written in the FXOS8700 datasheet I²C communication has to follow these rules:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="i2c2.PNG"&gt;&lt;IMG alt="i2c2.PNG" src="https://community.nxp.com/t5/image/serverpage/image-id/52530iA5A8527A3E39445A/image-size/large?v=v2&amp;amp;px=999" title="i2c2.PNG" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;Unfortunalty,you're using the I2C_MODE_COMPLETE_XFER which adds a stop condition at the end of the write operation...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="i2c.PNG"&gt;&lt;IMG alt="i2c.PNG" src="https://community.nxp.com/t5/image/serverpage/image-id/52497iCC99E0F0782F15DD/image-size/large?v=v2&amp;amp;px=999" title="i2c.PNG" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;You probably need to use I2C_MODE_NO_STOP for the first transfert (read operation). Should be a thing like that:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="_jivemacro_uid_14465603816702234 jive_macro_code jive_text_macro" data-renderedposition="572_8_1232_240" jivemacro_uid="_14465603816702234"&gt;&lt;P&gt;uint8_t MMA8653_SingleRead(uint8_t register)&amp;nbsp; &lt;/P&gt;&lt;P&gt;{&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; uint8_t value;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; // Write register address&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; I2C_I2CMasterWriteBuf(MMA_ADDR, &amp;amp;register, 1, I2C_MODE_NO_STOP);&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (0u == (I2C_I2CMasterStatus() &amp;amp; I2C_I2C_MSTAT_WR_CMPLT));&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; // Read returned value&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; I2C_I2CMasterReadBuf(MMA_ADDR, &amp;amp;value, 1,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_I2C_MODE_COMPLETE_XFER);&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (0u == (I2C_I2CMasterStatus() &amp;amp; I2C_I2C_MSTAT_RD_CMPLT));&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; return value;&amp;nbsp; &lt;/P&gt;&lt;P&gt;}&amp;nbsp; &lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;But, it's your job, MCU side I think.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;Make the Read function working correctly and come back to me if you still have problems with motion detection/configuration.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Anthony&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Nov 2020 13:20:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/Interfacing-MMA8653FCR1/m-p/430630#M2058</guid>
      <dc:creator>anthonyduhamel</dc:creator>
      <dc:date>2020-11-02T13:20:17Z</dc:date>
    </item>
  </channel>
</rss>

