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

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

  • 滤波器链路(第二部分)
    • 积分器级
    • 启动积分窗口
    • 执行积分的周期
    • 停止积分窗口
    • 积分器数据输出格式
    • 组延迟和稳定时间
    • 辅助滤波器
    • 时间戳支持
    • 转换结果处理
      • 过滤和后处理
      • 转换结果的存储
      • FIFO控制
      • 无FIFO的结果处理
      • 通过FIFO的处理结果
      • 结果服务请求生成和读取排序
      • 硬件数据接口

本文继续详细说明滤波器链路得配置及应用。

滤波器链路(第二部分)

在这个部分里包括对几下几方面的详细说明:

  • 积分器级
  • 组延迟和稳定时间
  • 辅助滤波器
  • 时间戳支持
  • 转换结果处理

积分器级

  • 积分器对在积分窗口期间生成的结果值进行积分,以构建最终结果值,积分窗口宽度由添加的结果值的数量确定,积分器窗口可以由内部或外部信号触发启动也就是说,积分窗口的宽度可以这样来确定,信号触发启动时刻开始,然后通过计数器去数积分数据的个数,达到配置的数目后,则关闭积分窗口
  • 信号触发之后(检测到ITR0A信号边沿),以及积分窗口启动之前(根据NVALDIS配置决定舍弃的值的数量,如果设置为0,则立即启动积分窗口),可以自动丢弃可配置数量的值(NVALINT配置了样本数为0x21,表示有34个样本被积分。REPVAL配置为4,表示重复4个积分周期后关闭积分窗口。ISC配置为25:9,表示将积分结果值IIVAL的第9bits到第25bits的数据作为结果给出)。 这样可以将积分窗口精确定位到滤波器稳定的时间内,或者待测量信号没有系统产生的噪声的时间范围内。
  • 积分可用于测量在信号波形中指定测量位置,并且流经分流电阻器的电流。它还可以消除旋转变压器应用中的载波信号分量。 在这种情况下,可以对要积分的值进行整流,以产生最大幅度的接收器信号。 载波信号(由片上载波发生器产生)和接收到的位置信号之间的延迟可以被自动补偿。 另请参阅第 31.12 节。
    英飞凌TC3xx之一起认识DSADC系列(四)_第1张图片

启动积分窗口

当位 INTEN 变为1时,积分窗口开始启动,REPCNT和NVALCNT在配置的区间内跳转:

  • 软件控制模式:
    通过设置位域 ITRMODE = 11B ,选择软件控制的积分模式。
  • 触发控制模式:
    选择触发控制积分模式(ITRMODE = 01B 或 10B),并在配置的触发输入处生成选定的触发沿。
  • 外部积分触发信号,由寄存器 DICFGx (x=0-13) 中的位域 TRSEL 选择,位字段 ITRMODE 选择所选信号的转换,以生成触发事件。 启用触发源前,请先选择触发源。
  • 当积分窗口启动(INTEN 变为 1)时,滤波器链路重新启动(FRC = 0),即 CIC/FIR 滤波器和积分器被清零,并且 CIC 滤波器的抽取计数器重新启动,即加载其起始值( 参见第 31.5.1 节), 这确保了积分序列开始的确定性。
  • 保持滤波器链路的运行 (FRC = 1), 可避免出现第一个有效的结果值之前的组延迟。 在这种情况下,积分窗口开始后和第一个结果值之间的延迟,取决于滤波器链路的当前状态。
  • 此后积分计数器开始计数。在个 值后,计数器复位并启动积分器(如果 NVALDIS 为零,则立即开始积分)。

执行积分的周期

在积分周期<NVALINT+1> 之内,输入值被积分,之后,积分结果被存储在结果寄存器中,并且积分器和计数器被清零。 如果位 INTEN = 1,则开始下一个积分周期。

停止积分窗口

INTEN 位变为 0 时,积分窗口停止:

  • 软件控制模式:
    通过设置位字段 ITRMODE = 00B 禁用软件控制的积分模式
  • 触发控制模式:
    • 内部控制的积分结束(IWS = 0,internal,参见图 309 的上半部分):
      个积分周期后,INTEN 被清除,积分窗口在 ( × ) 个输入值后关闭。

      举个例子,REPVAL=4, NVALINT=0x21,所以积分窗口在5*34=170个输入之后关闭。

    • 外部控制的集成结束(IWS = 1,external,参见图 309 的下半部分):
      在配置的触发输入处生成选定的反向触发边沿(ITRMODE = 01B 或 10B)

    • 软件也可以通过设置位域 ITRMODE = 00B 来停止积分

    • 积分停止后,可以从寄存器 IIVALx (x=0-13) 中读取当前积分值。

