- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
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
- Labels:
-
BLE
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I guess you added pull up resistors? Please post your code as we need to check it to determine the cause of the issue.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Found part of the problem. I was calling SCB_WakeUp() to start the I2C. Changing that to SCB_Start() seems to fix the problem.