ZHCSLX3C June 2017 – September 2020 FPC402
PRODUCTION DATA
If I2C is used as the host-side communication protocol, the maximum number of FPC402 devices which can share a single I2C bus is 14. This allows for controlling up to 56 downstream ports through a single I2C bus.
I2C is an addressed interface. To reduce pin count and simplify integration, the FPC402 has an auto-addressing scheme whereby all FPC402s in a system will take on a unique address without requiring dedicated address pins. This is accomplished by connecting one CTRL4 (ADDR_DONE_N) pin of a FPC402 device to the subsequent CTRL3 (SET_ADDR_N) pin of another FPC402 device. The first FPC402 will connect CTRL3 (SET_ADDR_N) to GND, and the final FPC402 will connect CTRL4 (ADDR_DONE_N) to GND, as shown in Figure 8-4.
For I2C host-side control interface implementations, the host controller must first configure each FPC402 device to have a unique address. The CTRL3 (SET_ADDR_N) pin is internally pulled to high logic (regardless of the EN pin status) and the FPC402 device will not respond to any I2C transactions until this pin is pulled low. Once it is driven to low logic, the device will respond to the default I2C 8-bit address (0x1E). A single I2C write to the FPC402 will reassign a new I2C address, and once this is done, the FPC402 will drive low logic with the CTRL4 pin (ADDR_DONE_N) which allows the next FPC402 in the daisy chain to be programmed using the default address. Until this address reassignment happens, the CTRL4 (ADDR_DONE_N) pin is high-Z.
This scheme allows each FPC402 to take a unique I2C address without any contention on the bus. The addresses may be programmed in any order except for the default 8-bit address (0x1E) which must be assigned to the last device in the daisy chain, or else two FPC402s will respond to 0x1E and bus contention will occur. The state of the CTRL3 (SET_ADDR_N) pin does not matter after the address is reprogrammed (this pin is then used to transfer the LED clock for blinking synchronization). Once the new address is programmed, it becomes fixed and may no longer be changed by a new register write. Only power cycling the device or toggling the EN pin will restore the device to the default reprogrammable address.
The I2C address space for FPC402 applications is designed such that each FPC402, each port being controlled, and each logical device address within each port is accessible to the host controller through a unique I2C address. All FPC402 devices will also respond to 8-bit I2C address 0x02. This allows the host controller to broadcast write to all FPC402 devices simultaneously. For a system with up to 14 FPC402 devices on a single I2C bus, the full 8-bit I2C address map is shown in Table 8-6.
FPC402 INSTANCE NUMBER | FPC402 SELF-ADDRESS | PORT 0 | PORT 1 | PORT 2 | PORT 3 | ||||
---|---|---|---|---|---|---|---|---|---|
DEVICE 0 DEFAULT = 0xA0(1) | DEVICE 1 DEFAULT = 0xA2(1) | DEVICE 0 DEFAULT = 0xA0(1) | DEVICE 1 DEFAULT = 0xA2(1) | DEVICE 0 DEFAULT = 0xA0(1) | DEVICE 1 DEFAULT = 0xA2(1) | DEVICE 0 DEFAULT = 0xA0(1) | DEVICE 1 DEFAULT = 0xA2(1) | ||
ALL | 0x02 | – | – | – | – | – | – | – | – |
0 | 0x04 | 0x20 | 0x22 | 0x24 | 0x26 | 0x28 | 0x2A | 0x2C | 0x2E |
1 | 0x06 | 0x30 | 0x32 | 0x34 | 0x36 | 0x38 | 0x3A | 0x3C | 0x3E |
2 | 0x08 | 0x40 | 0x42 | 0x44 | 0x46 | 0x48 | 0x4A | 0x4C | 0x4E |
3 | 0x0A | 0x50 | 0x52 | 0x54 | 0x56 | 0x58 | 0x5A | 0x5C | 0x5E |
4 | 0x0C | 0x60 | 0x62 | 0x64 | 0x66 | 0x68 | 0x6A | 0x6C | 0x6E |
5 | 0x0E | 0x70 | 0x72 | 0x74 | 0x76 | 0x78 | 0x7A | 0x7C | 0x7E |
6 | 0x10 | 0x80 | 0x82 | 0x84 | 0x86 | 0x88 | 0x8A | 0x8C | 0x8E |
7 | 0x12 | 0x90 | 0x92 | 0x94 | 0x96 | 0x98 | 0x9A | 0x9C | 0x9E |
8 | 0x14 | 0xA0 | 0xA2 | 0xA4 | 0xA6 | 0xA8 | 0xAA | 0xAC | 0xAE |
9 | 0x16 | 0xB0 | 0xB2 | 0xB4 | 0xB6 | 0xB8 | 0xBA | 0xBC | 0xBE |
10 | 0x18 | 0xC0 | 0xC2 | 0xC4 | 0xC6 | 0xC8 | 0xCA | 0xCC | 0xCE |
11 | 0x1A | 0xD0 | 0xD2 | 0xD4 | 0xD6 | 0xD8 | 0xDA | 0xDC | 0xDE |
12 | 0x1C | 0xE0 | 0xE2 | 0xE4 | 0xE6 | 0xE8 | 0xEA | 0xEC | 0xEE |
13 | 0x1E | 0xF0 | 0xF2 | 0xF4 | 0xF6 | 0xF8 | 0xFA | 0xFC | 0xFE |
The timing specification for an I2C transaction is described in Figure 8-5.