积分器数据输出格式

  • 由于积分器是对一系列结果值进行积分,因此其输出的幅度,根据所选积分间隔的大小而增加。
  • 数据移位器(由位域 ISC 控制)对此进行了 2N 间隔的补偿。 如果选择了 2N 以外的间隔,那么结果值的大小将相应减小。

组延迟和稳定时间

  • 进入数字滤波器的数据,需要经过一定数量的滤波器时钟后,才能出现在滤波器的输出处,并可供系统使用。 当数字滤波器链处于稳定状态时,相应的延迟由组延迟定义。
  • 有效的组延迟取决于滤波器链的配置。表 287 总结了过滤器链的元件引起的延迟。“N”表示选择的过采样率(抽取CIC 滤波器的系数)。延迟以调制器时钟周期的形式列出。
    英飞凌TC3xx之一起认识DSADC系列(四)_第2张图片
  • 一旦数字滤波器链稳定下来,就达到了稳态条件。
  • 有效的稳定时间取决于过滤器链的配置。
  • 由于滤波器链的级联拓扑,配置特定的稳定时间由终端滤波器链元件的阶跃响应定义。
  • 一般来说,通带频率 (fPB) 和稳定时间等滤波器链特性会根据数据输出速率 (fD) 进行归一化。
  • 数据输出速率 (fD) 取决于所选的 CIC 滤波器过采样率和启用的滤波器链元件。
    表 288 总结了不同滤波器链元件的稳定时间。
    英飞凌TC3xx之一起认识DSADC系列(四)_第3张图片
    举例如下:
  • 调制器频率fMOD = 40 MHz,所以tMOD = 25 ns

  • 预滤波器激活,OSR(CIC3) = 32,FIR0 激活,FIR1 激活并抽取,OC 关闭,对10 个值进行积分

  • fD = fMOD /(PreFIR_OSR * CIC3_OSR * FIR0_OSR * FIR1_OSR * ( × ))
    =fMOD / (2 × 32 × 2 × 2 × 10) = 15.625 kHz

  • tD = 1 / fD

  • 组延迟为:
    [1 + 0.5 + (3 × 63 / 2) + (3.5 × 2 × 32) + (13.5 × 2 × 32 × 2) + (9 × 2 × 32 × 2 × 2 / 2)] × tMOD = (1.5 + 94.5 + 224 + 1 728 + 1 152) × tMOD = 3 200 × 25 ns = 80.0 μs

  • 在给定的过采样率为 2×32×2×2×10 = 2 560 时,相当于有1.25 × tD (数据输出速率周期)的延迟。

  • 不含积分器时,我们得到(1.5 + 94.5 + 224 + 1 728) × tMOD / 2×32×2×2 = 2 048 / 256 = 8 × tD。
    稳定时间为:
    [1 + 2] × tD = 192 μs
    不进行积分时,数据输出速率(fD)由下式定义:
    fD = fMOD / (2 × 32 × 2 × 2 ) = 156.25 kHz, tD = 1/ fD = 6.4 μs
    相应的稳定时间定义为,[28 / 2 + 1] × 6.4 μs = 96 μs

Note: 更改输入源时(例如,通过切换模拟输入多路复用器,如果可用的话),第二个结果值将安全地属于新选择的输入。 然而,与新输入电平相对应的结果值只能在相应的群延迟之后被检索。

Note: 通过仅使用 CIC3 滤波器并在调制器使能 (GLOBRC.MxRUN) 后立即触发校准 (FCFGM.CALIB) 的滤波器链配置,滤波器链的稳定时间缩短至单个tD.周期。 校准算法使用 CIC3 滤波器,并且在执行校准算法期间趋于稳定。 运行校准时,过滤器链不提供数据。

辅助滤波器

与主滤波器并行的辅助滤波器,使用简单的 CIC 滤波器进行抽取,抽取率限制为 16 或 32,这样可以减少滤波器延迟,因此辅助滤波器可用于监控输入信号,并且比主滤波器链更早地检测异常输入值,例如过流。

