Advantages of I2C Communication for Fan
Speed Control in Telecom Cooling Applications
Standard I2C Protocol for SmartFan FusionPDF Format
I2C Bus Protocol
The I2C bus is configured as a slave device that can transmit and receive data. When the Fusion-4 is configured for I2C based speed control, the user can write speed commands to the Fusion-4 and read all alarm status bits. When configured for temperature based control the user can read all alarm status bits from the Fusion-4. Writing an I2C speed command changes the control mode from temperature based to I2C based.
Specifications
- The bus supports seven-bit addressing and only acts as a slave device.
- The address for the fan controller is 0001A2A1A0.
- General call support is not provided.
- The fan controller will stretch the clock further if needed. The I2C master must observe clock stretching.
- The hardware register will support Standard Mode I2C with speeds up to 100 KHz, however, lower clock speeds are recommended for increased noise immunity.
- If temperature control mode is disabled and I2C speed mode is used, then I2C communication must occur within ~2 minutes of the last communication, or there will be an I2C communication timeout error. When an I2C timeout occurs, full supply voltage will be applied to the fans, and fan speed must be reset with a new speed command. Performing any valid I2C operation on either bus will clear the timeout condition and restart the watchdog timer.
- Fan failure based on 2000 minimum PPM of fan in slow (default) mode or 4000 minimum PPM in fast mode. Fan failure is not updated when the output is set to 0 VDC.
- It is possible for noise to cause the I2C hardware to miss an address or data. In this case an Ack will not be generated. The production tester allows 3 errors to occur before marking the board as failing. Also during the EEPROM write cycle the I2C will not generate ACK signals as no more data can be accepted until the write cycle is complete. Typical write cycle is 8ms.
Table 3.0 defines the bits used in the serial bus protocol.
Table 3.0: I2C Bus Definitions
|
|
ACK
|
Acknowledge |
NAck
|
Not Acknowledge (End of Transmission) |
A6 – A0
|
Address for Fan Controller, bits 6 – 0 |
D7 – D0
|
Data TO/FROM Fan Controller, bits 7 – 0 |
L7 – L0
|
Data location being accessed, bits 7-0 |
P
|
Stop Bit |
R
|
Read Bit (1) |
S
|
Start Bit |
W
|
Write Bit (0) |
Write sequence
S A6 A5 A4 A3 A2 A1 A0 W Ack L7 L6 L5 L4 L3 L2 L1 L0 Ack D7 D6 D5 D4 D3 D2 D1 D0 Ack P
Read sequence
S A6 A5 A4 A3 A2 A1 A0 W Ack L7 L6 L5 L4 L3 L2 L1 L0 Ack P S A6 A5 A4 A3 A2 A1 A0 R Ack D7 D6 D5 D4 D3 D2 D1 D0 NAck P
Register Locations: L7-L0 Label (R/W) [initial condition]
Register 0x00 – 0xEF: Generic EEPROM storage (Read/Write) [undetermined]
Register 0xF0: Firmware Revision (Read only) [00:current rev]
Register 0xF1: Alarm0 Status (Read only) [0x00]
D0: Status of fan of 1 (0=no fault, 1= fault)
D1: Status of fan of 2 (0=no fault, 1= fault)
D2: Status of fan of 3 (0=no fault, 1= fault)
D3: Status of fan of 4 (0=no fault, 1= fault)
Register 0xF2: Alarm1 Status (Read only) [0x00]
D1-3: Always 0
D4: Status of speed override (0=normal, 1=24VDC)
D5: Status of on-board sensor (0=connected, 1= open)
D6: Status of external sensor (0=connected, 1=open)
D7: Status of controlling sensor (0=valid, 1=alarm)
Register 0xF3: Temperature (Read only) [1111 1111] on-board sensor
D0-7: Temperature from 0 – 70 in degrees C in 0.5 deg steps
0XFF = temperature not read yet or open
((Temperatures above 70 are reported as 254)
Register 0xF4: Temperature (Read only) [1111 1111] external sensor
D0-7: Temperature from 0 – 70 in degrees C in 0.5 deg steps
0XFF = temperature not read yet or open
(Temperatures above 70 are reported as 254)
Register 0xF5: Current Target Speed (Read only) [0000 1100]
D0-7: 0x0C = 24 VDC, 0x00 = 12 VDC
(Commanded speed with alarm status override included)
(In temperature mode this register will read 0x0C)
Register 0xF6: Current Speed (Read only) [0000 1100]
D0-7: 0x0C = 24 VDC, 0x00 = 12VDC
(What the actual current voltage is)
(In temperature mode this register will read 0x0C)
Register 0xF7: Commanded Speed (Read/Write) [1111 1111]
D0-3: 0x0C = 24 VDC, 0x00 = 12VDC, 0x0F = off
0x00 – 0C = 12 – 24 VDC, 1VDC per step
If set to 0xFF then temperature mode is enabled and I2C speed control disabled
Register 0xF8: Off Temperature (Read/Write) [1111 1111]
D0-7: Temperature from 0 – 70 in degrees C in 0.5 deg steps
Temperature below which the controller turns off the fan output (0 VDC)
If set to 0xFF then function disabled
Register 0xF9: Control Temperature (Read/Write) [0101 0000]
D0-7: Temperature from 0 – 70 in degrees C in 0.5 deg steps
Full speed temperature, only used if Commanded Speed set to 0xFF.
Register 0xFA: Alarm Temperature (Read/Write) [1111 1111]
D0-7: Temperature from 0 – 70 in degrees C in 0.5 deg steps
Temperature above which the controller alarms
If set to 0xFF then function disabled
Register 0xFB: Config0 Register (Read/Write) [1111 1111]
D0-D7: 0=Mask, 1=Active for an Fan (J3-J10)
Register 0xFC: Config1 Register (Read/Write) [0000 0001]
D0: 0=Mask, 1=Active for an Fan (J11)
D1-D4: Set to 0, may be set to 1 to allow system to indicate a fan controller reset.
D5: 0=5deg slope, 1=10 deg slope for temperature mode only
D6: 0=2000PPM tach, 1=4000PPM tach fan alarm speed
D7: 0=External, 1=On-board sensor selection for temperature mode only
Register 0xFD-0xFF: CRI Test Register (Reserved) [xxxx xxxx]
D0-7: Do not use
Note: If a fan failure occurs the Current Speed will be updated to 24V but the Commanded Speed will remain at its previous value. Once the failure clears the Current Speed will return to the Commanded Speed value. An I2C timeout changes BOTH the Current Speed and Commanded Speed to 24V. The Commanded Speed must be reset after a timeout. During the speed ramp the Current Speed will not match the Commanded Speed until the ramp completes.
I2C Fan Speed ControlPDF Format
Additional I2C reference information from Control Resources is available at:
Click on I2C Advantages for an explanation of the advantages of I2C communications for fan speed control in telecom cooling applications.
Click on I2C Flowchart for a sample I2C protocol flow diagram.
Click on I2C Protocol for a sample of the standard I2C protocol used in the SmartFan Fusion.