CAT2 Peripheral Driver Library

General Description

Functions

cy_en_syspm_status_t Cy_SCB_I2C_DeepSleepCallback (cy_stc_syspm_callback_params_t const *callbackParams, cy_en_syspm_callback_mode_t mode)
 This function handles the transition of the I2C SCB into and out of Deep Sleep mode. More...
 
__STATIC_INLINE void Cy_SCB_I2C_RegisterDSClockConfig (CySCB_Type const *base, cy_cb_scb_i2c_handle_deep_sleep_mode_t callback, cy_stc_scb_i2c_context_t *context)
 Registers a callback function that will occur Cy_SCB_I2C_DeepSleepCallback when the I2C goes into deepsleep. More...
 

Function Documentation

◆ Cy_SCB_I2C_DeepSleepCallback()

cy_en_syspm_status_t Cy_SCB_I2C_DeepSleepCallback ( cy_stc_syspm_callback_params_t const *  callbackParams,
cy_en_syspm_callback_mode_t  mode 
)

This function handles the transition of the I2C SCB into and out of Deep Sleep mode.

It prevents the device from entering Deep Sleep mode if the I2C slave or master is actively communicating. The behavior of the I2C SCB in Deep Sleep depends on whether the SCB block is configured as enable-wakeup or not:

  • Enable-wakeup: during Deep Sleep mode on incoming I2C slave address the slave receives address and stretches the clock until the device is awoken from Deep Sleep mode. If the slave address occurs before the device enters Deep Sleep mode, the device will not enter Deep Sleep mode. Only the I2C slave can be configured to be a wakeup source from Deep Sleep mode.
  • Not enable-wakeup: the SCB is disabled in Deep Sleep mode. It is re-enabled if the device fails to enter Deep Sleep mode or when the device is awoken from Deep Sleep mode. While the SCB is disabled it stops driving the outputs and ignores the inputs. The slave NACKs all incoming addresses.

This function must be called during execution of Cy_SysPm_CpuEnterDeepSleep. To do it, register this function as a callback before calling Cy_SysPm_CpuEnterDeepSleep : specify CY_SYSPM_DEEPSLEEP as the callback type and call Cy_SysPm_RegisterCallback.

Parameters
callbackParamsThe pointer to the callback parameters structure cy_stc_syspm_callback_params_t.
modeCallback mode, see cy_en_syspm_callback_mode_t
Returns
cy_en_syspm_status_t
Note
For proper operation, when the I2C slave is configured to be a wakeup source from Deep Sleep mode, need to register callback function by Cy_SCB_I2C_RegisterDSClockConfig. Callback function must disable or enable the clock divider depending on the event I2C Deep Sleep Callback Events. Not applicable for PSoC 4100S Max.

◆ Cy_SCB_I2C_RegisterDSClockConfig()

__STATIC_INLINE void Cy_SCB_I2C_RegisterDSClockConfig ( CySCB_Type const *  base,
cy_cb_scb_i2c_handle_deep_sleep_mode_t  callback,
cy_stc_scb_i2c_context_t context 
)

Registers a callback function that will occur Cy_SCB_I2C_DeepSleepCallback when the I2C goes into deepsleep.

In the configurator if Deep Sleep Callback is enabled a callback function will be supplied. The function will disable the clock divider when going into deepsleep and enable the clock divider when coming out of deepsleep. If Deep Sleep Callback is not enabled a user defined function must enable and disable the clock dividers.

Parameters
baseThe pointer to the I2C SCB instance.
callbackThe pointer to a callback function. See cy_cb_scb_i2c_handle_deep_sleep_mode_t callback for the function prototype.
contextThe pointer to context structure cy_stc_scb_i2c_context_t allocated by the user. The structure is used during the I2C operation for internal configuration and data retention. The user should not modify anything in this structure.
Note
To remove the callback, pass NULL as the pointer to a callback function.
Not applicable for PSoC 4100S Max.