The CC32xx device features flexible wide-voltage I/Os. Supported features follow:
- Programmable drive strength from 2 mA to 14 mA (nominal condition) in 2-mA steps.
- Open-drain mode
- Output buffer isolation
- Automatic output isolation during reset and hibernate
- Configurable pullup and pulldown (10-µA nominal)
- Software-configurable pad state retention during LPDS
Each I/O pad cell in the CC32xx device has the following ports:
- PAD: I/O pad connected to package pin and external components
- ODI: Level-shifted data from PAD to core logic
- IDO: Input to I/O-cell from core.
- ioden: When level 1, this disables the PMOS xtors of the output stages, making them open-drain type. For example, I2C may use a open-drain configuration. Value gets latched at the rising edge of RET33.
- ioe_n: If level 0, this enables the IDO to PAD path. Otherwise, PAD is placed in a tristate condition (except for the PU/PD, which are independent).
- ioen33: This control signal is driven by the hibernate controller. Level 1 enables the IDO-to-PAD path. Otherwise, PAD is made Hi-Z (except for the PU/PD, which are independent). This is automatically controlled by hardware to Hi-Z; the main o/p drivers during chip reset (nRESET=0). On first-time power up, the chip performs a sense-on-power detection of board-level pullup and pulldown resistors on three specific device pins (SOP0, SOP1, and SOP2); after this is done, this control signal is made high. The user-defined I/O pads remain in Hi-Z state until configured by the user program.
- 2-bit drive strength control (the value gets latched at the rising edge of RET33):
- i2maen: Level 1 enables the approximately 2-mA output stage (in parallel with 4-mA drivers, if enabled)
- i4maen: Level 1 enables the approximately 4-mA output stage (in parallel with 2-mA drivers, if enabled)
Note: Any drive strength from 2 mA to 6 mA can be realized by enabling one or more of the previously mentioned drivers together. Treat these two pins as 2-bit binary-coded strength control.
- Pullup and pulldown controls (the value gets latched at the rising edge of RET33, and works independent of ioe_n, ioen33, and i2maen/i4maen/i8maen).
- iwkpuen: 10-µA pullup (NOM_25C_3.3V)
- iwkpden: 10-µA pulldown (NOM_25C_3.3V)
- RET33: Control signal from the hibernate controller module. Puts the I/O in low-power retention mode. The control and data signals are latched on the rising edge (except ioen33). The internal bias for a high-speed level-shifter is automatically disabled when RET33 is 1. By default, this signal is controlled by the power-management state machine in the hibernate controller. By default, this signal goes high on entry to hibernate mode. On exit from hibernate mode, RET33 returns to level 0 to allow the device firmware and application software to access the I/O pads.