2 Replies Latest reply on Aug 2, 2016 11:26 AM by jim.schimpf_1583906

    I2C not doing I/O




      I have a BLE low power application running on a PSoC 4. When you connect you can change various attributes and these values are stored in an I2C EEPROM.  The initial handling of this is done in the BLE Callback.  Then the applicationPower control is set to WAKEUP_DEEPSLEEP.  And another global is set for the particular attribute.  On return from the Callback the ManageApplicationPower() routine is called and if WAKEUP_DEEPSLEEP is set the I/O devices are awakened from sleep. And applicationPower is set to ACTIVE.


      At this point a switch statement is entered looking the global for the particular attribute. Then the EEPROM write is set up.  The I/O lines should be active and applicationPower is now ACTIVE. The EEPROM write is called and it uses SCB_I2CMasterWriteBuf() to ouput the value to EEPROM.  The status from this is checked and should be SCB_I2C_MSTR_NO_ERROR and it is.  But I have a scope on the I2C lines and most of the time there is NO I2C activity. But the status is always  SCB_I2C_MSTR_NO_ERROR.  Also I have placed a delay after the write of 1 second so the I2C is done before the applicationPower control is set back to DEEPSLEEP.


      It is like the I2C is still turned off but stepping through SCB_I2CMasterWriteBuf() there are no errors.


      Can you suggest any thing else to find out why there is no I2C activity.


      Thank you


      --jim schimpf