® PSoC Creator™ Component Datasheet 电压故障检测器(VFD) 2.20 特性 监控多达 32 个电压输入 用户定义的过压和欠压限制 简单地输出一个好或坏的状态结果 可编程的干扰波率器长度 该组件完全在硬件中执行,而无需从 PSoC 的 CPU 内核干预,导致固定 的已知故障检测延时。 概述 电压故障检测器组件提供的简单方法可以通过用户定义的过压和欠压限制来监控多达 32 个电压输 入,而不需要使用 ADC 或写入任何固件。对于每一个受监控的电压,组件简单地输出一个好或坏 的状态结果(“电源良好”或 pgood[x])。 该组件完全在硬件中执行,而无需从 PSoC 的 CPU 内核干预,导致固定的已知故障检测延时。 何时使用 VFD 电压故障检测器组件最多可连接 32 个电压输入,并通过与用户定义的欠压(UV)阈值和/或过压 (OV)阈值比较来确定这些电压的运行情况。 输入/输出接口 本节介绍了电压故障检测器的各种输入和输出接口。I/O 列表中的星号(*)表示,在 I/O 说明部分 中所列出的特定条件下,该 I/O 可能不可见。 时钟 — 输入 用于设置组件时基的时钟应设置为所需复用频率的 16 倍。当电压 DAC(VDAC)生成内部 OV 和 UV 阈值时, 复用频率主要通过 VDAC 更新速率和组件时钟的最大速率确定。当 VDAC 配置的范 围为 0 至 1 V 时,复用频率不可超过 250 kHz(组件时钟的最大频率为 4 MHz)。当 VDAC 配置 赛普拉斯半导体公司• 198 Champion Court • San Jose,CA 95134-1709 • 408-943-2600 Document Number: 001-95957 Rev. ** 修订日期 January 19, 2015 Voltage Fault Detector (VFD) ® PSoC Creator™ Component Datasheet 的范围为 0 至 4 V 时,复用频率不可超过 200 kHz(时钟频率 = 3.2 MHz)(包括 VDAC 更新速 率和 DMA 时间),以调整 DAC 和模拟建立时间。 当选择外部参考时,用户可将时基设置为满足系统要求的频率。在那种情况下,由于 VDAC 不存 在,因此不用考虑 VDAC 的建立时间。这时,在被监控的整个电压范围内,OV 和/或 UV 阈值也 不发生变化。因此,频率只限制于模拟电压的建立时间和组件状态机的最大工作频率。可支持的 最高频率为 4 MHz。 在这两种情况下,由于调用了 DMA 并且需要在选定的复用频率所决定的时间窗口内完成,因此该 组件本质上规定了 BUS_CLK 的最小频率。该组件的最小“BUS_CLK:时钟”比率为 2:1。 使能 (en)— 输入 该同步高电平有效的使能信号对状态机控制器的时钟输入进行门控。该输入的目的之一是支持 VDAC 校准。 过电压参考(ov_ref)— 模拟输入* 只有选择了 External Reference 参数,才会显示该模拟输入。在这种情况下,您将提供用于替换 内部 OV VDAC 的过电压阈值。例如,该电压阈值可能来自于 PSoC 引脚或通过 VDAC 的单独实 例。 欠压参考(uv_ref) — 模拟输入* 仅当选择了 External Reference 参数时,该模拟输入才被激活。在这种情况下,您将提供用于替 换内部 UV VDAC 的欠压阈值。例如,该电压阈值可能来自于 PSoC 引脚或通过 VDAC 的单独实 例。 电压(v[x]) — 模拟输入 这些模拟输入是该组件需要控制的电压。显示终端的数量取决于选中的电压数量(最多 32 个)。 复用的模拟输入(vin_muxed) — 模拟输出* 该模拟输出反映的是当前受控制的模拟信号(该信号连接着比较器模块)。当 Enable Vin Mux Output(使能 Vin Mux 输入)被选中时,将显示该模拟信号。 页 2/ 24 Document Number: 001-95957 Rev. ** ® PSoC Creator™ Component Datasheet Voltage Fault Detector (VFD) 周期结束(eoc) — 输出 每个电压输入与其参考阈值进行比较之后,该终端将变为高电平有效。它指示一个完整的比较周 期已经结束。 电源良好(pgood) — 输出 全局:单一的高电平有效信号,表示所有电压均位于该范围内 单独:一组高电平有效信号,与每一个电压输入相应的信号表示 v[x]位于范围内 过压 VDAC(ov_cal) – 模拟输出* 未选中 External reference 参数时,显示的是该模拟输出。这样做的目的是为了使能过压 VDAC 的校准。为了正确支持校准活动,要通过 API 调用或取消置位 en 终端来禁用组件。 欠压 VDAC (uv_cal) – 模拟输出* 未选中 External reference 参数时,显示该模拟输出。这样做的目的是为了使能欠压 VDAC 的校 准。为了正确支持校准活动,要通过 API 调用或取消置位 en 终端来禁用组件。 Document Number: 001-95957 Rev. ** 页 3 /24 ® PSoC Creator™ Component Datasheet Voltage Fault Detector (VFD) 原理图宏的信息 默认情况下,PSoC Creator 组件目录为电压故障检测器组件提供了三个原理图宏实现。这些宏包 含已连接到数字引脚组件的 VFD 组件。该原理图宏使用了配置为 8、16 或 32 电源转换器的电压 故障检测器组件,如下面框图所示: 8个轨道的电压故障检测器 16个轨道的电压故障检测器 32个轨道的电压故障检测器 根据为配置对话框中故障检测选择的电压数量,动态调整符号的大小。 页 4/ 24 Document Number: 001-95957 Rev. ** ® PSoC Creator™ Component Datasheet Voltage Fault Detector (VFD) 组件参数 将 VFD 拖入设计中,并双击以打开 Configure(配置)对话框。该对话框包含下列各选项卡和参 数。 General(常规)选项卡 Load configuration(加载配置) 从某个外部文件恢复所有定制器设置,包括表。键盘快捷方式 — [Ctrl] [L]。 Save configuration(保存配置) 存储到某个外部文件中的所有定制器设置,包括表。键盘快捷方式 — [Ctrl] [S]。 Number of Voltages(电压数量) 要监控的电压数量。范围为 1 至 32(默认值为 8)。 Glitch Filter Length(干扰滤波器长度) 可编程的干扰滤波器长度。绝对单位取决于参考时钟输入。范围为 1 至 255(默认值为 8)。 Compare Type(比较类型) 用于选择比较器类型的下拉列表。选项 = OV/UV、OV only(只有 OV)、UV only(只有 UV)( 默认情况为 OV/UV)。 Document Number: 001-95957 Rev. ** 页 5 /24 Voltage Fault Detector (VFD) ® PSoC Creator™ Component Datasheet Analog Bus(模拟总线) 用于选择路由选项的下拉列表。该参数将模拟路由限制放置于原理图中的模拟网上,此模拟路馈 送输入到比较器。选项 = AMUXBUS、AMXUBUSR、AMXUBUSL、 Unconstrained (默认= AMUXBUSR)。 根据 PhysicalPlacement 参数的设置而某些选项将变为灰色。 Physical Placement(物理位置) 用于选择位置选项的下拉列表。DAC 选择与 CMP 选择相关联。因此,DAC0 与 CMP0 相对应, 并以此类推。选项包括:Comp0、Comp1、Comp2、Comp3、Comp0+2、Comp1+3 (默认= Comp1+3)。 根据 CompareType 参数的设置而某些选项将变为灰色。 External reference(外部参考电压 ) 用于使能或禁用外部参考的复选框。(默认设置 = 取消选中)。 DAC range (DAC 范围) 用于选择内部 VDAC 范围的下拉列表。选项 = 1 V 或 4 V(默认 = 1 V)。当检查了 External Reference 参数,下拉列表将将显示为灰色。 Speed Mode(速度模式) 该下拉列表用于选择内部(各) VDAC 和(各)比较器的速度模式。如果选中了 External Reference 选项,那么该设置仅适用于(各)比较器。选项 = High speed(高速)、Low speed (低速)(默认 = High speed)。 如果需要尽可能短的故障检测响应时间,请选择 High speed(高速)模式。如果要功耗最小,则 选择“Low speed”(低速)模式。更多有关这些组件速度设置的信息,请参考相应的数据手册。 Enable Vin Mux Output(使能 Vin Mux 输出) 使能模拟复用器中的输出。如果使能,vin_muxed 的输出是可见的,并可用于监控当前的输入电 压。 页 6/ 24 Document Number: 001-95957 Rev. ** ® PSoC Creator™ Component Datasheet Voltage Fault Detector (VFD) Voltages(电压)选项卡 Import table(导入表) 将数据从文件导入表格单元格。支持“.csv”文件格式。键盘快捷方式 — [Ctrl]+[M]。 Export table(导出表) 将数据从表格单元格导出到文件。支持“.csv”文件格式。键盘快捷方式 — [Ctrl]+[R]。 Voltage name(电压名称) 文本字段,16 个字符。仅用于注释目的。默认情况下,此字段为空,无需任何值。 Nominal voltage(额定电压) 额定电压。仅用于注释目的。范围 = 0.01–65.54 V。 UV Fault threshold(欠压故障阈值) 欠压故障阈值。范围= 0.01 – 65.54 V OV Fault threshold(过压故障阈值) 过压故障阈值。范围= 0.01 – 65.54 V Document Number: 001-95957 Rev. ** 页 7 /24 ® PSoC Creator™ Component Datasheet Voltage Fault Detector (VFD) Input scaling factor(输入电压比例) 输入电压比例系数。指示适用于连接至 PSoC 之前的转换器输出电压的衰减量。 范围 = 0.001-1.000(默认值为 1.000)。 放置 模拟路由通道被默认设置为 AMUXBUSR,但是用户可覆盖它,以最大限度地提高路由的效率。 应用编程接口 通过应用编程接口(API)子程序,您可以使用软件对组件进行配置。下表列出并说明了每个函数 的接口。以下各节将更加详细地介绍每个函数。 默认情况下,PSoC Creator 将实例名称“VFD_1”分配给给定设计中的第一个组件实例。您可以 将其重新命名为遵循标识符语法规则的任何唯一值。该实例名称成为每个全局函数名称、变量和 常量符号的前缀。为便于阅读,下表中使用的实例名称为“VFD”。 函数 函数 说明 VFD_Start() 使能组件 VFD_Stop() 禁用组件 VFD_Init() 初始化组件 VFD_Enable() 使能硬件模块 VFD_GetOVUVFaultStatus() 返回每个电压输入的过/欠压故障状态 (如果“Compare Type”被设置为“OV/UV”) VFD_GetOVFaultStatus() 返回每个电压输入的过压故障状态 (如果“Compare Type”被设置为“OV only”) VFD_GetUVFaultStatus() 返回每个电压输入的欠压故障状态 (如果“Compare Type”被设置为“UV only”) VFD_SetUVFaultThreshold() 对指定电压输入设置欠压故障阈值 VFD_GetUVFaultThreshold() 对指定电压输入返回欠压故障阈值 VFD_SetOVFaultThreshold() 对指定电压输入设置过压故障阈值 VFD_GetOVFaultThreshold() 对指定电压输入返回欠压故障阈值 VFD_SetUVGlitchFilterLength() 设置UV干扰滤波器长度 页 8/ 24 Document Number: 001-95957 Rev. ** ® PSoC Creator™ Component Datasheet 函数 Voltage Fault Detector (VFD) 说明 VFD_GetUVGlitchFilterLength() 返回UV干扰滤波器长度 VFD_SetOVGlitchFilterLength() 设置OV干扰滤波器长度 VFD_GetOVGlitchFilterLength() 返回OV干扰滤波器长度 VFD_SetUVDac() 设置每个通道的UV DAC值 VFD_GetUVDac() 为指定电压输入获取UV DAC值 VFD_SetOVDac() 设置每个通道的OV DAC值 VFD_GetOVDac() 为指定电压输入获取过呀DAC值 VFD_Pause() 禁用比较器控制器状态机的时钟 VFD_Resume() 使能比较器控制器状态机的时钟 VFD_SetUVDacDirect() 允许手动控制欠压VDAC值 VFD_GetUVDacDirect() 返回当前UV VDAC值 VFD_SetOVDacDirect() 允许OV VDAC的手动控制 VFD_GetOVDacDirect() 返回当前OV VDAC VFD_ComparatorCal() 运行校准子程序 VFD_SetSpeed() 允许为VDAC(如果使能了“Internal Reference”选项)和比较器设置速度模 式。 void VFD_Start(void) 说明: 使能组件。如果之前未初始化组件,请调用Init() API。调用Enable() API。 参数: 无 返回值: 无 其他影响: 无 void VFD_Stop(void) 说明: 停止该组件。 参数: 无 返回值: 无 其他影响: pgood和pgood[x]输出被取消置位 Document Number: 001-95957 Rev. ** 页 9 /24 ® PSoC Creator™ Component Datasheet Voltage Fault Detector (VFD) void VFD_Init(void) 说明: 初始化或恢复自定义程序提供的默认VFD配置。初始化内部DMA通道。无需调用VFD_Init() 因为VFD_Start()子程序将调用该函数,这是开始组件操作的首选方法。 参数: 无 返回值: 无 其他影响: 无 void VFD_Enable(void) 说明: 使能组件内的硬件模块,并启动状态机。 参数: 无 返回值: 无 其他影响: 无 void VFD_GetOVUVFaultStatus(uint32 * ovStatus, uint32 * uvStatus) 说明: 为每个电压输入的参数分配它的过/欠压故障状态。这些位是粘滞位,并通过调用此API清除 它们。仅在将“Compare Type”设置为“OV/UV”时,此变量才可用。 参数: uint32 ovFaultStatus 位字段 过压故障状态 0 1 = 电压输入1上的过压故障条件 1 1 = 电压输入2上的过压故障条件 … … 31 1 = 电压输入32上的过压故障条件 uint32 uvFaultStatus 位字段 欠压故障状态 0 1 = 电压输入1上的欠压故障条件 1 1 = 电压输入2上的欠压故障条件 … … 31 1 = 电压输入32上的欠压故障条件 返回值: 无 其他影响: 调用该API可清除故障状况源粘滞位。如果该状况继续存在,则该位将在下次扫描后重新被 设定。 页 10/ 24 Document Number: 001-95957 Rev. ** ® PSoC Creator™ Component Datasheet Voltage Fault Detector (VFD) void VFD_GetOVFaultStatus(uint32 * ovStatus) 说明: 为每个电压输入的参数分配它的过压故障状态。这些位是粘滞位,并通过调用此API清除它 们。仅在将“Compare Type”设置为“OV only”时,此变量才可用。 参数: uint32 ovFaultStatus 位字段 过压故障状态 0 1 = 电压输入1上的过压故障条件 1 1 = 电压输入2上的过压故障条件 … … 31 1 = 电压输入32上的过压故障条件 返回值: 无 其他影响: 调用该API可清除故障状况源粘滞位。如果该状况继续存在,则该位将在下次扫描后重新被 设定。 void VFD_GetUVFaultStatus(uint32 * uvStatus) 说明: 为每个电压输入的参数分配它的欠压故障状态。这些位是粘滞位,并通过调用此API清除它 们。仅在将“Compare Type”设置为“UV only”时,此变量才可用。 参数: uint32 uvFaultStatus 位字段 欠压故障状态 0 1 = 电压输入1上的欠压故障条件 1 1 = 电压输入2上的欠压故障条件 … … 31 1 = 电压输入32上的欠压故障条件 返回值: 无 其他影响: 调用该API可清除故障状况源粘滞位。如果该状况继续存在,则该位将在下次扫描后重新被 设定。 Document Number: 001-95957 Rev. ** 页 11 /24 Voltage Fault Detector (VFD) ® PSoC Creator™ Component Datasheet void VFD_SetUVFaultThreshold(uint8 voltageNum, uint16 uvFaultThreshold) 说明: 对指定电压输入设置欠压故障阈值。将uvFaultThreshold参数转换为VDAC值,并写入驱动 UV DAC的DMA控制器使用的SRAM缓冲区中。 如果选中了“External reference”选项, 将不能使用该API。 参数: uint8 voltageNum:指定电压输入编号。有效范围:1至32 uint16 uvFaultThreshold:指定欠压故障阈值,其单位为mV。 有效范围:1至65,535 返回值: 无 其他影响: uvFaultThreshold值被取整,以满足VDAC数据寄存器格式要求。因此,实际阈值可能不同 于uvFaultThreshold。 uint16 VFD_GetUVFaultThreshold(uint8 voltageNum) 说明: 返回指定电压的欠压故障阈值。如果选中了“External reference”选项,那么不能使用该 API。 参数: uint8 voltageNum:指定电压输入编号。有效范围:1至32。 返回值: uint16 uvFaultThreshold: 欠压故障阈值,其单位为mV。有效范围:1至65,535 其他影响: 无 void VFD_SetOVFaultThreshold(uint8 voltageNum, uint16 ovFaultThreshold) 说明: 对指定电压输入设置过压故障阈值。将ovFaultThreshold参数转换为VDAC值,并写入驱动 过压DAC的DMA控制器使用的SRAM缓冲区中。如果选中了“External reference”选项, 则不能使用此API。 参数: uint8 voltageNum:指定电压输入编号。有效范围:1至32。 uint16 ovFaultThreshold:指定过压故障阈值,其单位为mV。 有效范围:1至65,535 返回值: 无 其他影响: ovFaultThreshold值被取整,以满足VDAC数据寄存器格式要求。因此,实际阈值可能不同 于ovFaultThreshold。 页 12/ 24 Document Number: 001-95957 Rev. ** ® PSoC Creator™ Component Datasheet Voltage Fault Detector (VFD) uint16 VFD_GetOVFaultThreshold(uint8 voltageNum) 说明: 针对指定电压输入返回过压故障阈值。如果选中了“External reference”选项,则不能使用 此API。 参数: uint8 voltageNum:指定电压输入编号。有效范围:1至32。 返回值: uint16 ovFaultThreshold:过压故障阈值,其单位为mV。有效范围:1至65,535。 其他影响: 无 void VFD_SetUVGlitchFilterLength(uint8 filterLength) 说明: 设置UV干扰滤波器长度 参数: uint8 filterLength:UV故障条件下的干扰滤波器长度。绝对时间单位取决于输入时钟频率。 有效范围:1至255。 返回值: 无 其他影响: 无 uint8 VFD_GetUVGlitchFilterLength(void) 说明: 返回欠压干扰滤波器长度 参数: 无 返回值: uint8 filterLength:UV故障条件下的干扰滤波器长度。绝对时间单位取决于输入时钟频率。 有效范围:1至255。 其他影响: 无 void VFD_SetOVGlitchFilterLength(uint8 filterLength) 说明: 设置过压干扰滤波器长度。 参数: uint8 filterLength:过压故障条件下的干扰滤波器长度。绝对时间单位取决于输入时钟频 率。有效范围:1至255。 返回值: 无 其他影响: 无 Document Number: 001-95957 Rev. ** 页 13 /24 Voltage Fault Detector (VFD) ® PSoC Creator™ Component Datasheet uint8 VFD_GetOVGlitchFilterLength(void) 说明: 返回过压干扰滤波器长度。 参数: 无 返回值: uint8 filterLength:OV故障条件下的干扰滤波器长度。绝对时间单位取决于输入时钟频率。 有效范围:1至255。 其他影响: 无 void VFD_SetUVDac(uint8 voltageNum, uint8 dacValue) 说明: 为指定电压输入设置UV DAC值。调用此API不会立即改变UV VDAC设置。相反,dacValue 被写入到控制指定电压输入的欠压 DAC上DMA控制器使用的SRAM缓冲区中。如果选中了 “External reference”选项,则不能使用此API。 参数: uint8 voltageNum:指定电压输入编号。有效范围:1至32。 uint8 dacValue:指定被写入到UV VDAC中的值。有效范围:1至255。 返回值: 无 其他影响: 无 uint8 VFD_GetUVDac(uint8 voltageNum) 说明: 返回当前由DMA控制器使用的dacValue。该DMA控制器控制指定电压输入的UV DAC值。如 果选中了“External reference”选项,则不能使用此API。 参数: uint8 voltageNum:指定电压输入编号。有效范围:1至32。 返回值: uint8 dacValue: 指定电压输入的UV DAC值。 其他影响: 无 void VFD_SetOVDac(uint8 voltageNum, uint8 dacValue) 说明: 调用此API不会立即改变 OV VDAC设置。相反,dacValue被写入到控制指定电压输入的OV DAC上DMA控制器使用的SRAM缓冲区中。如果选中了“External reference”选项,则不 能使用此API。 参数: uint8 voltageNum:指定电压输入编号。有效范围:1至32。 uint8 dacValue:指定被写入到OV VDAC中的值。有效范围:1至255。 返回值: 无 其他影响: 无 页 14/ 24 Document Number: 001-95957 Rev. ** ® PSoC Creator™ Component Datasheet Voltage Fault Detector (VFD) uint8 VFD_GetOVDac(uint8 voltageNum) 说明: 返回当前由DMA控制器使用的dacValue。该DMA控制器控制指定电压输入的OV DAC值。 如果选中了“External reference”选项,则不能使用此API。 参数: uint8 voltageNum:指定电压输入编号。有效范围:1至32。 返回值: uint8 dacValue: 指定电压输出的OV DAC值。 其他影响: 无 void VFD_Pause(void) 说明: 禁用比较器控制器状态机的时钟。注意:如果正在执行某个处理数据操作过程,调用该API 不 会 停 止 DMA 控 制 器 。 假 设 其 他 资 源 没 有 同 时 使 用 DMA 控 制 器 , DMA 大 约 需 要 20 个 BUS_CLK周期来完成。因此,如果调用这个 API的目的只是更改VDAC设置(例如:校 准),则在尝试直接访问VDAC之前,应提供足够的时间,以DMA控制器完成运行。 参数: 无 返回值: 无 其他影响: 停止故障检测状态机。并不立即停止DMA控制器。 void VFD_Resume(void) 说明: 使能比较器控制器状态机的时钟。 参数: 无 返回值: 无 其他影响: 重新启动故障检测逻辑。 void VFD_SetUVDacDirect(uint8 dacValue) 说明: 允许UV VDAC值的手动控制。将dacValue直接写到UV VDAC组件内。适用于UV VDAC校 准。注意:如果调用此API时,VFD组件正在运行,则状态机控制器将覆盖此API调用所设 置的UV VDAC值。如果需要手动控制UV VDAC,则要调用Pause API以停止状态机控制 器。如果选中了“External reference”选项,则不能使用此API。 参数: uint8 dacValue: 被直接写入至UV VDAC中的值。有效范围:1至255。 返回值: 无 其他影响: 调用此API可使比较器触发故障条件。为了防止发生这种情况,需要先调用VFD_Pause(), 然后才能调用此API。 Document Number: 001-95957 Rev. ** 页 15 /24 Voltage Fault Detector (VFD) ® PSoC Creator™ Component Datasheet uint8 VFD_GetUVDacDirect(void) 说明: 返回当前欠压VDAC。被返回的dacValue从欠压VDAC组件直接读取。适用于欠压VDAC校 准。注意:如果组件正在运行时调用此API,则无法确定哪个电压输入与已返回的UV VDAC 值相关。如果需要手动控制UV VDAC,则要调用Pause API以停止状态机控制器。如果选 中了“External reference”选项,则不能使用此API。 参数: 无 返回值: uint8 dacValue: 当前的欠压VDAC值。 其他影响: 无 void VFD_SetOVDacDirect(uint8 dacValue) 说明: 允许手动控制OV VDAC值。将dacValue直接写到OV VDAC组件内。适用于OV VDAC校 准。注意:如果调用此API时,VFD组件正在运行,则状态机控制器将覆盖此API调用所设 置的OV VDAC值。如果需要手动控制OV VDAC,则要调用Pause API以停止状态机控制 器。如果选中了“External reference”选项,则不能使用此API。 参数: uint8 dacValue: 直接写入到OV VDAC中的值。有效范围:1至255。 返回值: 无 其他影响: 调用此API可使比较器触发故障条件。为了防止发生这种情况,需要先调用VFD_Pause(), 然后才能调用此API。 uint8 VFD_GetOVDacDirect(void) 说明: 返回当前过压VDAC 被返回的dacValue从VDAC组件直接读取。它适用于过压VDAC校准。 注意:如果组件正在运行时调用此API,则无法确定哪个电压输入与已返回的OV VDAC值相 关。如果需要手动控制UV VDAC,则要调用Pause API以停止状态机控制器。如果选中了 “External reference”选项,则不能使用此API。 参数: 无 返回值: uint8 dacValue: 当前的过压VDAC值。 其他影响: 无 页 16/ 24 Document Number: 001-95957 Rev. ** ® PSoC Creator™ Component Datasheet Voltage Fault Detector (VFD) void VFD_ComparatorCal(uint8 compType) 说明: 通过短接所选比较器的各个输入来测量其偏移电压的校准子程序,并通过将结果写入CMP模 块的校准寄存器进行校准 参数: uint8 compType: 指定用于校准的比较器。有效范围: VFD_OV、VFD_UV。 返回值: 无 其他影响: 调用此API可使比较器触发故障条件。为了防止发生这种情况,需要先调用VFD_Pause(), 然后才能调用此API。 void VFD_SetSpeed(uint8 speedMode) 说明: 允许为VDAC(如果使能了“Internal Reference”选项)和比较器设置速度模式。 参数: uint8 speedMode:为(各)内部VDAC和(各)比较器指定速度模式。 有效值:VFD_HIGH_SPEED、VFD_LOW_SPEED 返回值: 无 其他影响: 无 全局变量 函数 说明 VFD_initOVFaultThreshold[VFD_NUMBER_OF_VOLTAGES] 包含所有电压的初始过压故障阈值的阵列 VFD_initUVFaultThreshold[VFD_NUMBER_OF_VOLTAGES] 包含所有电压的初始UV故障阈值的阵列 VFD_VoltageScale[VFD_NUMBER_OF_VOLTAGES] 包含所有电压比例系数的阵列 API 常量 名称 VFD_ NUMBER_OF_VOLTAGES Document Number: 001-95957 Rev. ** 说明 要监控的电压数量。范围 = 1-32。 页 17 /24 Voltage Fault Detector (VFD) ® PSoC Creator™ Component Datasheet MISRA 合规性 本节介绍了 MISRA-C:2004 合规性和本组件的偏差情况。定义了下面两种类型的偏差: 项目偏差 — 适用于所有 PSoC Creator 组件的偏差 特定偏差 — 仅适用于该组件的偏差 本节提供了有关组件特定偏差的信息。系统参考指南的“MISRA 合规性”章节中介绍了项目偏差 以及有关 MISRA 合规性验证环境的信息。 尚未根据 MISRA-C:2004 编码准则合规性,验证电压故障检测器组件。 此组件具有以下嵌入式组件:软件和硬件 AMUX、DMA。MISRA 合规性与特定偏差的相关信息, 请参见相应组件数据手册。 示例固件源代码 在“Find Example Project”对话框中,PSoC Creator 提供了大量的示例项目,包括原理图和示 例代码。要获取组件特定的示例,请打开器件目录中的对话框或原理图中的组件实例。要查看通 用示例,请打开“Start Page”或 File 菜单中的对话框。根据要求,可以通过使用对话框中的 Filter Options 选项来限定可选的项目列表。 有关更多信息,请参考 PSoC Creator 帮助中的 Find Example Project(查找示例项目)主题。 页 18/ 24 Document Number: 001-95957 Rev. ** ® PSoC Creator™ Component Datasheet Voltage Fault Detector (VFD) 功能说明 下图显示的是电压故障检测器的示意图。 图 1. 电压故障检测器的示意图 通过 vs[4:0]信号可将要测试的电压连接至模拟复用器。它们是来自递减计数器的模块,因此,电 压以相反的顺序被复用。各信号之间有一个死区时间,用以确保“先开后合”的连接。 选择下一个被监控的外部电压输入和新 OV/UV 阈值数据已被写入至 VDAC 中(如果“外部参考” 选项被禁用)后,首先会将最近比较器输出锁存到干扰滤波器内。更新 VDAC(如果“外部参 考”选项被禁用)或启动当前电压扫描过程中(如果“外部参考”选项被使能)的 9 个组件时钟 周期后才会锁存当前比较器的值。 vdac_wr 控制信号会先生成用于 DMA 下一个电压输入的 OV 和 UV 阈值进入 VDAC 中(如果“外 部参考”选项被禁用)。 最后生成 res_rd 控制信号,该信号用于切换干扰滤波器的上下文输入和输出 SRAM。后缀为 “_RD”的 DMA 控制器读取当前电压的干扰滤波器中的值,并将它写入 SRAM 中。后缀为 “_WR”的 DMA 控制器将在下一个电压的干扰滤波器上最后测量的结果从 SRAM 写回到干扰滤 波器内。 Document Number: 001-95957 Rev. ** 页 19 /24 ® PSoC Creator™ Component Datasheet Voltage Fault Detector (VFD) “干扰滤波器”是一个可编程的周期(干扰滤波器延迟)计数器。每当相关的比较器“电源良 好”输出正常时,它将复位为零。它主要是为防止在超出指定 OV/UV 限制的临时输入电压上的短 时脉冲生成故障条件。每当比较器输出不正常时,干扰滤波器内的计数器便开始递增。一旦达到 用户指定的干扰滤波器延迟值(即表示一个持久的电压超出了范围),干扰滤波器输出反映了电 源上的不正常状态。因此,干扰滤波器会立即传输可用值,但只在用户指定干扰滤波器的延迟到 期时,才会过滤掉非正常值。干扰滤波器输出将返回 bVoltageFaultDetector 组件。这些输出既被 锁存到 CPU 访问的状态寄存器,又被用于生成“pgood[x]”组件的“电源良好”输出。 当内部 VDAC 用于设置 OV/UV 阈值时,用户可选择 0-1 V 或 0-4 V 的电压范围。0-1 V 电压范围 的优点是 VDAC 更新频率(1 MHz)高于 0-4 V 电压范围的更新频率(250 kHz)。这样会使故障 检测时间更短,该特点在许多应用中起着关键的作用。在这两种情况下,需要调整所有要监控的 电压,以便在极端情况下能够满足选定的 VDAC 范围。即,任何给定电压的 OV 阈值必须处于 VDAC 最大值内。一般在指南中调整所有电压,以便额定电压值等于所选 VDAC 上限值的 85%。 假设 OV 阈值并未超出额定值的 110%。定制器和组件数据手册要提供比例因子的建议值,并执行 检查以确保用户的设置与硬件功能相匹配。 为了允许使用每个电压轨上的相同模拟引脚以进行电压测量和故障检测,需要一同使用软件模拟 复用器组件和 DMA 来提供通道选择功能。当不采用这个解决方案并针对通道选择目的使用硬件模 拟复用器组件和 UDB 计数器时,所有“模拟总线”选项均有效(除“Unconstrained”(无约 束)选项外)。 资源 电压故障检测器组件放置在整个 UDB 阵列中。该组件使用以下资源(对于'Compare Type'设置为 OV/UV)。 资源类型 配置 (电压的数量) 数据路径单元 宏单元 状态单元 控制单元 中断 DMA通道 8 1 58 2 3 10 – 16 1 58 4 3 10 – 24 1 75 6 3 10 – 32 1 93 8 3 10 – 页 20/ 24 Document Number: 001-95957 Rev. ** ® PSoC Creator™ Component Datasheet Voltage Fault Detector (VFD) API 存储器的使用情况 根据编译器、器件、所使用的 API 数量以及组件的配置不同,组件对存储资源的占用也不一样。 下表提供了在某种器件配置中所有 API 占用存储器的大小。 下表中的存储器大小是在将相应编译器设置为 Release(释放)模式并且优化选项为 Size 的情况 下测得的。有关特定的设计,可分析编译器生成的映射文件以确定存储器的使用情况。 PSoC 3(Keil_PK51) 配置 (电压数量) 闪存字节 SRAM字节 PSoC 5LP(GCC) 闪存字节 SRAM字节 8 4293 92 3578 94 16 4395 148 3658 150 24 4605 204 3738 206 32 4725 260 3798 262 直流和交流的电气特性 下面各值表示其预计性能,它们基于初始特性数据。 VFD 直流规范 组件的直流特性与 VDAC 和比较器组件直流特性相关。有关详细信息,请参考相应数据手册。 VFD 交流规范 参数 CLKFreq TFaultDet CMPTResp 说明 条件 最小值 典型值 最大值 单位 内部DAC,1 V范围 _ – 4 MHz 内部DAC,4 V范围 _ _ 3.2 MHz 外部参考 _ – 4 MHz 电压故障检测时间 1 V DAC范围 1.8 2 2.2 μs (每个轨道) 4 V DAC范围 4.5 5 5.5 μs 30 75 110 ns 工作频率 比较器响应时间 Document Number: 001-95957 Rev. ** 页 21 /24 ® PSoC Creator™ Component Datasheet Voltage Fault Detector (VFD) 组件勘误表 本节列出了组件的已知问题。 赛普拉斯ID 组件版本 问题 解决方案 152757 全部 当组件被暂停,然后被恢复时,负责选择输入电压 当启动组件时,不可通过EN引脚 和配置过压和欠压阈值的控制逻辑可以不同步。这 禁 用 它 或 不 可 通 过 VFD_Pause() 适用于VFD_Pause()和VFD_Resume()函数以及更 函数暂停它。 改组件“EN”终端提供的值。 159310 全部 通过读取PGOOD和过压(OV)状态寄存器确定电 压故障检测器的故障状态。过压状态寄存器中的各 位是粘滞位,并用于返回故障状态的API不正确清除 粘滞位。因此,会导致一个问题表现下面两个情 况: 当 使 用 GetOVUVFaultStatus() 或 GetOVFaultStatus() API检查故障 状态时,两次调用相应的函数, 并使用第二次调用函数返回的结 果。 1. 如果在已发生过压故障的轨道上发生欠压故 障,GetOVUVFaultStatus()函数可能不正确报 告过压故障,并不报告欠压故障。 2. 使用GetOVUVFaultStatus()或 GetOVFaultStatus() API时,返回的故障数据 可包含失效故障数据,用以表示未经过此故障 条件的轨道的OV故障。 159749 全部 电压故障检测器定制器中的General选项卡中,在 “Glitch Filter Length”选择旁边显示故障响应时 间。计算的时间只包括与干扰滤波器相关联的延 迟,不包括检测故障的最终扫描的延迟。 191257 2.20 该组件的版本已被修改,但没有更改PSoC Creator 没有解决方案。您必须将该组件 3.0 SP1中的版本编号。更多有关信息,请参见基础 更新为最新版本。 知 识 文 章 KBA94159 ( 网 页 地 址 : www.cypress.com/go/kba94159)。 页 22/ 24 为了更准确地确定故障响应时 间,获取在定制器中提供的编 号,并向那个值添加一个额外周 期。 Document Number: 001-95957 Rev. ** ® PSoC Creator™ Component Datasheet Voltage Fault Detector (VFD) 组件更改 本节列出了该组件各版本中的主要更改内容。 版本 2.30 更新内容 更改/影响原因 纠正了PSoC Creator 3.0 SP1中组件更改 纠正了组件勘误表 — 赛普拉斯ID 191257。 内容。 2.20.b 纠正了Configure对话框中对过压和欠压故 组件允许在Configure对话框中输入超出过压和欠压故障阈值 障阈值参数的验证。 范围。 更新并纠正了数据手册。 2.20.a 添加了“组件勘误表”章节 列出组件的已知问题。 将最大时钟速度从12 MHz降低为4 MHz。 系统的使用情况显示了4 MHz是组件时钟的最大且可靠的工 作速度。 2.20 添 加 了 vin_muxed 输 出 。 添 加 了 更新组件的要求。纠正了实现中DMA通道的数量。 VFD_SetSpeed() API。 2.10 将组件原理图中的所有组件更新为最新版 本。 添加了MISRA合规性章节。 2.0 此组件未进行MISRA合规性验证。 添加了PSoC 5LP器件的支持。 GetOVFaultStatus() 和 GetOVFaultStatus() API 与 v1_0 不 兼 添加了GetOVUVFaultStatus() API。更改 容。 了 GetOVFaultStatus() 和 GetOVFaultStatus() API的说明。 更新了组件定制器中“General”选项卡 的屏幕截图。 添加了速度模式参数的说明。 向“模拟总线”添加了‘AMUXBUS’选 项。 对“全局变量”部分添加了以下全局数 组: VFD_initOVFaultThreshold[]、 VFD_initUVFaultThreshold[]、 VFD_VoltageScale[]。 添加了软件模拟复用器功能的说明。 更新了资源使用表。 对数据手册进行了少量编辑。 1.0 第一版 Document Number: 001-95957 Rev. ** 页 23 /24 Voltage Fault Detector (VFD) ® PSoC Creator™ Component Datasheet ©赛普拉斯半导体公司,2014-2015。此处,所包含的信息可能会随时更改,恕不另行通知。除赛普拉斯产品内嵌的电路外,赛普拉斯半导体公司不对任何其他电路的使用承担任何责任。也不会根 据专利权或其他权利以明示或暗示的方式授予任何许可。除非与赛普拉斯签订了明确的书面协议,否则赛普拉斯产品不保证产品能够用于或适用于医疗、生命支持、救生、关键控制或安全应用领 域。此外,对于可能发生运转异常和故障并对用户造成严重伤害的生命支持系统,赛普拉斯不授权将其产品用作此类系统的关键组件。若将赛普拉斯产品用于生命支持系统,则表示制造商将承担 因此类使用而招致的所有风险,并确保赛普拉斯免于因此而受到任何指控。 PSoC®是赛普拉斯半导体公司的注册商标,PSoC Creator™和 Programmable System-on-Chip™是赛普拉斯半导体公司的商标。该处引用的所有其它商标或注册商标归其各自所有者所有。 所有源代码(软件和/或固件)均归赛普拉斯半导体公司(赛普拉斯)所有,并受全球专利法规(美国和美国以外的专利法规)、美国版权法以及国际条约规定的保护和约束。赛普拉斯据此向获许 可者授予适用于个人的、非独占性、不可转让的许可,用以复制、使用、修改、创建赛普拉斯源代码的派生作品、编译赛普拉斯源代码和派生作品,并且其目的只能是创建自定义软件和/或固件, 以支持获许可者仅将其获得的产品依照适用协议规定的方式与赛普拉斯集成电路配合使用。除上述指定的用途外,未经赛普拉斯明确的书面许可,不得对此类源代码进行任何复制、修改、转换、 编译或演示。 免责声明:赛普拉斯不针对此材料提供任何类型的明示或暗示保证,包括(但不仅限于)针对特定用途的适销性和适用性的暗示保证。赛普拉斯保留在不做出通知的情况下对此处所述材料进行更 改的权利。赛普拉斯不对此处所述之任何产品或电路的应用或使用承担任何责任。对于合理预计可能发生运转异常和故障,并对用户造成严重伤害的生命支持系统,赛普拉斯不授权将其产品用作 此类系统的关键组件。若将赛普拉斯产品用于生命支持系统中,则表示制造商将承担因此类使用而招致的所有风险,并确保赛普拉斯免于因此而受到任何指控。 产品使用可能受适用于赛普拉斯软件许可协议的限制。 页 24/ 24 Document Number: 001-95957 Rev. **