PDB触发ADC调试记录

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


PDB触发ADC记录01

1、PDB的触发源

有两个:一个是软件、一个TRGMUX

在这里插入图片描述

对于软件触发的,主要是通过SPLL的时钟输入的,比如48M的时钟。

定时器模块(FTM)支持计数器初始化触发和通道匹配触发,这些可以作为PDB的触发输入。然后PDB可以用来触发其他模块,比如ADC。PDB模块中的每个ADC通道支持多达8个预触发,这些可以作为ADC硬件通道选择,在实际触发前对ADC模块进行预处理。在预触发后,ADC触发会启动ADC转换。以下图表所示的波形展示了PDB到ADC的预触发和触发输出。当PDB的预触发和触发输出启动ADC转换时,与相应预触发相关联的内部锁定会被激活。当从ADC接收到COCO信号时,这个锁定会变得无效。

2、对于PDB的触发逻辑框图如下

在这里插入图片描述

3、PDB 触发的流程

41.7.1 PDB触发方案 PDB触发方案是ADC的默认触发方式,也是推荐的触发方法。一个ADC和一个PDB组成一对,即PDB0-ADC0、PDB1-ADC1。PDB0和PDB1的触发源可以通过TRGMUX_PDB0和TRGMUX_PDB1分别进行配置。这里以PDB0-ADC0为例来说明触发方案。 • 设置SIM_ADCOPT

ADCxTRGSEL

=0。选择PDB0通道0作为ADC的触发源。 • PDB0预触发信号将直接连接到ADC0的ADHWTS端口以控制通道。 • ADC0的COCO信号直接反馈给PDB0,以解除PDB的锁定状态。

在这里插入图片描述

4、对于BB、TOS的解释

  • TOS:PDB Channel Pre-Trigger Output Select (CHnC1[TOS[m]]),把它置0则延时直接被忽视掉,trigger信号经过2个外设周期后直接触发pre-trigger.其实就是直接使用trigger的信号
  • BB:back-to-back模式:用ADC转换完成信号(Ack)触发pre-trigger,此时延时也是直接被忽视掉的。也就是可以通过这个寄存器的设置使得ADC的不同通道进行轮询采样。

5、注意事项

5.1、datasheet中明确说明数据必须读取后才能够把COCO的set位复位。

在这里插入图片描述

5.2 delay的周期不但要小于ADC的转换周期,还应该小于FTM3的init周期,不然就会出现时序错误的问题。

因此在设置trigger delay时要注意ADC的转换周期,不可delay<ADC转换周期。

因为COCO可以将pre-trigger解锁,当pre-trigger被触发后,会激活相应的,只有与它相关联的 ADCnSC1[COCO]的上升沿可以解除pre-trigger的触发锁。ADC转换完成后ADCnSC1[COCO]会自动置1,读取相应的ADC转换结果后它会自动置0 。
当然也可以通过disable PDB pre-trigger或者disable PDB 来解除pre-trigger的触发锁。
每个pre-trigger都有各自的锁,每个通道的的任何一个pre-trigger锁都会激活channel trigger上锁。

如果在未解除的情况下产生新的trigger,会触发PDB序列错误中断( PDB Channel Sequence Error Flag :CHnS[ERR[m]])

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值