<?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: MMA8652FC &amp; Transients</title>
    <link>https://community.nxp.com/t5/Sensors/MMA8652FC-Transients/m-p/375061#M1250</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Harold,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;It looks like you have both transient and orientation interrupts enabled and routed to the same INT1 pin. Are you reading first the INT_SOURCE register to distinguish between the transient and orientation interrupt and then only an appropriate event source register (either PL_STATUS or TRANSIENT_SRC) as illustrated below?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;IntSource = I2C_ReadRegister(MMA845x_I2C_ADDRESS, INT_SOURCE_REG);&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; &lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #7f0055; font-size: 10.0pt; font-family: Consolas;"&gt;if&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt; (IntSource &amp;amp; 0x20)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: #3f7f5f;"&gt;// Transient interrupt?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-indent: .5in;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;TransientSource = I2C_ReadRegister(MMA865x_I2C_ADDRESS, TRANSIENT_SRC_REG);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: #3f7f5f;"&gt;// Service and clear the transient interrupt&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #7f0055; font-size: 10.0pt; font-family: Consolas;"&gt;if&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt; (IntSource &amp;amp; 0x10)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: #3f7f5f;"&gt;// Orientation interrupt?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-indent: .5in;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;PLStatus = I2C_ReadRegister(MMA865x_I2C_ADDRESS, PL_STATUS_SRC);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: #3f7f5f;"&gt;// Service and clear the orientation interrupt&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Tomas&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-size: 13.3333320617676px; font-family: Arial, sans-serif; color: #333333;"&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 11px; font-family: inherit; color: #3d3d3d;"&gt;&lt;EM style="font-weight: inherit; font-family: inherit;"&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;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 11 Mar 2015 13:06:41 GMT</pubDate>
    <dc:creator>TomasVaverka</dc:creator>
    <dc:date>2015-03-11T13:06:41Z</dc:date>
    <item>
      <title>MMA8652FC &amp; Transients</title>
      <link>https://community.nxp.com/t5/Sensors/MMA8652FC-Transients/m-p/375060#M1249</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This accelerometer on my prototype board detects transient interrupts OK. But when I read the transient source reg (0x1E) I often see 0x00; at other times I see the event flag and other axis/polarity bits set as expected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Why do I get a transient interrupt but the transient source reg = 0x00?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tried setting the ELE bit in the transient config reg (0x1D) but then, once I get a transient interrupt I cannot clear it and the accelerometer interrupts continually.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My initialization is as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Reset and pause at least 1 ms&lt;/P&gt;&lt;P&gt;SMB_Write(&amp;amp;accel_write_reset); // reg 0x2B &amp;lt;- 0x40&lt;/P&gt;&lt;P&gt;stop_time = (U8)ticks + 2;&lt;/P&gt;&lt;P&gt;while ((U8)ticks &amp;lt; stop_time) ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Transient configuration register&lt;/P&gt;&lt;P&gt;SMB_Write(&amp;amp;accel_write_trans_cfg_reg); // reg 0x1D &amp;lt;- 0x1E&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Transient threshold register&lt;/P&gt;&lt;P&gt;SMB_Write(&amp;amp;accel_write_trans_thresh_reg); // reg 0x1F &amp;lt;- 0x90&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Time threshold (width) of transient&lt;/P&gt;&lt;P&gt;SMB_Write(&amp;amp;accel_write_trans_count_reg); // reg 0x20 &amp;lt;- 0x01&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Use high-pass filter&lt;/P&gt;&lt;P&gt;SMB_Write(&amp;amp;accel_write_xyz_data_config); // reg 0x0E &amp;lt;- 0x10&lt;/P&gt;&lt;P&gt;SMB_Write(&amp;amp;accel_write_hpf);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Configure interrupt as open drain&lt;/P&gt;&lt;P&gt;SMB_Write(&amp;amp;accel_write_control_reg_3); // reg 0x2C &amp;lt;- 0x01&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Write portrait/landscape config&lt;/P&gt;&lt;P&gt;SMB_Write(&amp;amp;accel_write_pl_config); // reg 0x11 &amp;lt;- 0x40&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Write debounce count&lt;/P&gt;&lt;P&gt;SMB_Write(&amp;amp;accel_write_pl_count); // reg 0x12 &amp;lt;- 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Take defaults for PL_BF_ZCOMP and PL_THS_REG&lt;/P&gt;&lt;P&gt;// Route interrupts&lt;/P&gt;&lt;P&gt;SMB_Write(&amp;amp;accel_write_control_reg_5); // reg 0x2E &amp;lt;- 0x30&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Enable interrupts&lt;/P&gt;&lt;P&gt;SMB_Write(&amp;amp;accel_write_control_reg_4); // reg 0x2D &amp;lt;- 0x30&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Write to control register 1: active, ODR, fast read mode&lt;/P&gt;&lt;P&gt;SMB_Write(&amp;amp;accel_write_control_reg_1); // reg 0x2A &amp;lt;- 0x0B&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Feb 2026 21:09:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MMA8652FC-Transients/m-p/375060#M1249</guid>
      <dc:creator>haroldmccabe</dc:creator>
      <dc:date>2026-02-03T21:09:15Z</dc:date>
    </item>
    <item>
      <title>Re: MMA8652FC &amp; Transients</title>
      <link>https://community.nxp.com/t5/Sensors/MMA8652FC-Transients/m-p/375061#M1250</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Harold,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;It looks like you have both transient and orientation interrupts enabled and routed to the same INT1 pin. Are you reading first the INT_SOURCE register to distinguish between the transient and orientation interrupt and then only an appropriate event source register (either PL_STATUS or TRANSIENT_SRC) as illustrated below?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;IntSource = I2C_ReadRegister(MMA845x_I2C_ADDRESS, INT_SOURCE_REG);&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; &lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #7f0055; font-size: 10.0pt; font-family: Consolas;"&gt;if&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt; (IntSource &amp;amp; 0x20)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: #3f7f5f;"&gt;// Transient interrupt?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-indent: .5in;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;TransientSource = I2C_ReadRegister(MMA865x_I2C_ADDRESS, TRANSIENT_SRC_REG);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: #3f7f5f;"&gt;// Service and clear the transient interrupt&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #7f0055; font-size: 10.0pt; font-family: Consolas;"&gt;if&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt; (IntSource &amp;amp; 0x10)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: #3f7f5f;"&gt;// Orientation interrupt?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-indent: .5in;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;PLStatus = I2C_ReadRegister(MMA865x_I2C_ADDRESS, PL_STATUS_SRC);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: #3f7f5f;"&gt;// Service and clear the orientation interrupt&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Tomas&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-size: 13.3333320617676px; font-family: Arial, sans-serif; color: #333333;"&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 11px; font-family: inherit; color: #3d3d3d;"&gt;&lt;EM style="font-weight: inherit; font-family: inherit;"&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;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 11 Mar 2015 13:06:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MMA8652FC-Transients/m-p/375061#M1250</guid>
      <dc:creator>TomasVaverka</dc:creator>
      <dc:date>2015-03-11T13:06:41Z</dc:date>
    </item>
    <item>
      <title>Re: MMA8652FC &amp; Transients</title>
      <link>https://community.nxp.com/t5/Sensors/MMA8652FC-Transients/m-p/375062#M1251</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes, both transient and orientation interrupts were enabled and going to the same pin.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I found the ELE bit in the transient config reg must be set to latch the transient axis/polarity info into the transient source reg. Otherwise the axis/polarity info may change between when the transient interrupt is asserted and when the transient source reg is read.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Earlier, I was not actually getting continual interrupts with ELE set: I was mislead by my debug setup.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you, Tomas.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 11 Mar 2015 14:12:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MMA8652FC-Transients/m-p/375062#M1251</guid>
      <dc:creator>haroldmccabe</dc:creator>
      <dc:date>2015-03-11T14:12:31Z</dc:date>
    </item>
  </channel>
</rss>

