可编程延迟模块PDB,PDB可提供从内部或外部触发或可编程间隔信号到ADC硬件触发输入的可控制延迟。 PDB可以选择提供脉冲输出,用作CMP块中的采样窗口。

S32K系列的PDB资源如下表:

PDB功能框图

在下图中,以下字母表示的意义:

  • N:PDB通道的总数
  • n:PDB通道号,范围从0到N-1
  • M:每个PDB通道的总可用预触发
  • m:预触发编号,范围从0到M-1
  • Y:脉冲输出的总数
  • y:脉冲数,有效值为0到Y-1

由以上功能框图所知,PDB的本质是一个延时模块,除了PDB_SC控制状态寄存器设置主要的模式外,其他就是对计数值的填写和比较。

首先从左到右看第一部分,通过通道控制寄存器PDB_CHnC1选择通道和相关模式之后,可以选择三种方式触发本身PDB的计数:

  • PDB_CHnDLYm和PDB counter比较触发计数
  • TRIGSEL触发源(比如TRGMUX)触发计数
  • 开启Back to Back模式,当上一个PDB计数完毕后,由上一个PDB通道的Ackm触发计数

第二部分用来设置PDB的计时时间,PDB本质是一个延时模块,故这是PDB的主要部分。通过PDB_SC[MULT]PDB_SC[PRESCALER]来对输入时钟进一步预分频;PDB_MOD寄存器指定计数器的计数值上限;开始计数,PDB_CNT根据时间不断计数,当与设定的计数值PDB_MOD相同时,一个周期的计数完成,PDB_CNT重新开始计数。
通过PDB_SC[TRGSEL]设置触发源,PDB_SC[CONT]设置是否连续计数之后,可以控制计数器在计数一个周期后的重新计数或者暂停计数。

第三部分用来选择PDB的触发源,包括TRGMUX或者软件触发。在PDB_SC[TRGSEL]中设置。

第四部分为PDB的脉冲输出功能配置。PDB可以生成可配置宽度的脉冲输出:

  • 当PDB计数值达到PDB_POnDLY[DLY1]设置的值时,脉冲输出高电平
  • 当PDB计数值达到PDB_POnDLY[DLY2]设置的值时,脉冲输出低电平

脉冲输出功能在PDB_POEN[POEN]位中开启。将DLY2的值设置大于或小于DLY1的值产生的脉冲结果相反:

第五部分是PDB的中断配置,在PDB_SC[PDBIE]中打开中断。当使能中断之后,PDB的计数值达到PDB_IDLY中设置的值后,产生中断。


实例:PDB触发ADC

功能概述

  • 平台:S32K144

使用PDB0触发ADC0_SE8,开启Back to Back模式,ADC0_SE8转换完毕之后触发ADC0_SE0转换。

编程顺序

  1. 初始化PDB0的时钟
  2. 选择PDB0的时钟预分频器和触发方式
  3. 选择PDB0通道,是否开启Back to Back模式
    • 通道0触发通道1,通道1开启Back to Back,通道0不用
  4. 填写PDB0的通道计数值,中断延时计数值或者脉冲输出计数值
  5. 使能PDB
  6. 更新计数值,使能软件触发(如果是硬件触发不需要)
    • 每次一个流程之后,需要重新软件触发使能才开启下一次计数

代码

void PDB_Init(void)
{ PCC->PCCn[PCC_PDB0_INDEX] = PCC_PCCn_CGC_MASK; PDB0->SC = PDB_SC_MULT(1) |           /* 分频器选择10 */ PDB_SC_TRGSEL(0xF) |            /* 选择软件触发 */ PDB_SC_PRESCALER(7);      /* 时钟128*10分频 */ PDB0->CH[0].C1 = PDB_C1_EN(3) |  /* 开启PDB通道0和通道1 */ PDB_C1_TOS(3) | /* 双通道开启 ADC触发 */ PDB_C1_BB(2);    /* 开启back to back功能,这里是通道0触发通道1,通道1开启back to back */  PDB0->MOD = 0xFFFF;        /* 初始化PDB计数器 */ PDB0->IDLY = 0;   /* 初始化中断延时 */ PDB0->MOD = 15000;        /* 计数值 */ PDB0->CH[0].DLY[0] = 15000; PDB0->CH[0].DLY[1] = 15000; PDB0->SC |= PDB_SC_PDBEN_MASK;  /* PDB使能 */ PDB0->SC |= PDB_SC_LDOK_MASK;  /* 更新计数值 */ PDB0->SC |= PDB_SC_SWTRIG_MASK;   /* 使能软件触发 */
}

