英飞凌TC3xx之一起认识DSADC系列(五)

英飞凌TC3xx之一起认识DSADC系列(五)

  • Limit Checking极限检查
    • 选择边界值
  • 安全特性
    • 片上监视信号
  • 生成服务请求
  • 对Resolver的支持
    • 旋转变压器系统概述
    • 载波信号生成
    • 返回信号同步
  • 应用注意事项
    • 时钟同步
    • 校准建议
    • 操作示例
    • 支持的工作范围
      • 准差分输入模式
    • 基本初始化序列
    • 睡眠模式下的模块处理
    • CH9 和 CH12 重叠


本文是EDSADC部分的最后一文。 在文中继续对EDSADC的这几个部分做详细介绍: 极限检查、安全特性、生成服务请求、对旋变的支持,以及EDSADC应用注意事项。

Limit Checking极限检查

比较器(comparator)通过将每个结果与两个可配置的参考值进行比较,来提供自动的limit checking,该功能可用于监控输入信号,并检测异常输入值。 用于limit checking的比较器可以生成单独的服务请求,这两个参考值定义在选择寄存器BOUNDSELx (x=0-13)中,并确定有效的结果值范围。结果值可以从主滤波器链路,或者从辅助滤波器链路中获取。 请参阅第 66 页的“辅助过滤器”。
英飞凌TC3xx之一起认识DSADC系列(五)_第1张图片
当以下的两个条件都成立时,结果值被视为在定义的范围内:

  • 值小于或等于选定的上限
  • 值大于或等于选定的下限

结果范围也可以分为两个区域:

  • 要选择下半部分作为有效频段,请将下限设置为最小值 (8000H),并将上限设置为最高预期值。
  • 要选择上部作为有效频段,请将上限设置为最大值 (7FFFH),并将下限设置为最低预期值。

限制检查器可以生成两种类型的输出:

  • 服务请求,可选择通过比较器进行限制

  • 范围信号,指示相对于定义限值的结果水平:

    • 信号 SAULx,指示结果何时高于上限
    • 信号 SWIBx,指示结果何时在定义的范围内
    • 信号 SBLLx,指示结果何时低于下限
  • 当新的转换结果可用时,可以生成警报事件。警报事件可以限制为,用户定义范围内或外的结果值(参见图 316)。

  • 此功能支持自动范围监控,并通过仅在某些条件下发出服务请求,来最大限度地减少 CPU 负载。 例如,可以监视输入值并且警报指示特定阈值。

  • 警报事件也可以被完全抑制,通过寄存器FCFGMx(x=0-13)中的位域SRGA和ESEL,来选择服务请求生成模式。范围信号(SAULx、SWIBx、SBLLx)的生成与服务请求无关。
    英飞凌TC3xx之一起认识DSADC系列(五)_第2张图片

选择边界值

  • 比较器的输入,可以是来自主 CIC 滤波器的结果值,也可以是来自于辅助 CIC 滤波器的结果值,由于这些过滤器会生成不同格式的结果值,因此相应的边界值也必须适合所选的格式。
  • 辅助 CIC 滤波器会以固定的 1Q15 格式生成结果。由于片上调制器的固有增益,满量程范围为 -22 757 至 +22 757,使用外部调制器时,满量程值取决于所用调制器的增益。
  • 对于主 CIC 滤波器会以用户可配置的格式生成结果,其中满量程值由位字段GAINCALx.CALTARGET 来定义。
  • 为了比较器能正确运行,边界值必须与所选滤波器的数据格式相关。

Note: 辅助过滤器路径中没有校准。 因此,偏移和增益误差必须由应用软件处理。校准后可以从寄存器GAINCALx (x=0-13) 和OFFCOMPx (x=0-13) 获得相应的值。


安全特性

大多数的模拟输入,都能既连接到 EVADC,也连接到EDSADC 通道,从而提供基本冗余。

片上监视信号

  • 有关 EDSADC 基本功能的信息,可以通过特殊的片上信号获得,该信号支持常见原因诊断。

  • 每个通道都可以输出,由电源管理系统 (PMS) 内的带隙生成的,参考电压的副本,可以通过 EVADC 的特定通道,测量所选的输出电压。

  • 监控信号的选择,通过寄存器 GLOBCFG 集中控制:

  • 位域 SVSIG 通过选择两个电压之一来启用监控功能

  • 位字段 SVCH 选择监控信号连接到公共输出的通道。
    英飞凌TC3xx之一起认识DSADC系列(五)_第3张图片
    测量这些电压可以实现两种测试功能:

  • 将结果与预期值进行比较 (RESULT = VTest / VAREF × 212),当 VAREF = 5.0V 且 VDDK = 1.2V 时,结果 = 3D7H

  • 比较所有通道的单独结果以发现偏差。