Note: 在低抽取率下, 使用并行辅助滤波器进行限制检查, 会产生分辨率降低的结果,但会早于在常规滤波器链的输出处, 看到的阈值生成警报.

根据应用情况,可以从主滤波器链路或者辅助滤波器链路生成警报,可以通过寄存器 FCFGAx (x=0-13) 进行选择,有关比较器的功能,请参阅第 78 页的“Limit Checking”。
英飞凌TC3xx之一起认识DSADC系列(四)_第4张图片

时间戳支持

  • 某些应用程序,需要确定两个常规输出值之间的,某些时间点的结果值。 插值算法需要确定所需时间点相对于常规结果的位置。通过提供标记自上次常规输出值以来的延迟的时间戳,来支持此插值。该时间戳,是自上次结果值生成以来,经过的调制器时钟周期数。 根据配置的抽取/积分因子,这定义了输出周期的分数,因此启用插值。

  • 时间戳信息由时间戳计数器生成。 该 16 位计数器由可选的预分频调制器时钟提供时钟(参见 TSCNTx (x=0-13).TSCLK)。 它涵盖以下周期:

    • CIC 滤波器抽取:高达 512
    • FIR 滤波器抽取:最多 4
    • 积分器抽取:最多 64
  • 时间戳信息,在触发事件时被捕获到时间戳寄存器中。 为此,使用触发信号,该信号由寄存器 DICFGx (x=0-13) 中的位字段 TRSEL 选择,位字段 TSTRMODE 选择捕获时间戳信息的边沿。如果通过寄存器 FCFGMx (x=0-13) 中的位字段 SRGA 选择,时间戳触发器可以生成服务请求。

  • 有效标志 TSVAL 在存储时间戳信息时置位,并在读取寄存器 TSTMP 时清除。 向应用软件指示,在生成相应的结果值之前,是否发生了时间戳触发。

  • 当存储时间戳信息时,可以选择生成服务请求。 这允许应用程序软件,对所有结果数据进行操作,即使在常规结果服务请求之前,发生多个时间戳触发也是如此。

  • 时间戳数据也可通过标准结果寄存器获得(参见表 290 和第 75 页的“结果服务请求生成和读取排序”)。

转换结果处理

在将存储转换结果数据供给 CPU 或 DMA 通道检索之前,EDSADC会对其进行预处理。转换结果处理包括以下功能:

  • 过滤和后处理
  • 将转换结果存储到 FIFO 和结果寄存器
  • 结果服务请求生成和读取排序
  • 硬件数据接口向其他模块提供结果值

过滤和后处理

  • 结果数据字,是通过将输入数据流馈送到滤波器元件链路,并按可选择的比率,对其进行抽取来生成的。可选积分器,可以在执行累加和平均时,进一步降低输出数据速率。过滤器链路的多个元素可以被绕过,即过滤器链是可配置的,并且其行为可以适应实际应用的要求。
  • 结果值乘以一个用于增益校准和数据格式标准化的因子。 在将每个结果值馈送到积分器或写入结果寄存器之前,可以自动减去偏移量。
  • 对于差模应用,也可以通过高通滤波器自动消除偏移。
    由于差分输入stage的结果是有符号值。 通常,这些结果以 16 位二进制补码格式存储。 对于特定的准差分工作模式(使用通用的单端输入模式电压)结果可以存储为 16 位无符号整数值(参见 DICFGx (x=0-13))。
  • CIC 滤波器的输出值取决于所选的滤波器参数和抽取因子。 数据移位器从此过滤结果中提取最高有效位。 乘法器将结果值的大小调整到应用程序所需的结果范围。

转换结果的存储

转换结果值存储在 FIFO 结构中,可通过结果寄存器 RESMx 访问该结构。可以实现以下功能:

  • 缓冲增加了检索结果值所允许的延迟
  • 一次读取访问即可检索两个结果值
  • 两次连续的读取访问,可实现最多 4 个结果值的高效传输1)
  • 之前的结果值仍然可用于计算时间戳操作的插值

时间戳信息也可以通过结果寄存器访问(直接或通过 FIFO)得到,这样就可以使用单个 DMA 通道访问所有相关数据。为了优化对结果值的访问,可以通过多种模式读取结果寄存器:
英飞凌TC3xx之一起认识DSADC系列(四)_第5张图片

  1. 通过寄存器 DICFGx (x=0-13) 中的位域 DRM 和 TSM 选择。
  2. 由于符号扩展,结果值也可以读取为带符号的 32 位值。
  3. 当选定的门打开时,时间戳被插入一次。 当选定的门关闭时,FIFO 将被刷新。
  4. 在双字读模式下,只有当结果双缓冲区保存 2 个值时才会生成服务请求。