S32K系列之PDB框图详解及PDB触发ADC相关推荐

  1. h2 不能访问localhost_SpringBoot2.x系列教程44--H2数据库详解及搭建Web控制台

    SpringBoot2.x系列教程44--H2数据库详解及搭建Web控制台 作者:一一哥 我在上一章节中讲解了Spring Boot中整合Mybatis,接下来我给大家介绍一款内存数据库--H2. H ...

  2. 大型网站系统架构系列:负载均衡详解(一)

    大型网站系统架构系列:负载均衡详解(一) 2016-03-20 架构说 面对大量用户访问.高并发请求,海量数据,可以使用高性能的服务器.大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比 ...

  3. 【百度飞浆】YOLO系列目标检测算法详解

    YOLO系列目标检测算法详解 1 YOLO发展史 2 YOLO v3目标检测原理 3 PaddleDetection中YOLO v3模型介绍 4 YOLO v3配置演练 1 YOLO发展史 2 YOL ...

  4. 【百度飞浆】RCNN系列目标检测算法详解

    RCNN系列目标检测算法详解 目录 两阶段目标检测算法发展历程 R-CNN R-CNN网络结构 R-CNN网络效果 Fast R-CNN Fast R-CNN网络效果 Faster R-CNN Fas ...

  5. Maven精选系列--三种仓库详解

    转载自 Maven精选系列--三种仓库详解 仓库分类 1.本地仓库 本地仓库就是开发者本地已经下载下来的或者自己打包所有jar包的依赖仓库,本地仓库路径配置在maven对应的conf/settings ...

  6. kubernetes系列10—存储卷详解

    kubernetes系列10-存储卷详解 1.认识存储卷 1.1 背景 默认情况下容器中的磁盘文件是非持久化的,容器中的磁盘的生命周期是短暂的,这就带来了一系列的问题:第一,当一个容器损坏之后,kub ...

  7. flutter listview 滚动到底部_Flutter系列之Flex布局详解

    PS:长期坚持是一件很难的事. Flutter 是 Google 推出的跨平台 UI 框架,可以快速地在 Android 和 IOS 上构建高质量的应用程序,其主要特点是 Flutter 具有快速开发 ...

  8. RxJS 系列之二 - Observable 详解

    查看新版教程,请访问前端修仙之路 RxJS 系列目录 RxJS 系列之一 - Functional Programming 简介 RxJS 系列之二 - Observable 详解 (本文) RxJS ...

  9. 大型网站架构系列:负载均衡详解(4)

    原文:大型网站架构系列:负载均衡详解(4) 本文是负载均衡详解的第四篇,主要介绍了LVS的三种请求转发模式和八种负载均衡算法,以及Haproxy的特点和负载均衡算法.具体参考文章,详见最后的链接. 三 ...

最新文章

  1. 一般判五年几年能出来_判刑五年能减刑多少年
  2. 关于git经常忘记的:远程仓库关联。
  3. Windows程序设计之创建窗口示例
  4. Python3_实例汇总
  5. 谱聚类方法-MATLAB
  6. JDK 6中新增的Java Console类功能概览
  7. java中的生产者消费者模式详解
  8. Delphi 7 以来的语法等变化
  9. android studio建数据库表,在android studio中创建表
  10. PHP32向右位移2位是多少,PHP的二进制位移操作
  11. 【数据结构】线段树(interval tree)
  12. 帝豪gs车机系统wince_平顶山到河南,帝豪GS俱乐总部,帝豪GS两年用车感受
  13. Linux登陆密码策略
  14. Java周记(第一周)
  15. 自编码器(AE)原理解析
  16. java 发 腾讯企业邮_JAVA使用腾讯企业邮箱发送邮件时报错Could not connect to SMTP host...
  17. 矩阵论笔记(七)——矩阵的微分和积分
  18. Js控制页面刷新(局部刷新全页面刷新)
  19. 文本框固定任意一顶点后,拖动相对点任意旋转缩放,计算缩放后顶点坐标
  20. Dockerfile构建Springboot镜像

热门文章

  1. 这个网站收录了MSDN上基本所有的镜像文件的电驴链接
  2. 从零开始做量化(4)
  3. 【LOSOL】周志01:开题
  4. c#的问号(?)和双问号语法糖(??)的用法和在unity中使用需要注意的事项
  5. 计算机专业就业方向有哪些呢?如何进大厂实习拿offer
  6. ***BAT机器学习面试1000题系列
  7. 浅析C语言文件操作 fopen fclose
  8. 中文CLIP快速上手指南
  9. 用户头像上传之 jQuery+ajax+php+预处理
  10. java对于 进行字符串分隔_Java字符串分割函数split中以·点分割的问题