生成服务请求

  • EDSADC 可以激活服务请求输出信号,以发出中断、触发 DMA 通道或触发其他片上模块。 每个通道提供 2 条服务请求线:SRxM 和 SRxA。产品特定的附录详细介绍了可用的服务请求连接。

  • 每个服务请求输出可以被分配多个事件,服务请求可以由多种类型的事件生成:

    • 结果事件:指示生成了一个新的可用值。通常,
    • 告警事件:表示转换结果值在可编程值的范围内,它可以从后台任务中卸载 CPU/DMA,即只有在满足或超过指定的转换结果范围时,才会激活服务请求,服务请求可以通过 SRxA产生 。
    • 特殊事件:指示之前配置的功能的具体情况。
      • 时间戳触发事件可以生成服务请求,可以通过 SRxM或 SRxA(单独)发出。
      • 捕获信号延迟测量事件可以生成服务请求,可以通过 SRxA 发出。
  • 每个事件均由可由软件清除的专用标志指示。 如果针对某个事件启用了服务请求,则针对每个事件生成服务请求,而与相应事件指示标志的状态无关。 这确保了 EDSADC 事件的高效 DMA 处理(事件可以生成服务请求,而不需要清除指示标志)。

Note: 当滤波器链初始化时,即当通道启动 (CHxRUN = 1) 时、当积分窗口以 FCR = 0 启动时、或者当校准算法开始或结束时,事件标志 SDCVAL 被清除。当通道启动 (CHxRUN = 1) 时,事件标志 ALEVx、TSVAL 和 RESEVx 被清除。

Note: 以下寄存器为每个可用通道提供一组位。可用通道的数量取决于所选的设备类型。

对Resolver的支持

旋转变压器应用通过评估两个正交放置的线圈的信号来确定旋转角度, 这些线圈由第三个线圈的磁场激励。通过提供几乎完整的接口硬件(功率级除外)和预处理输入数据(整流、积分)以通过更高级别的软件算法优化评估,有多种功能可支持这些应用。

旋转变压器系统概述

  • EDSADC 可以使用两个输入通道读取两个返回信号,还可以生成激励正弦信号(载波)。
  • 它还提供同步逻辑来补偿生成的载波信号和接收到的位置信号之间的延迟。
  • 积分器级将基于载波的返回信号转换为基于位置的值(载波抵消)。
    英飞凌TC3xx之一起认识DSADC系列(五)_第4张图片

载波信号生成

载波信号发生器 (CG) 接收模块时钟信号并输出 PWM 信号,该信号在旋转变压器的励磁线圈中感应出正弦信号。 或者,它可以生成类似于三角形或方形信号的 PWM 模式(参见图 321)。 可以选择载波信号的极性。
英飞凌TC3xx之一起认识DSADC系列(五)_第5张图片
一个载波信号周期由 32 个步长组成。 每一步等于 32 个周期的 PWM 周期。
位反转生成模式增加了频谱,以产生更平滑的感应正弦信号。 这是通过在 PWM 周期的 32 个周期上分配 0 和 1 位来完成的。
生成的模式实际上是余弦信号,即它从最大输出值开始。 如果在生成载波信号之前将输出引脚拉高,则这是有利的。 在下拉的情况下,应选择反相输出信号。

Note: 所有配置在载波发生器启动后生效.

英飞凌TC3xx之一起认识DSADC系列(五)_第6张图片

Note: 载波信号周期内的当前位置由位字段STEPS、STEP 和STEP COUNT 指示。

返回信号同步

  • 在旋转变压器中,接收到的返回信号由载波信号感应,并且它们的幅度用与当前旋转变压器位置相对应的正弦和余弦幅度进行调制。 这些幅度是通过对载波信号周期内的返回信号进行积分来确定的。
  • 为了正确积分它们的幅度,必须对返回信号进行整流。 为此,载波发生器提供所生成的载波信号的符号信息(寄存器CGCFG中的SGNCG)。
  • 或者,可以使用外部载波信号发生器。 如果该发生器提供符号信号,则可以将其输入到引脚,然后用作外部载波符号信号。 如果没有可用的符号信号,则载波信号本身可以由另一个输入通道(寄存器RECTCFGx(x=0-13)中的SSCH)进行转换,然后将其符号信号用作备用载波符号信号。
  • 必须延迟接收信号的校正,以补偿通过系统(驱动器、旋转变压器线圈、电缆等)的往返延迟。 为了进行整流,接收到的值与延迟的载波符号信号(寄存器 RECTCFGx (x=0-13) 中的 SGND)相乘。
  • 这种同步是针对每个通道单独完成的,以实现每个信号的最大可能幅度。

