AnsweredAssumed Answered

MPR121, all registers read zero

Question asked by tõnusamuel on Sep 12, 2013
Latest reply on Sep 13, 2013 by Tomas Vaverka

Hi! Spent long time and no result with seemingly simple issue. I am talking to MPR121 and trying to get at least something to work I2C communication works, chips acknowledges any requests to address 0x5A. But whatever registers I read, result is zero. All I2C stack I use is known to work for writing data. I include oscillogram, maybe someone can spot something just obviously wrong. I am trying to read register 0x5D because it must be non-zero by default. I tried also read all registers from 0 to 255 and nothing returns any bits.

 

    HalTouchSelect();

 

    while(1) { 

       uint8 pBuf2;

              bool r2= HalSensorReadReg(0x5D, &pBuf2,1);

       ST_HAL_DELAY(3000);

 

//      char buf[20];

//      sprintf(buf," %3d %d %3d ",pBuf2,r2,i++);

//      OLED_text(buf,0,0) ;

    }

20130912_522847.bmp

 

Same thing enlarged:

 

20130912_522924.bmp

20130912_522937.bmp

Chip is alive and sends acknowledges but never returns any data. Ideas?

 

EDIT: Have tried to insert delays, change communication speed, re-read everything. No help. Then I attached Arduino with some sample code to same bus and MPR121 register 0x5D instantly read 0000 0100. So hardware problems possibly ruled out.

Outcomes