<?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: MPR121 very slow startup</title>
    <link>https://community.nxp.com/t5/Sensors/MPR121-very-slow-startup/m-p/397525#M1547</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Reading this thread solved the problem :smileyhappy:&amp;nbsp; CL bits were 00 and now we made them 11.&lt;/P&gt;&lt;P&gt;The starting time now reduced to 1 Sec or so, insignificant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/thread/338050"&gt;MPR121 Touch detection start-up time&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The question remains: How does affect the performances?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;11 means - Baseline tracking enabled, initial baseline value is loaded with all 10 bits of the first electrode data value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 09 Jul 2015 14:32:34 GMT</pubDate>
    <dc:creator>yo3hcv</dc:creator>
    <dc:date>2015-07-09T14:32:34Z</dc:date>
    <item>
      <title>MPR121 very slow startup</title>
      <link>https://community.nxp.com/t5/Sensors/MPR121-very-slow-startup/m-p/397524#M1546</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;After initialization process, the MPR121 is operational only after 1 minute or so. Reading touch registers will output zero and no interrupts are generated.&lt;/P&gt;&lt;P&gt;Our initialization procedure is as follows (pseudo):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) set filters, from MHD Rising -&amp;gt; FDL Touched&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Btw, the NHD Amount Touched, NCL Touched and FDL Touched we send = 0 since are completely undoccumented in your pdfs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2) set thresholds as desired for all 12 elements&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3) optionally set the AUTO-CONFIG registers (no difference, slow startup in either case)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4) set CDC, CDT and ECR&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following questions appears:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- why is this happening?&lt;/P&gt;&lt;P&gt;- how can we detect initialization is complete, we have a keypad designed which is not operational in first minute&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards, &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Jul 2015 12:55:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MPR121-very-slow-startup/m-p/397524#M1546</guid>
      <dc:creator>yo3hcv</dc:creator>
      <dc:date>2015-07-09T12:55:39Z</dc:date>
    </item>
    <item>
      <title>Re: MPR121 very slow startup</title>
      <link>https://community.nxp.com/t5/Sensors/MPR121-very-slow-startup/m-p/397525#M1547</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Reading this thread solved the problem :smileyhappy:&amp;nbsp; CL bits were 00 and now we made them 11.&lt;/P&gt;&lt;P&gt;The starting time now reduced to 1 Sec or so, insignificant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/thread/338050"&gt;MPR121 Touch detection start-up time&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The question remains: How does affect the performances?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;11 means - Baseline tracking enabled, initial baseline value is loaded with all 10 bits of the first electrode data value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Jul 2015 14:32:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MPR121-very-slow-startup/m-p/397525#M1547</guid>
      <dc:creator>yo3hcv</dc:creator>
      <dc:date>2015-07-09T14:32:34Z</dc:date>
    </item>
    <item>
      <title>Re: MPR121 very slow startup</title>
      <link>https://community.nxp.com/t5/Sensors/MPR121-very-slow-startup/m-p/397526#M1548</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;A few points need to check in your init procedure:&lt;/P&gt;&lt;P&gt;1)the filters has setting for rising, falling, touch, you should set rising, falling, while touched is optional, refer to AN3891 and attached.&lt;/P&gt;&lt;P&gt;2)recommend to use auto configure, otherwise you need to do trial test to set every electrode CDC/CDT manually.&lt;/P&gt;&lt;P&gt;3)use b01 for CL bits.&lt;/P&gt;&lt;P&gt;Below is the sample code for your reference&lt;/P&gt;&lt;P&gt;MPR121 initialization and configuration.&lt;/P&gt;&lt;P&gt;#define TouchThre 10 // Touch threshold&lt;/P&gt;&lt;P&gt;#define ReleaThre 8 // Release threshold&lt;/P&gt;&lt;P&gt;#define Prox_TouchThre 6 // Proximity threshold&lt;/P&gt;&lt;P&gt;#define Prox_ReleaThre 4 // Proximity release threshold&lt;/P&gt;&lt;P&gt;void MPR121_init_to_run(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x80,0x63); // Soft reset MPR121 if not reset correctly&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x73,0xFF); // LED Configuration, if not used, this part can be omitted&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x74,0xFF);&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x76,0xFF);&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x77,0xFF);&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x75,0xFF);&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x81,0x00);&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x82,0x00);&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x83,0x00);&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x84,0x00);&lt;/P&gt;&lt;P&gt;//touch pad baseline filter&lt;/P&gt;&lt;P&gt;//rising: baseline quick rising&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x2B,0x01); // Max half delta Rising&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x2C,0x01); // Noise half delta Rising&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x2D,0x00); // Noise count limit Rising&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x2E,0x00); // Delay limit Rising&lt;/P&gt;&lt;P&gt;//falling:&lt;/P&gt;&lt;P&gt;baseline slow falling&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x2F,0x01); // Max half delta Falling&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x30,0x01); // Noise half delta Falling&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x31,0xFF); // Noise count limit Falling&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x32,0x0); // Delay limit Falling&lt;/P&gt;&lt;P&gt;//touched: baseline keep&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x33,0x00); // Noise half delta Touched&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x34,0x00); // Noise count Touched&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x35,0x00); // Delay limit Touched&lt;/P&gt;&lt;P&gt;//Proximity baseline filter&lt;/P&gt;&lt;P&gt;//rising: very quick rising&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x36,0x0f); // Max half delta Rising&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x37,0x0f); // Noise half delta Rising&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x38,0x00); // Noise count Rising&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x39,0x00); // Delay limit Rising&lt;/P&gt;&lt;P&gt;//falling: very slow rising&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x3A,0x01); // Max half delta Falling&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x3B,0x01); // Noise half delta Falling&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x3C,0xff); // Noise count Falling&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x3D,0xff); // Delay limit Falling&lt;/P&gt;&lt;P&gt;//touched&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x3E,0x00);&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x3F,0x00);&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x40,0x00);&lt;/P&gt;&lt;P&gt;//Touch pad threshold&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x41,TouchThre); // ELE0 TOUCH THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x42,ReleaThre); // ELE0 RELEASE THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x43,TouchThre); // ELE1 TOUCH THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x44,ReleaThre); // ELE1 RELEASE THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x45,TouchThre); // ELE2 TOUCH THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x46,ReleaThre); // ELE2 RELEASE THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x47,TouchThre); // ELE3 TOUCH THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x48,ReleaThre); // ELE3 RELEASE THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x49,TouchThre); // ELE4 TOUCH THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x4A,ReleaThre); // ELE4 RELEASE THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x4B,TouchThre); // ELE5 TOUCH THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x4C,ReleaThre); // ELE5 RELEASE THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x4D,TouchThre); // ELE6 TOUCH THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x4E,ReleaThre); // ELE6 RELEASE THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x4F,TouchThre); // ELE7 TOUCH THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x50,ReleaThre); // ELE7 RELEASE THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x51,TouchThre); // ELE8 TOUCH THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x52,ReleaThre); // ELE8 RELEASE THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x53,TouchThre); // ELE9 TOUCH THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x54,ReleaThre); // ELE9 RELEASE THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x55,TouchThre); // ELE10 TOUCH THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x56,ReleaThre); // ELE10 RELEASE THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x57,TouchThre); // ELE11 TOUCH THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x58,ReleaThre); // ELE11 RELEASE THRESHOLD&lt;/P&gt;&lt;P&gt;//Proximity threshold&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x59,Prox_TouchThre); // ELE12 TOUCH THRESHOLD&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x5A,Prox_ReleaThre); // ELE12 RELEASE THRESHOLD&lt;/P&gt;&lt;P&gt;//touch and release interrupt debounce&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x5B,0x00); // Not used for polling method, effective for INT mode.&lt;/P&gt;&lt;P&gt;//AFE and filter configuration&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x5C,0x10); // AFES=6 samples, same as AFES in 0x7B, Global CDC=16uA&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x5D,0x24); // CT=0.5us, TDS=4samples, TDI=16ms&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x5E,0x80); // Set baseline calibration enabled, baseline loading 5MSB&lt;/P&gt;&lt;P&gt;//Auto Configuration&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x7B,0x0B); // AFES=6 samples, same as AFES in 0x5C&lt;/P&gt;&lt;P&gt;// retry=2b00, no retry,&lt;/P&gt;&lt;P&gt;// BVA=2b10, load 5MSB after AC,&lt;/P&gt;&lt;P&gt;// ARE/ACE=2b11, auto configuration enabled&lt;/P&gt;&lt;P&gt;//IIC_ByteWrite(0x7C,0x80); // Skip charge time search, use setting in 0x5D,&lt;/P&gt;&lt;P&gt;// OOR, AR, AC IE disabled&lt;/P&gt;&lt;P&gt;// Not used. Possible Proximity CDC shall over 63uA&lt;/P&gt;&lt;P&gt;// if only use 0.5uS CDT, the TGL for proximity cannot meet&lt;/P&gt;&lt;P&gt;// Possible if manually set Register0x72=0x03&lt;/P&gt;&lt;P&gt;// (Auto configure result) alone.&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x7D,0xc8); // AC up limit /C8/BD/C0/9C&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x7E,0x82); // AC low limit /82/7A/7C/65&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x7F,0xb4); // AC target /B4/AA/AC/8C target for /3.0V/2.8V/1.8V&lt;/P&gt;&lt;P&gt;IIC_ByteWrite(0x5E,0xBC); // Run 12 touch + proximity, CL=2b10, load 5MSB to baseline&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;For the detailed explanation on each registers please refer to the datasheet and relevant&lt;/P&gt;&lt;P&gt;application note. All the registers can be read at anytime, but it’s suggested to use multiple&lt;/P&gt;&lt;P&gt;consecutive byte read to save the operation time and avoid data integrity issue. For example,&lt;/P&gt;&lt;P&gt;we can use one line code to read out registers from 0x00 to 0x2A to get all the sensing channels&lt;/P&gt;&lt;P&gt;output data and status information. All the registers except 0x5E and LED configuration registers&lt;/P&gt;&lt;P&gt;cannot be written in run mode but only when set into stop mode.&lt;/P&gt;&lt;P&gt;After initialization and set into run mode, the MPR121 will work automatically and&lt;/P&gt;&lt;P&gt;continuously until you set it into stop mode. MPR121 provides both touch status and touch&lt;/P&gt;&lt;P&gt;sensing data and provides interrupt output when touch/release status changed. The host&lt;/P&gt;&lt;P&gt;processor can read back output data and status upon interrupt, or poll the MPR121 periodically&lt;/P&gt;&lt;P&gt;on timer overflow.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Jul 2015 03:28:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MPR121-very-slow-startup/m-p/397526#M1548</guid>
      <dc:creator>johnsonsun</dc:creator>
      <dc:date>2015-07-14T03:28:19Z</dc:date>
    </item>
    <item>
      <title>Re: MPR121 very slow startup</title>
      <link>https://community.nxp.com/t5/Sensors/MPR121-very-slow-startup/m-p/397527#M1549</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sorry for typo, correct the CL bits, shall be b10. if the baseline is too close to actual data, touch may not be detected if actual data is over than the baseline setting.&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Jul 2015 04:19:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MPR121-very-slow-startup/m-p/397527#M1549</guid>
      <dc:creator>johnsonsun</dc:creator>
      <dc:date>2015-07-14T04:19:23Z</dc:date>
    </item>
  </channel>
</rss>

