PSoC® Creator™ Component Datasheet Fan Controller 2.20 Features Support for up to 16 PWM controlled, 4-wire brushless DC fans Individual or banked PWM outputs with tachometer inputs Supports 25 kHz, 50 kHz or user-specified PWM frequencies Supports fan speeds up to 25,000 RPM Supports 4-pole and 6-pole motors Supports fan stall / rotor lock detection on all fans Supports firmware controlled or hardware controlled fan speed regulation Customizable alert pin for fan fault reporting General Description The Fan Controller component enables designers to quickly and easily develop fan controller solutions using PSoC. The component is a system-level solution that encapsulates all necessary hardware blocks including PWMs, tachometer input capture timer, control registers, status registers and a DMA controller reducing development time and effort. The component is customizable through a graphical user interface enabling designers to enter fan electromechanical parameters such as duty cycle-to-RPM mapping and physical fan bank organization. Performance parameters including PWM frequency and resolution as well as open or closed loop control methodology can be configured through the same user interface. Once the system parameters are entered, the component delivers the most optimal implementation saving resources within PSoC to enable integration of other thermal management and system management functionality. Easy-to-use APIs are provided to enable firmware developers to get up and running quickly. NOTE: Designs using the Fan Controller component should not use PSoC’s low power sleep or hibernate modes. Entering those modes prevents the Fan Controller component from controlling and monitoring the fans. Document Number: 001-83020 Rev. *A Revised November 9, 2015 Fan Controller PSoC® Creator™ Component Datasheet When to Use a Fan Controller The Fan Controller component should be used in any thermal management application that needs to drive and monitor 4-wire, PWM based DC cooling fans. If the application requires more than 16 fans, the Fan Controller component can be instantiated multiple times. Similarly, if the fans in the application are organized into banks, designers have the option of instantiating one Fan Controller component per bank or instantiating one component that handles all the banks. Input/Output Connections This section describes the various input and output connections for the Fan Controller. An asterisk (*) in the list of I/Os states that the I/O may be hidden on the symbol under the conditions listed in the description of that I/O. clock – Input * An input for a user-defined clock source for the fan control PWMs. It is present only when the External Clock option is selected in the component customizer. tach1..16 – Input * Tachometer signal from each fan that enables the Fan Controller to measure fan rotational speeds. The component is designed to work with 4-pole DC fans that produce 2 high-low pulse trains per rotation on their tachometer output or 6-pole DC fans that produce 3 high-low pulse trains. tach2..16 inputs are optional. fan1..16 – Output * PWM output with variable duty cycle to control the speed of the fans. These output terminals are replaced by the bank1..8 outputs if fan banking is enabled. fan2..16 are optional. Note that for Hardware UDB mode, the maximum number of fan outputs (and associated tach inputs) is limited to 12 to minimize digital resource utilization. bank1..8 – Output * PWM output with variable duty cycle to control the speed of the fan banks. These outputs appear only when banking is enabled. alert – Output * Active high output terminal asserted when fan faults are detected (if enabled). Page 2 of 28 Document Number: 001-83020 Rev. *A PSoC® Creator™ Component Datasheet Fan Controller eoc – Output * End-of-Cycle output is pulsed high each time the tachometer block has measured the speed of all fans in the system. This can be used to synchronize firmware algorithms to the Fan Controller hardware by connecting the terminal to a Status Register component or to an Interrupt component. Component Parameters Drag a Fan Controller onto your design and double click it to open the Configure dialog. Figure 1 shows the Configure dialog. Basic Tab Options This tab is used to configure the fundamental operating parameters of the component. Figure 1. Basic Configuration Dialog Document Number: 001-83020 Rev. *A Page 3 of 28 Fan Controller PSoC® Creator™ Component Datasheet Fan Control Method – Firmware/Hardware This parameter determines how the fan speeds are controlled. Firmware (CPU) setting is used when user firmware controls fan speed regulation. Firmware can set PWM duty cycles and read back fan speeds to determine the appropriate action. Hardware (UDB) setting dictates that hardware blocks inside PSoC control fan speed regulation automatically without any CPU intervention. Firmware sets the desired speed for each fan and the hardware automatically adjusts the PWM duty cycle to achieve and maintain the desired speed within specified tolerance limits. Default setting is Firmware (CPU). Firmware (CPU) setting should be selected in cases where: 1. The designer has a complex or custom fan control algorithm to be implemented in firmware within PSoC. 2. Anexternal host controller is responsible formanaging the fan speed algorithm and the Fan Controller component is simply being used as the hardware interface to the fans. 3. Multiple fans areorganized into banks sharing a common PWM drive signal. Hardware (UDB) setting should be selected in cases where the designer wants to control multiple fans independently and wants to do so with minimal firmware development. Hardware Control Mode – Damping Factor In hardware controlled fan mode, this parameter controls the dynamic response time of the hardware control loop(closed loop). This parameter controls how frequently the hardware adjusts the PWM duty cycles for each fan. In situations where there are only a few fans, a higher damping factor ensures that the control loop can regulate to the desired speed without oscillating around the desired speed target. In situations where many fans are being controlled, a lower damping factor ensures adequate response time to changes in fan speed. This parameter enables fine tuning of the hardware control logic to match the selected fan’s electromechanical characteristics. The valid range for this parameter is 0..1.27 (specified in seconds). Default setting is 0.64. Hardware Control Mode – Tolerance In hardware controlled fan mode, this parameter sets the acceptable tolerance when specifying desired fan speed targets. The tolerance is specified as a percentage relative to the desired speed setting. This parameter enables fine tuning of the hardware control logic to match the selected fans electromechanical characteristics. The valid range for this parameter is 1..10%. Default setting is 1%. If 8-bit PWM resolution is selected in the Fan Controller Fans tab as shown in Figure 2, a Tolerance parameter setting of 5% is recommended. Page 4 of 28 Document Number: 001-83020 Rev. *A PSoC® Creator™ Component Datasheet Fan Controller Hardware Control Mode – Acoustic Noise Reduction In hardware controlled fan mode, this parameter limits audible noise from fans by limiting the positive rate of change of speed. If enabled, and firmware requests an increase in desired fan speed, the PWM duty cycle applied to the fan increases gradually to the new setting rather than applying a sudden step change. This eliminates noisy fan whir from sudden speed increases. Default setting is checked. Alerts – FanStall / RotorLock The Fan Controller can be configured to generate an active-high alert signal when a fan stalls or stops rotating due to a mechanical obstruction. Default setting is checked. Alerts – UDB SpeedRegulationFailure The Fan Controller can be configured to generate an active-high alert signal in hardware controlled fan mode when the hardware control loop is not able to achieve the desired speed. Default setting is un-checked. Connections – Display as Bus If checked, the tach inputs and fan/bank outputs will be displayed as buses. Otherwise, they are displayed as individual terminals. Connections – External Clock If checked, it allows the user to connect an external clock source to the component clock input. If unchecked, then an internal clock source will be used. Document Number: 001-83020 Rev. *A Page 5 of 28 Fan Controller PSoC® Creator™ Component Datasheet Fans Tab Options This tab is used to configure fan-specific parameters. Figure 2. Fans Configuration Dialog Motor Support This parameter specifies the number of high – low pulses that appear on the fan’s tachometer output per revolution. The 4-pole option means there are 2 high and 2 low pulses per fan revolution, while the 6-pole option means that there are 3 high and 3 low pulses per fan revolution. PWM Output Configuration – Number of Fans This parameter specifies how many fans are in the system. The valid range for this parameter is 1..16. Default setting is 4. Page 6 of 28 Document Number: 001-83020 Rev. *A PSoC® Creator™ Component Datasheet Fan Controller PWM Output Configuration – Number of Banks This parameter is only visible in firmware control mode and specifies how many fan banks are in the system. It is assumed that when fans are organized into banks, each bank has the same number of fans. Therefore, the number of fans must be divisible by the number of banks. The value 0 indicates that the fans are not banked. For banked operation, the valid range for this parameter is from 1to (Number of Fans/2). Default setting is 0. PWM Output Configuration – PWM Resolution This parameter specifies the resolution of the duty cycle for the modulated PWM signal that drives the fans to control rotational speed. Valid options for this parameter are 8-bit or 10-bit. Default setting is 8-bit. PWM Output Configuration – PWM Frequency This parameter specifies the frequency of the modulated PWM signal that drives the fans. Valid options for this parameter are 25 kHz or 50 kHz when internal clock is used. Default setting is 25 kHz. When an external clock is used, this parameter is grayed out since the PWM frequency depends on the input clock source. See the Functional Description section for more details. Fan Specifications – Duty A (%), RPM A These parameters together specify one data point on the duty cycle-to-RPM transfer function for the selected fan or bank of fans. The RPM A parameter specifies the speed the fan nominally runs at when driven by a PWM with a duty cycle of Duty A (%). This information is available from the fan manufacturer’s datasheet. It should be noted that the Fan Controller component may drive PWM duty cycles down to 0% even if Duty A (%) is set to a non-zero value. The valid range for the Duty A (%) parameter is 0-99. Default setting is 25. The valid range for the RPM A parameter is 500..24,999. Default setting is 1,000. Fan Specifications – Duty B (%), RPM B These parameters together specify a 2nd data point on the duty cycle-to-RPM transfer function for the selected fan or bank of fans. The RPM B parameter specifies the speed the fan nominally runs at when driven by a PWM with a duty cycle of Duty B (%). This information is available from the fan manufacturer’s datasheet. It should be noted that the Fan Controller component may drive PWM duty cycles up to 100% even if Duty B (%) is set below 100%. The valid range for the Duty B (%) parameter is 1-100. Default setting is 100. The valid range for the RPM B parameter is 501..25,000. Default setting is 10,000. Document Number: 001-83020 Rev. *A Page 7 of 28 PSoC® Creator™ Component Datasheet Fan Controller Fan Specifications – Initial RPM This parameter specifies the initial RPM of an individual fan. The value of Initial RPM is converted into a duty cycle and set as the initial duty cycle for an individual fan. The Initial RPM parameter may be set lower than the RPM A parameter. Clock Selection The component uses clock tree sources for its operation. These clocks are: Bus Clock, Tachometer Clock (500 kHz) and PWM Clock (6, 12 or 24 MHz depending on the configuration). The component has an option to connect an external clock source instead of the PWM Clock. Application Programming Interface Application Programming Interface (API) routines allow you to interact with the component using firmware. The following table lists and describes the interface to each function. The subsequent sections cover each function in more detail. By default, PSoC Creator assigns the instance name FanController_1 to the first instance of a component in a given design. You can rename it to any unique value that follows the syntactic rules for identifiers. The instance name becomes the prefix of every global function name, variable, and constant symbol. For readability, the instance name used in the following table is FanController. Functions Function Description FanController_Start() Start the component FanController_Stop() Stop the component and disable hardware blocks FanController_Init() Initializes the component FanController_Enable() Enables hardware blocks inside the component FanController_EnableAlert() Enables alerts from the component FanController_DisableAlert() Disables alerts from the component FanController_SetAlertMode() Configures alert sources FanController_GetAlertMode() Returns currently enabled alert sources FanController_SetAlertMask() Enables masking of alerts from each fan Page 8 of 28 Document Number: 001-83020 Rev. *A PSoC® Creator™ Component Datasheet Function Fan Controller Description FanController_GetAlertMask() Returns alert masking status of each fan FanController_GetAlertSource() Returns pending alert source(s) FanController_GetFanStallStatus() Returns a bit mask representing the stall status of each fan FanController_GetFanSpeedStatus() Returns a bit mask representing the speed regulation status of each fan in hardware control mode FanController_SetDutyCycle() Sets the PWM duty cycle for the specified fan or fan bank FanController_GetDutyCycle() Returns the PWM duty cycle for the specified fan or fan bank FanController_SetDesiredSpeed() Sets the desired fans speed for the specified fan in hardware control mode FanController_GetDesiredSpeed() Returns the desired fans speed for the specified fan in hardware control mode FanController_GetActualSpeed() Returns the actual speed for the specified fan FanController_OverrideHardwareControl() Enables firmware to override hardware (UDB) fan control Global Variables Variable Description FanController_initVar(static) The initVar variable is used to indicate initial configuration of this component. This variable is pre-pended with the component name. The variable is initialized to zero and set to 1 the first time FanController_Start() is called. This allows for component initialization without re-initialization in all subsequent calls to the FanController_Start() routine. If re-initialization of the component is required the FanController_Stop() routine should be called followed by the FanController_Init() and FanController_Enable(). Document Number: 001-83020 Rev. *A Page 9 of 28 PSoC® Creator™ Component Datasheet Fan Controller void FanController_Start(void) Description: Enables the component. Calls the Init() API if the component has not been initialized before. Calls the Enable() API. Parameters: None Return Value: None Side Effects: None void FanController_Stop(void) Description: Disables the component. All PWM outputs will be driven to 100% duty cycle to ensure cooling continues while the component is not operational. Parameters: None Return Value: None Side Effects: Alert pin is deasserted. void FanController_Init(void) Description: Initializes the component. Parameters: None Return Value: None Side Effects: None void FanController_Enable(void) Description: Enables hardware blocks within the component. Parameters: None Return Value: None Side Effects: None Page 10 of 28 Document Number: 001-83020 Rev. *A PSoC® Creator™ Component Datasheet Fan Controller void FanController_EnableAlert(void) Description: Enables generation of the alert signal. Specifically which alert sources are enabled is configured using the FanController_SetAlertMode() and the FanController_SetAlertMask() APIs. Parameters: None Return Value: None Side Effects: None void FanController_DisableAlert(void) Description: Disables generation of the alert signal. Parameters: None Return Value: None Side Effects: Alert pin is deasserted. void FanController_SetAlertMode(uint8 alertMode) Description: Configures alert sources from the component. Two alert sources are available: 1) Fan Stall or Rotor Lock, 2) Hardware control mode speed regulation failure. Parameters: uint8 alertMode Bit Field Enabled Alert Source FanController_STALL_ALERT 1=Enable fan stall / rotor locka lert FanController_SPEED_ALERT 1=Enable Closed Loop speed regulation failure alert Return Value: None Side Effects: None Document Number: 001-83020 Rev. *A Page 11 of 28 PSoC® Creator™ Component Datasheet Fan Controller uint8 FanController_GetAlertMode(void) Description: Returns the alert sources that are enabled. Parameters: None Return Value: uint8 alertMode Bit Field Side Effects: Enabled Alert Source FanController_STALL_ALERT 1=Enable fan stall / rotor lock alert FanController_SPEED_ALERT 1=Enable Closed Loop speed regulation failure alert None void FanController_SetAlertMask(uint16 alertMask) Description: Enables or disables alerts from each fan through a mask. Masking applies to both fan stall alerts and speed regulation failure alerts. Parameters: uint16 alertMask Bit Field bit0 1=Enable alerts for Fan1 bit1 1=Enable alerts for Fan2 … … bit15 1=Enable alerts for Fan16 Return Value: None Side Effects: None Page 12 of 28 Enabled Alert Source Document Number: 001-83020 Rev. *A PSoC® Creator™ Component Datasheet Fan Controller uint16 FanController_GetAlertMask(void) Description: Returns alert mask status from each fan. Masking applies to both fan stall alerts and speed regulation failure alerts. Parameters: None Return Value: uint16 alertMask Bit Field Side Effects: Enabled Alert Source bit0 1=Enable alerts for Fan1 bit1 1=Enable alerts for Fan2 … … bit15 1=Enable alerts for Fan16 None uint8 FanController_GetAlertSource(void) Description: Returns pending alert sources from the component. This API can be used to poll the alert status of the component. Alternatively, if the alert pin is used to generate interrupts to PSoC’s CPU core, the interrupt service routine can use this API to determine the source of the alert. In either case, when this API returns a non-zero value, the FanController_GetFanStallStatus() and FanController_GetFanSpeedStatus() APIs can provide further information on which fan(s) has(have) a fault. Parameters: uint8 alertMode Bit Field Pending Alert FanController_STALL_ALERT 1=Fanstall / rotor lock alert pending FanController_SPEED_ALERT 1=Closed Loop speed regulation failure alert pending Return Value: None Side Effects: Calling this API de-asserts the alert pin. If any alerts are pending, the alert pin is reasserted synchronous to the next end-of-cycle (eoc) pulse. Document Number: 001-83020 Rev. *A Page 13 of 28 PSoC® Creator™ Component Datasheet Fan Controller uint16 FanController_GetFanStallStatus(void) Description: Returns the stall / rotor lock status of all fans. Parameters: None Return Value: uint16 stallStatus Bit Field Side Effects: Status bit0 Fan1 stall status (1=stall, 0=OK) bit1 Fan2 stall status … … bit15 Fan16 stall status Calling this API clears all pending fan stall alerts. uint16 FanController_GetFanSpeedStatus(void) Description: Returns the hardware fan control mode speed regulation status of all fans. Speed regulation failures occur in two cases: 1) if the desired fan speed exceeds the current actual fan speed but the fan’s duty cycle is already at 100%, 2) if the desired fan speed is below the current actual fan speed, but the fan’s duty cycle is already at 0%. Parameters: None Return Value: uint16 speedStatus Bit Field Side Effects: Page 14 of 28 Status bit0 Fan1 speed regulation status (1=failure, 0=OK) bit1 Fan2 speed regulation status … … bit15 Fan16 speed regulation status Calling this API clears all pending speed regulation alerts. Document Number: 001-83020 Rev. *A PSoC® Creator™ Component Datasheet Fan Controller void FanController_SetDutyCycle(uint8 fanOrBankNumber, uint16 dutyCycle) Description: Sets the PWM duty cycle of the selected fan or fan bank in hundredths of a percent. In hardware fan control mode, if manual duty cycle control is desirable, call the FanController_OverrideHardwareControl() API prior to calling this API. Parameters: uint8 fanOrBankNumber Valid range is 1..16 but should not exceed the number of fans or banks in the system. uint16 dutyCycle Duty cycle in hundredths of a percent. For example, 50% duty cycle = 5000. Valid range is 0..10000. Return Value: None Side Effects: None uint16 FanController_GetDutyCycle(uint8 fanOrBankNumber) Description: Returns the current PWM duty cycle of the selected fan or fan bank in hundredths of a percent. Parameters: uint8 fanOrBankNumber Valid range is 1..16 but should not exceed the number of fans or banks in the system. Return Value: Duty cycle in hundredths of a percent. For example, 50% duty cycle = 5000. Side Effects: None Document Number: 001-83020 Rev. *A Page 15 of 28 PSoC® Creator™ Component Datasheet Fan Controller void FanController_SetDesiredSpeed(uint8 fanNumber, uint16 rpm) Description: Sets the desired speed of the specified fan in revolutions per minute (RPM). In hardware fan control mode, the RPM parameter is passed to the control loop hardware as the new target fan speed for regulation. In firmware fan control mode, the RPM parameter is converted to a duty cycle based on the fan parameters entered into the Fans tab of the customizer and written to the appropriate PWM. This provides firmware with a method for initiating coarse level speed control. Fine level firmware speed control can then be achieved using the FanController_SetDutyCycle() API. Parameters: uint8 fanNumber Valid range is 1..16 but should not exceed the number of fans in the system. uint16 rpm Valid range is 500..25,000 but should not exceed the maximum RPM that the fan is capable of running at. Doing so will cause a speed regulation failure. Return Value: None Side Effects: None uint16 FanController_GetDesiredSpeed(uint8 fanNumber) Description: Returns the currently desired speed for the selected fan. Parameters: uint8 fanNumber Valid range is 1..16 but should not exceed the number of fans in the system. Return Value: Currently desired speed for the selected fan in RPM Side Effects: None Page 16 of 28 Document Number: 001-83020 Rev. *A PSoC® Creator™ Component Datasheet Fan Controller uint16 FanController_GetActualSpeed(uint8 fanNumber) Description: Returns the current actual speed for the selected fan. Parameters: uint8 fanNumber Valid range is 1..16 but should not exceed the number of fans in the system. Return Value: Current actual speed for the selected fan in RPM Side Effects: None Note On PSoC3 devices FanController_GetActualSpeed() should be called within a specific time window. Refer to Functional description section for more details. void FanController_OverrideHardwareControl(uint8 override) Description: Allows firmware to take over fan control in hardware fan control mode. Note that this API cannot be called in firmware fan control mode. Parameters: uint8 override 0 = hardware assumes control of fans 1 = firmware assumes control of fans Valid range is 0..1. Default is 0 Return Value: None Side Effects: None Sample Firmware Source Code PSoC Creator provides numerous example projects that include schematics and example code in the Find Example Project dialog. For component-specific examples, open the dialog from the Component Catalog or an instance of the component in a schematic. For general examples, open the dialog from the Start Page or File menu. As needed, use the Filter Options in the dialog to narrow the list of projects available to select. Refer to the "Find Example Project" topic in the PSoC Creator Help for more information. Interrupt Service Routine The Fan Controller component does not provide any interrupt service routine APIs automatically. To use interrupts for this component add an interrupt component from the Cypress standard catalog in PSoC Creator. Document Number: 001-83020 Rev. *A Page 17 of 28 PSoC® Creator™ Component Datasheet Fan Controller Functional Description Custom Clock The component has a feature that allows the connection of an external clock. The frequency of the clock source determines the PWM output frequency, and the relation between the input clock frequency(fCLK) and output PWM frequency(fPWM) is shown in the following equations: fPWM = fCLK / 240, for 8 bit resolution; fPWM = fCLK / 960, for 10 bit resolution. (where the 240 and 960 constants are Maximum periods for the 8-bit and 10-bit resolution modes, respectively). Actual Speed When this component is used in a PSoC 3 design, there is a requirement that this API be called within a specific time frame (tACT) after the "eoc" pulse is generated to ensure reliable capture of the 16-bit speed value. This restriction is due to the 8051 CPU core reading the 16-bit value 8bits at a time. Outside of this region the possibility exists that the actual speed MSB and actual speed LSB read could contain data from two different fan speed measurements (previous and current). To guarantee that this does not happen, the GetActualSpeed() API must be called within this time period after the "eoc" pulse has been generated: tACT = 2 * 60/RPMnMAX Note RPMnMAX is the maximum rotation speed of fanN – the last fan that is used in the configuration. Page 18 of 28 Document Number: 001-83020 Rev. *A PSoC® Creator™ Component Datasheet Fan Controller Block Diagram and Configuration The schematic shown in Figure 3 shows high level block diagrams of the two fundamental operating modes of the component: 1) open loop control mode (firmware regulates fan speeds) and 2) closed loop control mode (hardware regulates fan speeds). Figure 3. Fan Controller Block Diagram Registers The Fan Controller has several control and status registers that are used by the firmware APIs to control operation and monitor status. None of these registers are directly accessible by user firmware. Document Number: 001-83020 Rev. *A Page 19 of 28 PSoC® Creator™ Component Datasheet Fan Controller Resources The Fan Controller component is placed throughout the UDB array. The component utilizes the following resources: Resource Type Configuration[1] Datapath Cells Macrocells Status Cells Control Cells DMA Channels Interrupts Firmware mode, 8-bit, 4 Fans 4 28 3 4 1 – Firmware mode, 8-bit, 8 Fans 6 36 3 4 1 – Firmware mode, 8-bit, 12 Fans 8 46 4 5 1 – Firmware mode, 8-bit, 16 Fans 10 56 4 5 1 – Firmware mode, 10-bit, 4 Fans 6 28 3 4 1 – Firmware mode, 10-bit, 8 Fans 10 36 3 4 1 – Firmware mode, 10-bit, 12 Fans 14 46 4 5 1 – Firmware mode, 10-bit, 16 Fans 18 56 4 5 1 – Hardware mode, 8-bit, 4 Fans 6 57 4 8 2 – Hardware mode, 8-bit, 8 Fans 10 93 4 12 2 – Hardware mode, 8-bit, 12 Fans 14 132 6 17 2 – Hardware mode, 10-bit, 4 Fans 10 57 4 8 2 – Hardware mode, 10-bit, 8 Fans 18 93 4 12 2 – API Memory Usage The component memory usage varies significantly, depending on the compiler, device, number of APIs used and component configuration. The following table provides the memory usage for all APIs available in the given component configuration. The measurements have been done with the associated compiler configured in Release mode with optimization set for Size. For a specific design, the map file generated by the compiler can be analyzed to determine the memory usage. 1. For the Hardware mode, resources used by the Damping Factor feature are not included. Page 20 of 28 Document Number: 001-83020 Rev. *A PSoC® Creator™ Component Datasheet Fan Controller PSoC 3 (Keil_PK51) Configuration[2] PSoC 5 (GCC) PSoC 5LP (GCC) Flash SRAM Flash SRAM Flash SRAM Bytes Bytes Bytes Bytes Bytes Bytes Firmware mode, 8-bit, 4 Fans 1396 87 856 106 856 106 Firmware mode, 8-bit, 8 Fans 1396 171 840 206 840 206 Firmware mode, 8-bit, 12 Fans 1413 255 872 306 872 306 Firmware mode, 8-bit, 16 Fans 1413 339 876 406 880 406 Firmware mode, 10-bit, 4 Fans 1425 87 872 106 868 106 Firmware mode, 10-bit, 8 Fans 1425 171 852 206 852 206 Firmware mode, 10-bit, 12 Fans 1442 255 884 306 888 306 Firmware mode, 10-bit, 16 Fans 1442 339 888 406 892 406 Hardware mode, 8-bit, 4 Fans 2222 129 1380 163 1380 163 Hardware mode, 8-bit, 8 Fans 2222 253 1380 319 1380 319 Hardware mode, 8-bit, 12 Fans 2243 377 1428 475 1424 475 Hardware mode, 10-bit, 4 Fans 2239 129 1388 163 1388 163 Hardware mode, 10-bit, 8 Fans 2239 253 1388 319 1388 319 2. For the Hardware mode, resources used by the Damping Factor feature are not included. Document Number: 001-83020 Rev. *A Page 21 of 28 PSoC® Creator™ Component Datasheet Fan Controller DC and AC Electrical Characteristics Specifications are valid for –40 °C ≤ TA ≤ 85 °C and TJ ≤ 100 °C, except where noted. Specifications are valid for 1.71 V to 5.5 V, except where noted. DC Characteristics (PWM clock – 6 MHz) Parameter Idd Min Typ[3] Max Unit 8-bit resolution – 108 – μA 10-bit resolution – 139 – μA 8-bit resolution – 194 – μA 10-bit resolution – 260 – μA 8-bit resolution – 307 – μA 10-bit resolution – 395 – μA 8-bit resolution – 392 – μA 10-bit resolution – 505 – μA 8-bit resolution – 225 – μA 10-bit resolution – 269 – μA 8-bit resolution – 417 – μA 10-bit resolution – 518 – μA – 636 – μA Description Component current consumption(Firmware mode, 4 Fans) Component current consumption(Firmware mode, 8 Fans) Component current consumption(Firmware mode, 12 Fans) Component current consumption(Firmware mode, 16 Fans) Component current consumption(Hardware mode, 4 Fans) Component current consumption(Hardware mode, 8 Fans) Component current consumption(Hardware mode, 12 Fans) 8-bit resolution 3. Device I/O and clock distribution current not included. Other factors such as routing conditions, frequency of tach inputs and temperature also have an impact on the current consumption. The values are at 25 °C. Page 22 of 28 Document Number: 001-83020 Rev. *A PSoC® Creator™ Component Datasheet Fan Controller DC Characteristics (PWM clock – 12 MHz) Parameter Idd Description Min Typ Max Unit 8-bit resolution – 169 – μA 10-bit resolution – 233 – μA 8-bit resolution – 310 – μA 10-bit resolution – 439 – μA 8-bit resolution – 498 – μA 10-bit resolution – 677 – μA 8-bit resolution – 641 – μA 10-bit resolution – 871 – μA 8-bit resolution – 403 – μA 10-bit resolution – 492 – μA 8-bit resolution – 756 – μA 10-bit resolution – 951 – μA – 1162 – μA Component current consumption(Firmware mode, 4 Fans) Component current consumption(Firmware mode, 8 Fans) Component current consumption(Firmware mode, 12 Fans) Component current consumption(Firmware mode, 16 Fans) Component current consumption(Hardware mode, 4 Fans) Component current consumption(Hardware mode, 8 Fans) Component current consumption(Hardware mode, 12 Fans) 8-bit resolution Document Number: 001-83020 Rev. *A Page 23 of 28 PSoC® Creator™ Component Datasheet Fan Controller DC Characteristics (PWM clock – 24 MHz) Parameter Idd Description Min Typ Max Unit 8-bit resolution – 290 – μA 10-bit resolution – 417 – μA 8-bit resolution – 545 – μA 10-bit resolution – 798 – μA 8-bit resolution – 887 – μA 10-bit resolution – 1243 – μA 8-bit resolution – 1150 – μA 10-bit resolution – 1607 – μA 8-bit resolution – 753 – μA 10-bit resolution – 938 – μA 8-bit resolution – 1446 – μA 10-bit resolution – 1826 – μA – 2220 – μA Component current consumption(Firmware mode, 4 Fans) Component current consumption(Firmware mode, 8 Fans) Component current consumption(Firmware mode, 12 Fans) Component current consumption(Firmware mode, 16 Fans) Component current consumption(Hardware mode, 4 Fans) Component current consumption(Hardware mode, 8 Fans) Component current consumption(Hardware mode, 12 Fans) 8-bit resolution Page 24 of 28 Document Number: 001-83020 Rev. *A PSoC® Creator™ Component Datasheet Fan Controller AC Specifications Parameter Min Typ Max Unit Firmware mode, 8-bit, 4 Fans – – 54 MHz Firmware mode, 8-bit, 8 Fans – – 46 MHz Firmware mode, 8-bit, 12 Fans – – 39 MHz Firmware mode, 8-bit, 16 Fans – – 28 MHz Firmware mode, 10-bit, 4 Fans – – 42 MHz Firmware mode, 10-bit, 8 Fans – – 42 MHz Firmware mode, 10-bit, 12 Fans – – 41 MHz Firmware mode, 10-bit, 16 Fans – – 37 MHz Hardware mode, 8-bit, 4 Fans – – 57 MHz Hardware mode, 8-bit, 8 Fans – – 57 MHz Hardware mode, 8-bit, 12 Fans – – 40 MHz Hardware mode, 10-bit, 4 Fans – – 50 MHz Hardware mode, 10-bit, 8 Fans – – 47 MHz ftach_clk Tachometer clock frequency – 500 – kHz Tach Resolution Tachometer counter resolution – 16 – ftach Tachometer Speed 500[5] – 2500 0 fpwm_clk Description Input clock frequency[4] Bits RP M 4. The values provide a maximum safe operating PWM frequency for the Fans. The component may run at higher clock frequencies, at which point you will need to validate the timing requirements with Static Timing Analysis results. 5.Speed less than the minimum will be interpreted as halted. Document Number: 001-83020 Rev. *A Page 25 of 28 PSoC® Creator™ Component Datasheet Fan Controller Component Changes This section lists the major changes in the component from the previous version. Version Description of Changes 2.20.a Minor datasheet edit. 2.20 Updated Side Effects section in description of FanController_GetFanSpeedStatus(), Reason for Changes / Impact FanController_GetFanStallStatus() and FanController_GetAlertSource() functions. Fixed an issue related to the alert pin, which did The alert signal was asserting high for a duration of not behave as described in the datasheet. one input clock cycle at each "eoc"; it was expected to go up until it was cleared by the FanController_GetFanSpeedStatus() or FanController_GetFanStallStatus() functions. Now, it has been adjusted to go up until it is cleared by the FanController_GetAlertSource(). Fixed a bug related to the component operation in Firmware Mode in which the component was configured to support 6-pole motors. The component didn't work for this configuration because of an error in the implementation of the component's state machine. Fixed a bug due to the customizer validating unused (hidden) component settings. Now, only visible row values in the fan table are checked for correctness. Fixed a bug due to an incorrect value for the initial duty cycle which was generated by the customizer. 2.10 Updated component characterization data. Added PSoC 5LP support 2.0 Added component characterization data. Changed Damping Factor behavior. In previous versions Damping Factor specified a delay between speed measurements of each fan and the value of delay wasn’t specified in any units. In this version, Damping Factor specifies a delay between start-to-start of speed measurements of all fans. In addition, this delay is now specified in seconds. Added new parameter Initial RPM to every fan in the configuration. This parameter specifies approximate speed of rotation of the specific fan at component start. In previous versions all fans were initialized with maximum speed. Added new feature of selecting the type of motors that are supported by the component. This parameter specifies the number of high – low pulses per fan revolution. 2 high-low pulses for4 pole motors, 3 high-low pulses - 6 pole motors. Page 26 of 28 Document Number: 001-83020 Rev. *A PSoC® Creator™ Component Datasheet Version 1.20 Description of Changes Fan Controller Reason for Changes / Impact Component symbol was extended with a functionality of adding external clock source to drive internal PWMs. This option is accessible in customizer's GUI. New component feature. Allows connection to an external clock. Based on the value of the source clock and the resolution of PWMs in the configuration it is possible to regulate the PWM Output Frequency. Added new feature, that is selectable in the customizer's GUI and used to display components inputs and output as a bus. Now the sets of tach1-tachN, fan1-fanN and bank1bankN connections can be shown as buses. This allows space to be saved on the schematic as this option reduces the size of component symbol. Added Keil function reentrancy support to the APIs. Add the capability for customers to specify any individual generated functions as reentrant. Removed obsolete function name FanController_OverrideClosedLoop(), which was a simple #define of FanController_OverrideHardwareControl(). As this was marked obsolete in previous versions, it is removed in this version. 1. Updated for compatibility with PSoC Creator v2.0 2. Re-classified as “Concept” component 3. SetDesiredSpeed() API modified for improved accuracy 1.10 1. SetDesiredSpeed() API corrected 2. Glitch filter added to tachometer inputs 3. Fan control terminology changed from Open/Closed loop to Firmware/Hardware control method 4. Symbol colors and size updated 5. Resource utilization updated (reduced) 6. References to power management APIs removed (not supported) 1.0 First release Document Number: 001-83020 Rev. *A Page 27 of 28 Fan Controller PSoC® Creator™ Component Datasheet © Cypress Semiconductor Corporation, 2012-2015. The information contained herein is subject to change without notice. Cypress Semiconductor Corporation assumes no responsibility for the use of any circuitry other than circuitry embodied in a Cypress product. Nor does it convey or imply any license under patent or other rights. Cypress products are not warranted nor intended to be used for medical, life support, life saving, critical control, or safety applications, unless pursuant to an express written agreement with Cypress. Furthermore, Cypress does not authorize its products for use as critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress products in life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges. PSoC® is a registered trademark, and PSoC Creator™ and Programmable System-on-Chip™ are trademarks of Cypress Semiconductor Corp. All other trademarks or registered trademarks referenced herein are property of the respective corporations. Any Source Code (software and/or firmware) is owned by Cypress Semiconductor Corporation (Cypress) and is protected by and subject to worldwide patent protection (United States and foreign), United States copyright laws and international treaty provisions. Cypress hereby grants to licensee a personal, non-exclusive, non-transferable license to copy, use, modify, create derivative works of, and compile the Cypress Source Code and derivative works for the sole purpose of creating custom software and or firmware in support of licensee product to be used only in conjunction with a Cypress integrated circuit as specified in the applicable agreement. Any reproduction, modification, translation, compilation, or representation of this Source Code except as specified above is prohibited without the express written permission of Cypress. Disclaimer: CYPRESS MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes without further notice to the materials described herein. Cypress does not assume any liability arising out of the application or use of any product or circuit described herein. Cypress does not authorize its products for use as critical components in lifesupport systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress’ product in a life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges. Use may be limited by and subject to the applicable Cypress software license agreement. Page 28 of 28 Document Number: 001-83020 Rev. *A