PSoC® Creator™ Component Datasheet PSoC 4 Voltage Comparator (Comp) 1.0 Features Low input offset User controlled offset calibration Multiple speed modes Low-power mode Output routable to digital logic blocks or pins Selectable output polarity General Description The Voltage Comparator component gives you a hardware solution to compare two analog input voltages. You sample the output in software or routed to a digital component. There are three speed levels to allow you to optimize for speed or power consumption. You can also connect a reference or external voltage to either input. The input offset is designed to be less than 1 mV over temperature and voltage. The hysteresis is selectable between 10 mV and no hysteresis. When to Use theComparator The Comparator gives you a fast comparison between two voltages, compared to using an ADC. Although you can use an ADC with software to compare multiple voltage levels, applications requiring fast response or little software intervention are good candidates for this comparator. Some example applications include CapSense®, power supplies or simple translation from an analog level to a digital signal. A common configuration is to create an adjustable comparator by connecting a voltage DAC to the negative input terminal. CypressSemiconductorCorporation Document Number: 001-86291 Rev. *A • 198 Champion Court • SanJose, CA 95134-1709 • 408-943-2600 Revised March 28, 2016 PSoC 4 Voltage Comparator (Comp) PSoC® Creator™ Component Datasheet Input/output Connections This section describes the various input and output connections for the Comparator. Positive Input–Analog Input This input is usually connected to the voltage that is being compared. This input can be routed from a GPIO or from an internal source. Negative Input– Analog Input This input is usually connected to the reference voltage. This input can be routed from a GPIO or from an internal source. Comparator Out–output This is the digital comparison output. For a non-inverting configuration, this output goes high when the positive input voltage is greater than the negative input voltage. If the polarity is set to inverting, the output goes high when the negative input voltage is greater than the positive input voltage. The inverting configuration is implemented using an inverter in the UDB blocks and therefore requires a device that has UDB resources. The output can be routed to other component digital inputs such as interrupts, timers, etc. The symbol for this component is annotated to denote the selection of hysteresis or inversion of the output. Page 2 of 12 Document Number: 001-86291 Rev. *A PSoC® Creator™ Component Datasheet PSoC 4 Voltage Comparator (Comp) Component Parameters Drag a Comparator onto your design and double click it to open the Configure dialog, as shown in Figure 1. Figure 1. Configure Dialog The component has the following parameters. Document Number: 001-86291 Rev. *A Page 3 of 12 PSoC 4 Voltage Comparator (Comp) PSoC® Creator™ Component Datasheet Hysteresis This parameter gives you the ability to add approximately 10 mV of hysteresis to the Comparator. This helps to make certain that slowly moving voltages or slightly noisy voltages do not cause the output to oscillate when the two input voltages are nearly equal. Hysteresis Disabled Hysteresis Enabled Speed/Power This parameter provides a way for the user to optimize speed verses power consumption. The Power parameter allows you to select the power level: High Power, Medium Power, and Low Power. Polarity This parameter allows you to invert the output. This is useful for peripherals that require an inverted signal from the Comparator. The sampled signal state returned by the software API and the output seen by the power manager (see the System Reference Guide section on Alt Active and Sleep) is not affected by this parameter. Note Inversion logic for the comparator is implemented using UDB resources. Placement Each Comparator is directly connected to specific GPIOs for its inputs along with being connected to the internal fabric. The output connection is routed to the digital fabric. Refer to the device datasheet for the part being used for the specific physical pin connections. Resources The Comparator uses one of the opamp (Constant Time Block – mini (CTBm)) blocks in PSoC 4. If the inverting output option is chosen a single macrocell in the UDB array is also used. Page 4 of 12 Document Number: 001-86291 Rev. *A PSoC® Creator™ Component Datasheet PSoC 4 Voltage Comparator (Comp) Application Programming Interface Application Programming Interface (API) routines allow you to configure the component using software. This table lists and describes the interface to each function. The following sections cover each function in more detail. By default, PSoC Creator assigns the instance name "Comp_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 "Comp" Functions Function Description Comp_Init() Initializes or restores the component according to the customizer Configure dialog settings. Comp_Enable() Activates the hardware and begins component operation. Comp_Start() Performs all of the required initialization for the component and enables power to the block. Comp_Stop() Turns off the Comparator block. Comp_GetCompare() Returns compare result. Comp_SetSpeed() Sets the power and speed to one of three settings; LOWSPEED, MEDSPEED, HIGHSPEED. Comp_ZeroCal() Performs custom calibration of the input offset to minimize error for a specific set of conditions. Comp_LoadTrim() This function writes a value into the comparator trim register. Comp_Sleep() This is the preferred API to prepare the component for sleep. Comp_Wakeup() This is the preferred API to restore the component to the state when Comp_Sleep() was called. Comp_SaveConfig() Saves the configuration of the component. Comp_RestoreConfig() Restores the configuration of the component. Document Number: 001-86291 Rev. *A Page 5 of 12 PSoC 4 Voltage Comparator (Comp) PSoC® Creator™ Component Datasheet Global Variables Function Description Comp_initVar() Indicates whether or not the Comparator has been initialized. The variable is initialized to 0 and set to 1 the first time Comp_Start() is called. This allows the component to restart without reinitialization after the first call to the Comp_Start() routine. If reinitialization of the component is required, call Comp_Init() before calling Comp_Start(). Alternatively, the Comparator can be reinitialized by calling the Comp_Init() and Comp_Enable() functions void Comp_Init(void) Description: Initializes or restores the component according to the customizer Configure dialog settings. It is not necessary to call Comp_Init() because the Comp_Start() API calls this function and is the preferred method to begin component operation. Parameters: None Return Value: None Side Effects: All registers will be set to values according to the customizer Configure dialog. void Comp_Enable(void) Description: Activates the hardware and begins component operation. It is not necessary to call Comp_Enable() because the Comp_Start() API calls this function, which is the preferred method to begin component operation. Parameters: None Return Value: None Side Effects: None void Comp_Start(void) Description: Performs all of the required initialization for the component and enables power to the block. The first time the routine is executed, the power level, and hysteresis are set. When called to restart the comparator following a Comp_Stop() call, the current component parameter settings are retained. Parameters: None Return Value: None Side Effects: None Page 6 of 12 Document Number: 001-86291 Rev. *A PSoC® Creator™ Component Datasheet PSoC 4 Voltage Comparator (Comp) void Comp_Stop(void) Description: Turn off the Comparator block. Parameters: None Return Value: None Side Effects: Does not affect Comparator modes or power settings uint32 Comp_GetCompare(void) Description: This function returns a nonzero value when the voltage connected to the positive input is greater than the negative input voltage. This value is not affected by the Polarity parameter. This value always reflects a non-inverted stateconfiguration. Parameters: None Return Value: uint32: Comparator output state. Nonzero value when the positive input voltage is greater than the negative input voltage; otherwise, the return value is zero. Side Effects: None void Comp_SetSpeed(uint32 speed) Description: Sets the power and speed to one of three settings; slow, medium, or fast. Parameters: (uint32) speed:Comp_SLOWSPEED, Comp_MEDSPEED, Comp_HIGHSPEED Return Value: None Side Effects: None uint32 Comp_ZeroCal(void) Description: Performs custom calibration of the input offset to minimize error for a specific set of conditions: comparator reference voltage, supply voltage, and operating temperature. A reference voltage in the range at which the comparator will be used must be applied to the Negative and Positive inputs of the comparator while the offset calibration is performed. This can be done external to the device or by using an internal analog mux on the positive input that selects between the positive input signal for normal operation and the negative input signal for calibration. Parameters: None Return Value: uint32: The value from the comparator trim register after the offset calibration is complete. This value has the same format as the input parameter for the Comp_LoadTrim() API routine. Side Effects: During the calibration procedure, the comparator output may behave erratically. The comparator output should be ignored during calibration. Document Number: 001-86291 Rev. *A Page 7 of 12 PSoC 4 Voltage Comparator (Comp) PSoC® Creator™ Component Datasheet void Comp_LoadTrim(uint32 trimVal) Description: This function writes a value into the comparator offset trim register. Parameters: uint32 trimVal: Value to be stored in the comparator offset trim register. This value has the same format as the parameter returned by the Comp_ZeroCal() API routine. Return Value: None Side Effects: None void Comp_Sleep(void) Description: This is the preferred API to prepare the component for sleep. The Comp_Sleep() API saves the current component state. Then it calls the Comp_Stop() function and calls Comp_SaveConfig() to save the hardware configuration. Call the Comp_Sleep() function before calling the CySysPmDeepSleep() or the CySysPmHibernate() functions. Parameters: None Return Value: None Side Effects: None void Comp_Wakeup(void) Description: This is the preferred API to restore the component to the state when Comp_Sleep() was called. The Comp_Wakeup() function calls the Comp_RestoreConfig() function to restore the configuration. If the component was enabled before the Comp_Sleep() function was called, the Comp_Wakeup() function will also re-enable the component. Parameters: None Return Value: None Side Effects: Calling the Comp_Wakeup() function without first calling the Comp_Sleep() or Comp_SaveConfig() function may produce unexpected behavior. void Comp_SaveConfig(void) Description: This function saves the component configuration and non-retention registers. This function is called by the Comp_Sleep() function. Parameters: None Return Value: None Side Effects: None Page 8 of 12 Document Number: 001-86291 Rev. *A PSoC® Creator™ Component Datasheet PSoC 4 Voltage Comparator (Comp) void Comp_RestoreConfig(void) Description: This function restores the component configuration and non-retention registers. This function is called by the Comp_Wakeup() function. Parameters: None Return Value: None Side Effects: None MISRA Compliance This section describes the MISRA-C:2004 compliance and deviations for the component. There are two types of deviations defined: project deviations – deviations that are applicable for all PSoC Creator components and specific deviations – deviations that are applicable only for this component. This section provides information on component specific deviations. The project deviations are described in the MISRA Compliance section of the System Reference Guide along with information on the MISRA compliance verification environment. The Comparator component does not have any specific deviations. 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. Functional Description The PSoC 4 Comparator component uses the opamp in the CTBm configured as a comparator. The CTBm supports 3 power choices that can be used to balance the response rate of the comparator with the power usage. Document Number: 001-86291 Rev. *A Page 9 of 12 PSoC® Creator™ Component Datasheet PSoC 4 Voltage Comparator (Comp) Block Diagram and Configuration The component uses cy_psoc4_abuf primitive with the optional inverted output implemented using UDB resources. Registers See the chip Technical Reference Manual (TRM) for more information about registers. API Memory Usage The component memory usage varies significantly, depending on the compiler, device, number of APIs used and component configuration. This table shows the memory usage for all APIs available in a given component configuration. The measurements were 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. PSoC 4 (GCC) Configuration Default Page 10 of 12 Flash SRAM Bytes Bytes 280 8 Document Number: 001-86291 Rev. *A PSoC® Creator™ Component Datasheet PSoC 4 Voltage Comparator (Comp) 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. Comp DC Specifications Parameter Description Min Typ Max Units Conditions IDD Opamp Block current. No load. – – – – IDD_HI Power = high – 1000 1300 µA IDD_MED Power = medium – 320 500 µA IDD_LOW Power = low – 250 350 µA VIN Charge pump on, VDDA 2.7 V –0.05 – VDDA – 0.2 V VCM Charge pump on, VDDA 2.7 V –0.05 – VDDA – 0.2 V VOS_TR Offset voltage, trimmed 1 ±0.5 1 mV High mode VOS_TR Offset voltage, trimmed – ±1 – mV Medium mode VOS_TR Offset voltage, trimmed – ±2 – mV Low mode VOS_DR_TR Offset voltage drift, trimmed –10 ±3 10 µV/C High mode VOS_DR_TR Offset voltage drift, trimmed – ±10 – µV/C Medium mode VOS_DR_TR Offset voltage drift, trimmed – ±10 – µV/C Low mode CMRR DC 70 80 – dB Vhyst_op Hysteresis – 10 – mV VDDD = 3.6 V Comp AC Specifications Parameter Description Min Typ Max Units Comp_mode Comparator mode; 50 mV drive, Trise = Tfall (approx.) – – – TPD1 Response time; power = high – 150 – nsec TPD2 Response time; power = medium – 400 – nsec TPD3 Response time; power = low – 1000 – nsec T_op_wake From disable to enable, no external RC dominating – 300 – µSec Document Number: 001-86291 Rev. *A Conditions Page 11 of 12 PSoC 4 Voltage Comparator (Comp) PSoC® Creator™ Component Datasheet Component Changes This section lists the major changes in the component from the previous version. Version Description of Changes 1.0.a Minor datasheet edit. 1.0 New Component Reason for Changes / Impact © Cypress Semiconductor Corporation, 2013-2016. 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 12 of 12 Document Number: 001-86291 Rev. *A