Note: 整流单元是积分器stage的一部分。 因此,它仅在积分器处于活动状态时才处于活动状态。

  • 延迟是通过符号延迟计数器SDCOUNT 实现的。 SDCOUNT 在载波符号信号 (SGNCS) 的下降沿(即载波信号的正半波开始时)被清除并启动。 对滤波器链的 SDPOS 结果进行计数后,整流信号 (SGND) 也被清除,从现在开始指示正值。 对 SDNEG 值进行计数后,设置整流信号,指示负值(另请参见图 322)。
  • 比较值 SDPOS 和 SDNEG 由应用软件存储。 SDPOS 是解释旋转变压器信号往返延迟的延迟值。 当在相应通道中接收到第一个正结果(负结果之后)时,通过将当前计数器值捕获到位域 SDCAP 中来不断测量此延迟。 软件可以读取这些值并计算延迟值,例如 通过对一系列测量值进行平均来补偿噪声。
  • 负半波 (SGND = 0) 的延迟是通过添加载波信号半波的持续时间来确定的。 该值被写入位域 SDNEG。
  • 通过设置标志 SDCVAL 来指示新捕获的值。 当读取寄存器 CGSYNCx 时该标志被清除。
  • 捕获新值可以触发服务请求。 备用服务请求行用于此目的。
  • 该备用请求源由寄存器 FCFGMx (x=0-13) 中的位字段 SRGA 选择。

Note: 当过滤器链初始化时,位域SGND、SDCVAL、SDCAP和SDCOUNT被清除。

英飞凌TC3xx之一起认识DSADC系列(五)_第7张图片

Note: 每当过滤器链中出现新的结果值时,校正计数器就会更新,并将校正后的值转发到积分器。

应用注意事项

  • 对DSADC的控制大部分都可以通过编程来实现,它可以适配不同的应用,在操作期间只需要少量的初始化或者一些适当的处理。
  • 建议尽可能通过初始化进行选项配置,EDSADC的多种功能(例如功率控制或者校准)已经实现了自动化,因此操作过程中需要进行的处理非常少。
  • 具体可参见第 7 页“更改配置”部分中的其他提示。

时钟同步

  • 为了消除同时运行的 ADC 通道的干扰,转换器可以以同步方式运行,以便每个转换器都能达到最佳性能。 相位同步器分配时钟控制信号,转换器使用该信号来生成本地时钟信号。 参见第 31.4.1 节。
  • 复位后,时钟同步是激活的,EDSADC 必须设置相位同步器才能达到其记录的性能。

校准建议

  • 实际的校准算法是由硬件自动执行的,因此在启动算法之前只需要选择一些配置。
  • 自动校准算法针对 1:1 和 1:2 的增益系数执行。 如果选择系数 1:4,则对系数 1:2 进行校准。
  • 偏移校准的最佳模式取决于输入信号的特性。 高通滤波器可以自动消除差分输入信号的偏移电平。
  • 对于不规则输入信号或单端操作,必须禁用滤波器才能接收未受干扰的信号。

Note: 校准算法会补偿制造造成的公差,并将通道调整至选定的抽取率。 因此,建议在复位后至少执行一次该算法。

  • 在寄存器 GAINCALx (x=0-13) 的位域 CALTARGET 中,定义校准的预期满量程值(默认值 25 000)。
  • 通过设置寄存器 FCFGMx (x=0-13) 中的 CALIB 位来触发校准算法。
  • 校准算法的完成和状态由寄存器 FCNTCx (x=0-13) 中的位域 CAL 指示。

Note: 设置寄存器 FCFGMx (x=0-13) 中的位 AUTOCAL 以启用自动触发的校准序列。

操作示例

  • 数字滤波器提供了许多配置选项来控制其操作。
  • 自动校准算法将滤波器链路的整体增益系数标准化为 1.000,与其配置无关。 结果的满量程值适应(复位后25 000),该值代表输入电压为参考电压。
  • 通过为 CALTARGET 选择不同的值,可以实现不同的满量程值(请参见第 26 页的“过载、过载和溢出情况的处理”)。
  • 可用通带是配置的输出数据速率的分数:
    • 对于 10 … 100 kHz 范围内的通带,该分数为 1/3,
    • 对于 4 … <10 kHz 范围内的通带,该分数为 1/6。
  • 输出数据速率由调制器频率(fMOD)除以总过采样率(OSR)决定。

举例说明:

  • CIC 滤波器处于活动状态,过采样率为 64,FIR0/FIR1 处于活动状态(均为 2:1),积分器处于非活动状态,fMOD = 26.67 MHz:
  • 总过采样率为 64 × 2 × 2 = 256,输出数据速率为 26.67 MHz/ 256 = 104.2 kHz。

