AnsweredAssumed Answered

MPR121 seems like it freezes

Question asked by kinna on May 29, 2013
Latest reply on May 31, 2013 by Jose Alberto Reyes Morales

Hi

 

I have a problem with the MPR121 Capacitive Touch Sensor Controller. I configured it as recommended in the Quick Start Guide and most of the time it works very well. I have only three electrodes connected and it responds nicely when I touch one and then releases. But if I touch all of them at once or quickly move my finger from one to another, it seems like it freezes. If I re-initialize the MPR121 it works again, but freezes again if I touch all the electrodes or quickly move my finger. 

I have checked that it is not the microcontroller, everything else is still running.

 

Does anyone know what I might have done wrong?

 

The configuration settings are shown here:

 

// Enter stop mode (for re-initialization)

  touch_set(0x5E,0x00);

 

  // Recommended filter settings when electrode data > baseline value

  // (rising)

  touch_set(0x2B,0x01);

  touch_set(0x2C,0x01);

  touch_set(0x2D,0x00);

  touch_set(0x2E,0x00);

 

  // Recommended filter settings when electrode data < baseline value

  // (falling)

  touch_set(0x2F,0x01);

  touch_set(0x30,0x01);

  touch_set(0x31,0xFF);

  touch_set(0x32,0x02);

 

  // Setting touch- and release thresholds for electrode 0

  touch_set(0x41,0x0F);

  touch_set(0x42,0x0A);

  // Setting touch- and release thresholds for electrode 1

  touch_set(0x43,0x0F);

  touch_set(0x44,0x0A);

  // Setting touch- and release thresholds for electrode 2

  touch_set(0x45,0x0F);

  touch_set(0x46,0x0A);

 

  // Setting sample rate to 1ms

  touch_set(0x5D,0x04);

 

  // Enable auto config and auto reconfig

  touch_set(0x7B,0x0B);

  touch_set(0x7D,0x9C);

  touch_set(0x7E,0x65);

  touch_set(0x7F,0x8C);

 

  // Enable touch on electrode 0-2 - this also enables the controller and

  // must be set as the last

  touch_set(0x5E,0x3);

 

Outcomes