FIFO控制

仅当启用服务请求时,结果值才会写入 FIFO (DRM = X0B)。 这使得应用程序能够 在服务请求门关闭后读取存储的值。
当服务请求门打开时,FIFO 将被刷新,因此它提供了一组实际的结果值。
在门控时间戳模式下,当门关闭时,FIFO 会被刷新,因此它可以存储第 2 阶段的当前结果值。

无FIFO的结果处理

在特殊的单字读取模式(DRM = 01B)下,结果值直接存储在 RESMx 中。低位字返回最新结果值,高位字要么被清除,要么返回当前时间戳计数器值。
英飞凌TC3xx之一起认识DSADC系列(四)_第6张图片

通过FIFO的处理结果

结果值不会直接写入 RESMx,而是存储在 FIFO 结构中。 当读取 RESMx 时,从那里检索它们。
在时间戳模式下,当门信号处于非活动状态时,FIFO 是透明的,即所有输入值都直接转发到 FIFO 的第 2 级。 当门打开时(这是触发事件),会生成一个时间戳并将其插入到 FIFO 的第 1 阶段。 随后的输入值将被堆积到 FIFO 中。
当 FIFO 中存储了一定数量的值时,将生成服务请求。 相应的 FIFO 填充级别在位字段 SRLVL 中选择。寄存器 RFCx (x=0-13) 中提供了 FIFO 控制和状态位字段。
英飞凌TC3xx之一起认识DSADC系列(四)_第7张图片

结果服务请求生成和读取排序

  • 生成的结果值(包括时间戳值,如果启用)按定义的顺序检索。 此顺序取决于所选的结果寄存器读取模式、结果/时间戳值的可用性以及系统对服务请求的响应。
  • 为每个可用结果值生成结果事件。 结果服务请求的生成取决于配置的读取模式和 FIFO 填充级别。 每个数据传输(结果数据值或时间戳信息)均由服务请求发起。 当定义数量的值变得可用时,发出此服务请求。图 313 显示了标准数据传输的不同情况:
  • 单读:
    当有一个结果值可用时生成服务请求。并由 16 位读访问(D0、D1)提供服务
  • 双重读:
    当两个结果值可用时生成服务请求,并由 32 位读取访问(D3/D2、D5/D4)提供服务
  • 单次传输模式:
    服务请求只需一次传输即可得到答复。此传输传输 16 位或 32 位。
  • 双传输模式:
    服务请求通过两次后续传输得到答复1)。这些传输要么传输 16 位,要么传输 32 位。
    英飞凌TC3xx之一起认识DSADC系列(四)_第8张图片
  • 时间戳模式支持使用服务请求gate的应用程序。当门打开时会生成时间戳(定义的时间戳触发器)。当配置的值数量(包括时间戳)可用时,将生成服务请求。图314显示了时间戳使用的不同情况:
  • 单读:
    当服务请求门打开时,会生成时间戳触发器。 读访问会返回时间戳值、时间戳 (D0) 之前的结果,然后再返回后续的结果值。 请注意,D1 可能会在时间戳事件之后的不久生成。
  • 双重阅读:
    当服务请求门打开时,会生成时间戳触发器。 读访问返回时间戳 (D0) 之前的结果,以及时间戳的值,再返回紧接着的一对结果值。 对4 个值积分后,并通过两次后续传输来传输它们,以提供最有效的数据存储方式。

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

Note: 设置服务请求级别时,例如 DMA 功能,请注意,时间戳值和后续数据值 (D1) 可能会在短时间内生成,即 FIFO 中有 3 个值。

硬件数据接口

数字转换结果,可通过硬件数据接口(HDI)直接提供给其他模块,写入FIFO的每个值也会输出到HDI,每次生成结果事件时,HDI 都会更新数据向量,并生成一个写选通信号,指示新结果值的可用性。
英飞凌TC3xx之一起认识DSADC系列(四)_第10张图片
该接口将结果写入 GTM,以供配备模拟数据接口 (ADI) 的 MCS 使用。以下数据元素可通过 HDI 获得:
硬件数据分配

Note: MUX 指示位的可用性取决于相应的通道, 未使用的位为 0。

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