支持的工作范围

  • EDSADC 可根据应用要求配置为各种操作模式。 重点可以是输入阻抗、功耗或信噪比 SNR。
  • 配置的过采样率(或抽取率)OSR 定义了较宽范围内的SNR。 可达到的 SNR 受到片上调制器内的热噪声的限制。 - 因此,OSR 和 SNR 之间的关系在上部区域不再是线性的。
  • 下表列出了这些操作模式的一些属性。

NOTE: 要实现此表中给出的通带,必须启用两个 FIR 滤波器。

英飞凌TC3xx之一起认识DSADC系列(五)_第8张图片

  1. 这些典型值是指 5V 输入电压和开关电容器的典型值:
    IRMS = 5V × fMOD × 2 × CSW。 IRMS 定义了等效输入阻抗。
  2. Passband = fd / 6
  3. Passband = fd / 3
  4. 可达到的信噪比受到调制器内热噪声的限制。
  5. 利用这种配置,信噪比受到量化噪声的限制。
  6. 这些 OSR 引用了数据表值。

Note: 与通带频率 ≤ 10 kHz 的硬件特性相关,FIR1 必须以 1:1 的抽取率使用。

  • 外部传感器看到的等效输入阻抗取决于输入电流 IRMS
  • 输入电流与有效开关输入电容成正比,而有效开关输入电容本身取决于所选的增益系数。
    英飞凌TC3xx之一起认识DSADC系列(五)_第9张图片

准差分输入模式

  • 当 EDSADC 在单端模式下运行时,较小的输入电压范围会将可实现的 SNR 降低 6 dB。
  • 准差分输入模式是通过将未使用的输入线连接到共模电压而不是参考地来实现的。这将使结果值以零为中心。
  • 使用增益因子 2 可使结果值范围加倍(-满量程表示输入=接地,+满量程表示输入=参考)。
  • 在这种情况下,可实现的 SNR 仅降低了 3 dB。

基本初始化序列

  • 根据整体系统要求启用和配置相位同步器。
    CONVCTRL 章节中的“应用注意事项”部分对此进行了描述。
  • 启用 EDSADC 模块并准备运行

EDSADC_CLC = 0x00000000 ;Enable module EDSADC
EDSADC_GLOBCFG = 0x00000000 ;Use default: auto level, sync. operation, min. dithering
EDSADC_MODCFG0 = 0x80028000 ;Mod. frequency = 160 MHz / 8 = 20 MHz,
;enable differential input on channel 0-A (example)

EDSADC_DICFG0 = 0x84000000 ;Single-word read mode, no timestamp, no FIFO
EDSADC_GAINCTR0= 0x061B1193 ;Calibrate with OSR 512, calibration factor 1.0984
EDSADC_GAINCORR0=0x0011126E ;Set shifter for operation, operation factor 1.1519
EDSADC_FCFGC0 = 0x00310031 ;Select a data rate of 100 kHz (= 20 MHz / 200);200 =50[CIC] * 4[FIR]
**EDSADC_GLOBRC = 0x00010001 ;**Enable modulator and filter chain of channel 0 (example) WAIT ;Pause for wakeup time (approx. 20 μs);(other operations can be executed in the meantime)
**EDSADC_FCFGM0 = 0x90038003 ;**Enable service request and FIR filters,
;start calibration

  • 检索转换结果
    校准完成后,通道将开始转换输入信号。转换结果由服务请求指示,并可从 RESM0 读取。

睡眠模式下的模块处理

  • EDSADC 在睡眠模式下不会改变其工作模式。 在评估睡眠模式时(CLC.EDIS = 0,复位后默认),模块时钟根据睡眠模式请求停止。
  • 为了实现睡眠模式期间通常预期的功耗降低,应用程序需要在进入睡眠模式之前禁用 EDSADC 或其部分(根据需要)。

Note: 如果在睡眠模式期间打算进行任何活动,请确保忽略睡眠模式请求 (CLC.EDIS = 1),并确保在这种情况下未禁用相位同步器。

CH9 和 CH12 重叠

  • 在 TC3XX 系列的某些产品中,通道 CH9B 和 CH12A 的输入连接到同一对引脚。 两个通道均可用于转换来自这些引脚的输入信号。
  • 为了避免一个通道到另一通道的耦合效应,建议在给定时间仅启用一个输入路径。

Note: 当 CH12A 运行时,CH9A 可以在另一个输入上运行。

到这里,EDSADC的全部功能模块已详解完毕,后续会继续给出项目应用的实战经验。

你可能感兴趣的:(英飞凌AURIX™,c语言,mcu,单片机,嵌入式硬件,c++)