PSoC 4000 Family: PSoC 4 Architecture TRM, Document No. 001-89309 Rev. *D 91
Inter-Integrated Circuit (I2C)
nally clocked logic (rest of the operation). The combination EC_AM_MODE = 0 and EC_OP_MODE = 1 is invalid and the
block will not respond.
■ EC_AM_MODE is '0' and EC_OP_MODE is '0'. This setting only works in Active and Sleep system power modes.
■ EC_AM_MODE is '1' and EC_OP_MODE is '0'. This setting works same as I2C non-EZ mode.
■ EC_AM_MODE is '1' and EC_OP_MODE is '1'. This setting works in Active and Deep-Sleep system power modes.
The I2C block’s functionality is provided in the externally clocked domain. Note that this setting results in externally clocked
accesses to the block's SRAM. These accesses may conflict with internally clocked accesses from the device. This may
cause wait states or bus errors. The field FIFO_BLOCK (bit 17) of the SCB_CTRL register determines whether wait states
('1') or bus errors ('0') are generated.
15.2.8 Wake up from Sleep
The system wakes up from Sleep or Deep-Sleep system power modes when an I2C address match occurs. The fixed-func-
tion I2C block performs either of two actions after address match: Address ACK or Address NACK.
Address ACK - The I2C slave executes clock stretching and waits until the device wakes up and ACKs the address.
Address NACK - The I2C slave NACKs the address immediately. The master must poll the slave again after the device
wakeup time is passed. This option is only valid in the slave or multi-master-slave modes.
Note The interrupt bit WAKE_UP (bit 0) of the SCB_INTR_I2C_EC register must be enabled for the I2C to wake up the
device on slave address match while switching to the Sleep mode.
Table 15-10. I2C Operation in EZ Mode
I2C, EZ Mode
System Power
Mode
EC_OP_MODE= 0 EC_OP_MODE = 1
EC_AM_MODE = 0 EC_AM_MODE = 1 EC_AM_MODE = 0 EC_AM_MODE = 1
Active and Sleep
Address match using internal
clock
Operation using internal
clock
Address match using external
clock
Operation using internal clock
Invalid
Address match using external
clock
Operation using external clock
Deep-Sleep Not supported
Address match using external
clock
Operation using internal clock
Address match using external
clock
Operation using external clock