NXPS32K144的可编程延时块(PDB)的理解

本文介绍了NXPS32K144单片机中的Programmable Delay Block (PDB)。PDB由计数器、比较器和控制寄存器构成,提供输入trigger选择、预触发输出、脉冲输出、中断和DMA等功能。在详细阐述其工作原理和核心功能后,给出了实际应用示例,如在直流无刷电机控制中的ADC采样触发。
摘要由CSDN通过智能技术生成

1.Programmable delay block (PDB)的逻辑框图

在这里插入图片描述
从上图中可以看出PDB是由计数器+比较器+控制寄存器组成,对输入的triggger进行选择、延时等操作后输出trigger和中断。

2.核心功能实现

PDB主要有以下功能:

  • 输入trigger的选择
  • trigger和pre-trigger的输出
  • 脉冲输出
  • 中断
  • DMA

2.1.输入trigger的选择

在这里插入图片描述

PDB最多有3种类型的trigger: 软触发(software trigger),内部触发(internal trigger), 外部触发(external trigger (via a pin))。入上图所示:可通过“状态和控制寄存器”(PDB_SC[TRIGSEL])来选择使用何种触发源。 所有非软TRIGGER,都是通过 TRGMUX模块来输入的。
在这里插入图片描述
在这里插入图片描述

2.2.trigger和pre-trigger的输出

PDB模块有一个计数器(PDB counter),当PDB被使能且发生2.1定义的输入事件(trigger的上升沿或软trigger寄存器置1),计数器开始计数。当计数到达PDBMOD中定义的值,计数值清零,a.PDB配置为周期模式则继续计数;b.PDB配置为单次触发模式则停止计数。
在这里插入图片描述

计数器的计数通过和不同的数值做比较后输出一下两种触发信号:

2.2.1.pre-trigger channel-trigger

pre-trigger主要用来触发ADC的不同通道进行采样。如何实现的呢?看下图:
以PDBCHn pre-trigger0为例:当计数器计数到达PDBCHnDLY0中定义的值后,经过(BB TOS EN),触发器产生上升沿:Pre-trigger 0。任何一个pre-trigger的触发都会伴随产生一个channel trigger的触发。

  • TOS:PDB Channel Pre-Trigger Output Select (CHnC1[TOS[m]]),把它置0则延时直接被忽视掉,trigger信号经过2个外设周期后直接触发pre-trigger.
  • BB:back-to-back模式:用ADC转换完成信号(Ack)触发pre-trigger,此时延时也是直接被忽视掉的。也就是可以通过这个寄存器的设置使得ADC的不同通道进行轮询采样。
S32K芯片中,AD采集使用PDB(Programmable Delay Block)来控制硬件触发和采样时机。PDB是一个可编程的延迟模,用于生成精确的时间延迟,并触发ADC进行采样。通过配置PDB的寄存器,可以设置PDB的工作模式、触发源、触发方式以及延迟时间等参数。 首先,您需要配置PDB的触发源为FTM触发源。这意味着PDB会根据FTM的触发信号来触发ADC采样。触发方式可以选择硬件触发方式,这样PDB会根据触发源的触发信号来触发ADC一次采样。 接下来,您需要配置ADC的取值方式为DMA方式。这意味着ADC采样的结果将通过DMA传输到指定的内存区域。 为了解决可能出现的问题,您可以先对每个链式节点进行测试,逐个排除可能出现问题的模。例如,您可以先移除DMA的取值方式,然后将PDB触发方式更改为软件触发方式,这样整个链式只剩下PDB和ADC模。通过测试,您可以确定问题是由PDB和ADC模引起的。 在分析过程中,您发现PDB的中断优先级较高,可能干扰了PDB的正常运行。降低PDB的中断优先级可以解决这个问题。另外,还可以对DMA模进行配置检查,确保寄存器配置正确,以避免错误的AD取值。 总结起来,S32K AD采集使用PDB来控制硬件触发和采样时机。您需要配置PDB的触发源为FTM触发源,触发方式为硬件触发方式。同时,将ADC的取值方式设置为DMA方式。在解决问题时,可以逐个排除模进行测试,并检查PDB中断优先级和DMA模的寄存器配置。这样可以确保AD采集过程的稳定性和准确性。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值