SDA pulled low when CY8C4014FNI-421 is not supplied?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
StPr_4549631
Level 1
Level 1
5 replies posted 5 sign-ins First reply posted

Hello, we are using the CY8C4014FNI-421 in a project and are seeing a problem with the I2C communication when the CY8C4014FNI-421 is not supplied. We are using P1.2 (B1) for SCL and P1.3 (A1) for SDA.  VDD and VDDIO are connected to 1.8V. As soon as the 1.8V supply is disconnected from the CY8C4014FNI-421 the SDA line is pulled to ~1V by the CY8C4014FNI-421 and this does prevent any further I2C communication on the bus. Is this a known issue and is there a way to fix it?

Thanks,

Stephan

0 Likes
1 Solution
lock attach
Attachments are accessible only for community members.

Hi Stephan,

Sorry for not being clear. The SCB block present in the PSoC 4000 device is capable of waking the device from deep sleep on the I2C address match. To enable this feature you have to check one box in the I2C component GUI. Please see the attached image.

Thanks

Ganesh

View solution in original post

9 Replies
lock attach
Attachments are accessible only for community members.
VenkataD_41
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

Hi,

Kindly give more information on why you are removing the power supply to the IC. Please note that you should not remove the power supply once the I2C bus is powered and transfering data.

What are the devices that are acting as Master and Slave in your application? Can you please attach the schematic?

Ensure that you are using 330 ohms series resistances and 4.7k pull-up resistances (recommended) on the I2C communication lines.

Refer one of the PSoC 4 development kit schematic where the PSoC 4 is connected to PSoC 5LP device (kitprog) through I2C. I have atached the link and image here.

https://www.cypress.com/file/416971/download

Thanks

Ganesh

0 Likes

Hi Ganesh,

thanks for your fast reply!

We would like to be able to switch on and off the 1.8V supply (which supplies also the PSoC 4) in our system to be able to save power. As soon as we turn off the 1.8V supply the PSoC 4 pulls the SDA to ~1V and continues to do so. A hard reset of the system is needed to fix this issue.

 

In your reply you wrote that the supply of the PSoC 4 shall not be removed as soon as the I2C bus is powered up, could you please explain what is the reason for that?

Due to legal reasons I can not share the schematics with you at this point. However, we are using a BT SOC as I2C master, and have two more I2C slaves in the systems. Currently we are using 10k pull-up resistors and no series resistance. I2C bus level is 1.8V.

When we disconnect the PSoC 4 from the I2C lines, the 1.8V supply can be turned off and on at will. That is why we assume that the PSoC 4 is causing the problem.

Thanks for your help,

Stephan

0 Likes

Hi Stepan,

>>"We would like to be able to switch on and off the 1.8V supply (which supplies also the PSoC 4) in our system to be able to save power. "

Cypress--> We recommend you to use various low power modes in PSoC 4 to achieve low power consumption instead of switching ON and OFF.

>>As soon as we turn off the 1.8V supply the PSoC 4 pulls the SDA to ~1V and continues to do so. A hard reset of the system is needed to fix this issue.

Cypress--> When you remove the power supply from the PSoC are you actually removing the power to all the devices on the board or only on PSoC? If you are removing power to board, then how are you getting the 1volt on the SDA line?

>>"In your reply you wrote that the supply of the PSoC 4 shall not be removed as soon as the I2C bus is powered up, could you please explain what is the reason for that?"

Cypress--> This is because the communication may be in the middle when the power supply is removed and the master/slave's state machine will stuck in some unstable state. So we recommend you to not do this.

>>'However, we are using a BT SOC as I2C master, and have two more I2C slaves in the systems. Currently we are using 10k pull-up resistors and no series resistance. I2C bus level is 1.8V."

Cypress--> Please ensure when the power is removed to PSoC the power supply to which the resistances are pulled-up should also be OFF. Otherwise the voltage on the GPIO pins will exceed the device absolute maximum rating (VDDD + 0.5V).

If possible please probe the I2C SDA and SCL lines and send us the data during the power is removed.

Thanks

Ganesh

0 Likes

Hi Ganesh,

>>As soon as we turn off the 1.8V supply the PSoC 4 pulls the SDA to ~1V and continues to do so. A hard reset of the system is needed to fix this issue.

Cypress--> When you remove the power supply from the PSoC are you actually removing the power to all the devices on the board or only on PSoC? If you are removing power to board, then how are you getting the 1volt on the SDA line?

>>You are right, there is a separate 1.8V supply for the I2C pull-ups which is always on.

Cypress--> Please ensure when the power is removed to PSoC the power supply to which the resistances are pulled-up should also be OFF. Otherwise the voltage on the GPIO pins will exceed the device absolute maximum rating (VDDD + 0.5V).

>>So the GPIOs may not be at any voltage above 0.5V when the PSoC 4 is not supplied?

If possible please probe the I2C SDA and SCL lines and send us the data during the power is removed.

>> I will do that and share with you as soon as I get to it

One more question: is it true that the CapSense calibration of the PSoC4 happens at start up of the chip? If so, is there also a possibility to calibrate the PSoC while it is running or would it have to be power cycled?

Thanks a lot,

Stephan

0 Likes

Hi Stephan,

>>So the GPIOs may not be at any voltage above 0.5V when the PSoC 4 is not supplied?

--> Yes. Please refer SID3 table 3 in page number 14 of the device datasheet.

https://www.cypress.com/file/138646/download

>>"Is it true that the CapSense calibration of the PSoC4 happens at start up of the chip? "

--> The CapSense sensors will be calibrated at the time of calling the API CapSense_Start().

>>"If so, is there also a possibility to calibrate the PSoC while it is running or would it have to be power cycled?"

--> You can call the CapSense_Start() API at anytime/anywhere in the project. But can you please explain the reason why you want to calibrate at multiple times? Generally, in all our example projects we call the API CapSense_Start() only once during initialization in main().

Thanks

Ganesh

0 Likes

Hi Ganesh,

We are planning to follow your advice and want to use the low power modes of the PSoC4.

Is it possible to switch between active and the other low power modes (eg. deep sleep, stop mode) using I2C commands?

For example is it possible to send the PSoC4 from active mode into deep sleep mode via I2C and vice versa (waking up the PSoC from deep sleep to active mode via I2C)?

Thank you!

Stephan

0 Likes

Hi,

>>"Is it possible to switch between active and the other low power modes (eg. deep sleep, stop mode) using I2C commands?"

--> You have to call CySysPmSleep() or CySysPmDeepSleep() APIs respectively to go to Sleep mode or Deep sleep mdes from active mode.

      So you can poll the I2C data and set the device to desired power mode based on the I2C data.

>>"For example is it possible to send the PSoC4 from active mode into deep sleep mode via I2C and vice versa (waking up the PSoC from deep sleep to active mode via I2C)?"

--> To make the I2C wake up the device from Sleep or Deep Sleep, the I2C component used should be deep Sleep capable. Please select deep sleep capable check box in the BLE component.

Thanks

Ganesh

0 Likes

Hi Ganesh,

I'm not sure what you are referring to with "To make the I2C wake up the device from Sleep or Deep Sleep, the I2C component used should be deep Sleep capable. Please select deep sleep capable check box in the BLE component."

Could you please tell me if the CY8C4014FNI-421AT is deep sleep capable?

Thank you!

Stephan

0 Likes
lock attach
Attachments are accessible only for community members.

Hi Stephan,

Sorry for not being clear. The SCB block present in the PSoC 4000 device is capable of waking the device from deep sleep on the I2C address match. To enable this feature you have to check one box in the I2C component GUI. Please see the attached image.

Thanks

Ganesh