<?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のトピックMMA7660 Auto-Wake / Auto Sleep mode</title>
    <link>https://community.nxp.com/t5/Sensors/MMA7660-Auto-Wake-Auto-Sleep-mode/m-p/477325#M2765</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 try to set up mma7660, that it runs in Auto Sleep with high sample rate and in Auto-Wake in low sample rate.&lt;/P&gt;&lt;P&gt;During the transition from Auto-Wake to Auto-Sleep I would like to fire an interrupt.&lt;/P&gt;&lt;P&gt;The interrupt trigger should be the Delta G condition.&lt;/P&gt;&lt;P&gt;Unfortunately I can not make it work. The initialisation looks like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void setup(){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; write(MODE,0x00);//0x00 = Stan dby Mode -- allows config to be written&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; write(INTSU, INTSU_ASINT );// Interrupts for exiting Auto sleep&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; write(PDET,PDET_XDA|PDET_YDA|PDET_ZDA);//Tap detection is disabled, no threshold&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; write(PD,0x0);//No Tap Filtering&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; write(SR,SR_AMSR_AM16 |SR_AWSR_AW1); // Sampling Rate aktive 16 hz ; sleep 16 hz&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; write(SPCNT, 16);&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; counts for sleep counter register until sleep / wake occurs&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; write(MODE,MODE_MODE| MODE_AWE&amp;nbsp; /*|MODE_ASE /*|MODE_IAH*/ );// MODE_MODE = Active Mode ; MODE_AWE = Auto Wake ;&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; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To understand MMA7660 is in sleep or active mode I use following code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uint8_t GetwakeState(){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t&amp;nbsp;&amp;nbsp; s =&amp;nbsp; read(SRST);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( s &amp;amp; SRST_AMSRS )&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1 ;&amp;nbsp; // AUTO SLEEP == active&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( s &amp;amp; SRST_AWSRS )&amp;nbsp; return 0 ;&amp;nbsp; // AUTO WAKE&amp;nbsp; == sleeping&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;Unfortunately between the transistions (sleep to wake or vice versa) I do not get always an interrupt,&lt;/P&gt;&lt;P&gt;If an interrupt occurs there are plenty in a row and not necessarly linked to the state change.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Output of log file&lt;/P&gt;&lt;P&gt;Ws: 0 = sleep ; 1 = active&lt;/P&gt;&lt;P&gt;Int : number of recived interrups&lt;/P&gt;&lt;P&gt;x,y,z = accelarations in x,y,z direction&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ws 0 Int 92 x = 2 y = -3 z = -13&lt;/P&gt;&lt;P&gt;Ws 0 Int 92 x = 2 y = -3 z = -13&lt;/P&gt;&lt;P&gt;Ws 0 Int 92 x = 4 y = -3 z = -21&lt;/P&gt;&lt;P&gt;Ws 0 Int 109 x = 4 y = -3 z = -21&lt;/P&gt;&lt;P&gt;Ws 0 Int 112 x = 4 y = -6 z = -25&lt;/P&gt;&lt;P&gt;Ws 2 Int 112 x = 3 y = -3 z = -21&lt;/P&gt;&lt;P&gt;Ws 2 Int 112 x = 3 y = -3 z = -21&lt;/P&gt;&lt;P&gt;Ws 0 Int 112 x = 2 y = -3 z = -17&lt;/P&gt;&lt;P&gt;Ws 0 Int 118 x = 2 y = -3 z = -17&lt;/P&gt;&lt;P&gt;Ws 0 Int 121 x = 4 y = -4 z = -27&lt;/P&gt;&lt;P&gt;Ws 0 Int 121 x = 4 y = -4 z = -27&lt;/P&gt;&lt;P&gt;Ws 1 Int 121 x = -3 y = 1 z = -18&lt;/P&gt;&lt;P&gt;Ws 1 Int 121 x = 1 y = 5 z = -23&lt;/P&gt;&lt;P&gt;Ws 1 Int 121 x = 1 y = 5 z = -23&lt;/P&gt;&lt;P&gt;Ws 1 Int 121 x = 1 y = 2 z = -22&lt;/P&gt;&lt;P&gt;Ws 1 Int 121 x = 1 y = 2 z = -22&lt;/P&gt;&lt;P&gt;Ws 2 Int 121 x = 3 y = 0 z = -17&lt;/P&gt;&lt;P&gt;Ws 2 Int 121 x = 3 y = 0 z = -17&lt;/P&gt;&lt;P&gt;Ws 1 Int 121 x = 1 y = 3 z = -19&lt;/P&gt;&lt;P&gt;Ws 1 Int 121 x = 1 y = 3 z = -19&lt;/P&gt;&lt;P&gt;Ws 0 Int 121 x = -2 y = -2 z = -24&lt;/P&gt;&lt;P&gt;Ws 1 Int 135 x = -7 y = -2 z = -20&lt;/P&gt;&lt;P&gt;Ws 1 Int 135 x = -7 y = -2 z = -20&lt;/P&gt;&lt;P&gt;Ws 2 Int 135 x = -1 y = 1 z = -23&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you can provide any sample code making use of the sleep / wake functionlity would be helpfull&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot Andreas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 03 Feb 2026 21:05:27 GMT</pubDate>
    <dc:creator>akircher</dc:creator>
    <dc:date>2026-02-03T21:05:27Z</dc:date>
    <item>
      <title>MMA7660 Auto-Wake / Auto Sleep mode</title>
      <link>https://community.nxp.com/t5/Sensors/MMA7660-Auto-Wake-Auto-Sleep-mode/m-p/477325#M2765</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 try to set up mma7660, that it runs in Auto Sleep with high sample rate and in Auto-Wake in low sample rate.&lt;/P&gt;&lt;P&gt;During the transition from Auto-Wake to Auto-Sleep I would like to fire an interrupt.&lt;/P&gt;&lt;P&gt;The interrupt trigger should be the Delta G condition.&lt;/P&gt;&lt;P&gt;Unfortunately I can not make it work. The initialisation looks like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void setup(){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; write(MODE,0x00);//0x00 = Stan dby Mode -- allows config to be written&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; write(INTSU, INTSU_ASINT );// Interrupts for exiting Auto sleep&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; write(PDET,PDET_XDA|PDET_YDA|PDET_ZDA);//Tap detection is disabled, no threshold&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; write(PD,0x0);//No Tap Filtering&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; write(SR,SR_AMSR_AM16 |SR_AWSR_AW1); // Sampling Rate aktive 16 hz ; sleep 16 hz&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; write(SPCNT, 16);&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; counts for sleep counter register until sleep / wake occurs&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; write(MODE,MODE_MODE| MODE_AWE&amp;nbsp; /*|MODE_ASE /*|MODE_IAH*/ );// MODE_MODE = Active Mode ; MODE_AWE = Auto Wake ;&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; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To understand MMA7660 is in sleep or active mode I use following code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uint8_t GetwakeState(){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t&amp;nbsp;&amp;nbsp; s =&amp;nbsp; read(SRST);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( s &amp;amp; SRST_AMSRS )&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1 ;&amp;nbsp; // AUTO SLEEP == active&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( s &amp;amp; SRST_AWSRS )&amp;nbsp; return 0 ;&amp;nbsp; // AUTO WAKE&amp;nbsp; == sleeping&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;Unfortunately between the transistions (sleep to wake or vice versa) I do not get always an interrupt,&lt;/P&gt;&lt;P&gt;If an interrupt occurs there are plenty in a row and not necessarly linked to the state change.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Output of log file&lt;/P&gt;&lt;P&gt;Ws: 0 = sleep ; 1 = active&lt;/P&gt;&lt;P&gt;Int : number of recived interrups&lt;/P&gt;&lt;P&gt;x,y,z = accelarations in x,y,z direction&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ws 0 Int 92 x = 2 y = -3 z = -13&lt;/P&gt;&lt;P&gt;Ws 0 Int 92 x = 2 y = -3 z = -13&lt;/P&gt;&lt;P&gt;Ws 0 Int 92 x = 4 y = -3 z = -21&lt;/P&gt;&lt;P&gt;Ws 0 Int 109 x = 4 y = -3 z = -21&lt;/P&gt;&lt;P&gt;Ws 0 Int 112 x = 4 y = -6 z = -25&lt;/P&gt;&lt;P&gt;Ws 2 Int 112 x = 3 y = -3 z = -21&lt;/P&gt;&lt;P&gt;Ws 2 Int 112 x = 3 y = -3 z = -21&lt;/P&gt;&lt;P&gt;Ws 0 Int 112 x = 2 y = -3 z = -17&lt;/P&gt;&lt;P&gt;Ws 0 Int 118 x = 2 y = -3 z = -17&lt;/P&gt;&lt;P&gt;Ws 0 Int 121 x = 4 y = -4 z = -27&lt;/P&gt;&lt;P&gt;Ws 0 Int 121 x = 4 y = -4 z = -27&lt;/P&gt;&lt;P&gt;Ws 1 Int 121 x = -3 y = 1 z = -18&lt;/P&gt;&lt;P&gt;Ws 1 Int 121 x = 1 y = 5 z = -23&lt;/P&gt;&lt;P&gt;Ws 1 Int 121 x = 1 y = 5 z = -23&lt;/P&gt;&lt;P&gt;Ws 1 Int 121 x = 1 y = 2 z = -22&lt;/P&gt;&lt;P&gt;Ws 1 Int 121 x = 1 y = 2 z = -22&lt;/P&gt;&lt;P&gt;Ws 2 Int 121 x = 3 y = 0 z = -17&lt;/P&gt;&lt;P&gt;Ws 2 Int 121 x = 3 y = 0 z = -17&lt;/P&gt;&lt;P&gt;Ws 1 Int 121 x = 1 y = 3 z = -19&lt;/P&gt;&lt;P&gt;Ws 1 Int 121 x = 1 y = 3 z = -19&lt;/P&gt;&lt;P&gt;Ws 0 Int 121 x = -2 y = -2 z = -24&lt;/P&gt;&lt;P&gt;Ws 1 Int 135 x = -7 y = -2 z = -20&lt;/P&gt;&lt;P&gt;Ws 1 Int 135 x = -7 y = -2 z = -20&lt;/P&gt;&lt;P&gt;Ws 2 Int 135 x = -1 y = 1 z = -23&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you can provide any sample code making use of the sleep / wake functionlity would be helpfull&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot Andreas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Feb 2026 21:05:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MMA7660-Auto-Wake-Auto-Sleep-mode/m-p/477325#M2765</guid>
      <dc:creator>akircher</dc:creator>
      <dc:date>2026-02-03T21:05:27Z</dc:date>
    </item>
    <item>
      <title>Re: MMA7660 Auto-Wake / Auto Sleep mode</title>
      <link>https://community.nxp.com/t5/Sensors/MMA7660-Auto-Wake-Auto-Sleep-mode/m-p/477326#M2766</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Andreas,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just a quick note, the &lt;A href="http://www.nxp.com/products/sensors/accelerometers/3-axis-accelerometers/1.5g-low-g-digital-accelerometer:MMA7660FC"&gt;MMA7660FC&lt;/A&gt; is a pretty old device, not recommended for new designs. I strongly suggest using newer accelerometers such as the &lt;A href="http://www.nxp.com/products/sensors/accelerometers/3-axis-accelerometers/2g-4g-8g-low-g-14-bit-digital-accelerometer:MMA8451Q"&gt;MMA845xQ&lt;/A&gt;, &lt;A href="http://www.nxp.com/products/sensors/accelerometers/3-axis-accelerometers/2g-4g-8g-low-g-12-bit-digital-accelerometer:MMA8652FC"&gt;MMA865xFC&lt;/A&gt; or &lt;A href="http://www.nxp.com/products/sensors/accelerometers/3-axis-accelerometers/2g-4g-8g-low-g-14-bit-digital-accelerometer:FXLS8471Q"&gt;FXLS8471Q&lt;/A&gt;. There is also an app note &lt;A href="http://cache.nxp.com/files/sensors/doc/app_note/AN4074.pdf"&gt;AN4074&lt;/A&gt; illustrating the use of the auto wake/sleep function on these devices.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Tomas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Dec 2015 10:02:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MMA7660-Auto-Wake-Auto-Sleep-mode/m-p/477326#M2766</guid>
      <dc:creator>TomasVaverka</dc:creator>
      <dc:date>2015-12-14T10:02:18Z</dc:date>
    </item>
    <item>
      <title>Re: MMA7660 Auto-Wake / Auto Sleep mode</title>
      <link>https://community.nxp.com/t5/Sensors/MMA7660-Auto-Wake-Auto-Sleep-mode/m-p/477327#M2767</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for this tip!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Dec 2015 19:46:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MMA7660-Auto-Wake-Auto-Sleep-mode/m-p/477327#M2767</guid>
      <dc:creator>akircher</dc:creator>
      <dc:date>2015-12-14T19:46:25Z</dc:date>
    </item>
  </channel>
</rss>

