1、简介

开发板S32K144+S32DS+JLINK,裸机版的程序编写

首先,PDB肯定是一个定时器,但是它这个定时器傍上了大腿,所以就显得它尤其的重要,因为PDB->ADC是官方默认和建议的搭配,PDB触发器与ADC和TRGMUX互连:

PDB是可编程延迟模块,PDB可提供从内部或外部触发或可编程间隔信号到ADC硬件触发输入的可控制延迟。

PDB可以选择提供脉冲输出,用作CMP块中的采样窗口

PDB是由计数器+比较器+控制寄存器组成,对输入的triggger进行选择、延时等操作后输出trigger和中断。

因为PDB本质是一个延时模块,不可避免的对计数值进行比较,其中触发PDB计数的方式有三种:

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

PDB的触发源:内部触发、软件触发、外部触发

其中Back to Back模式是:使ADC转换完成后触发下一个PDB通道预触发和触发输出。

  • PDB0 CH0 back-to-back chain
  • PDB1 CH1 back-to-back chain
  • PDB back-to-back chain forming PDB0-PDB1 ring

pre-trigger:主要用来触发ADC的不同通道进行采样,以PDBCHn pre-trigger0为例:当计数器计数到达定义的值后,经过(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的不同通道进行轮询采样

当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]])。因此在设置trigger delay时要注意ADC的转换周期,不可delay<ADC转换周期。

2、原理图

3、寄存器

3.1、PDB_SC:Status and Control register

0

LDOK

1:更新MOD,IDLY,CHnDLYm和PoyDLY寄存器的值

1

CONT

连续模式使能

  1. 单次模式
  2. 连续模式

2-3

MULT

为分频器选择倍增因子,选择计数器的分频器的乘法器。

00乘系数是1。

01乘数是10。

10的乘数是20。

11的乘数是40

5

PDBIE

PDB中断使能

6

PDBIF

PDB中断标志

  1. 清除PDBIF
  2. 无作用

7

PDBEN

PDB启用

0 PDB禁用。计数器关闭。

1 PDB启用

8-11

TRGSEL

触发输入源选择选择,。触发输入源可以是内部的,也可以是外部的,或软件触发器

0000-1110:触发源0—14

1111:选择软件触发

12-14

PRESCALER

预定标器分频器选择

000计数使用外围时钟除以MULT(乘数)。

001计数使用外围时钟除以2 × MULT(乘法系数)。

010计数使用外围时钟除以4 × MULT(乘法系数)

011计数使用外围时钟除以8 × MULT(乘法系数)

100计数使用外围时钟除以16 × MULT(乘法系数)

101计数使用外围时钟除以32 × MULT(乘法系数)

110计数使用外围时钟除以64 × MULT(乘法系数)

111计数使用外围时钟除以128 × MULT(乘法系数)

15

DMAEN

DMA使能

16

SWTRIG

软件触发,启用PDB,选择软件触发器作为触发器输入源,向SWTRIG写入1,重置并重新启动计数器

17

PDBEIE

PDB序列错误中断使能

使能PDB序列错误中断。当PDBEIE设置时,PDB的任何通道序列错误标志产生一个PDB序列错误中断。

0 PDB序列错误中断禁用。

1 PDB序列错误中断使能

18-19

LDMOD

加载模式选择

3.2、 Modulus register (PDB_MOD)

计数器的重载值

3.3、Counter register (PDB_CNT)

0-15

CNT

PDB计数器

包含计数器的当前值

3.4、Interrupt Delay register (PDB_IDLY)

0-15

IDLY

指定调度PDB中断的延迟值

3.5、Channel n Control register 1 (PDB_CHnC1)

1每个PDB通道有一个控制寄存器CHnC1。这个寄存器中的位控制,每个PDB通道操作的功能

EN

PDB通道的Pre-Trigger使能

8-15

TOS

PDB通道Pre-Trigger输出选择,这些位选择PDB ADC Pre-Trigger输出

16-23

BB

PDB通道Pre-Trigger Back-to-Back操作启用

3.6、Channel n Status register (PDB_CHnS)

ERR

PDB通道序列错误标志

16-23

CF

PDB通道标志

3.7、Channel n Delay 0-7 register (PDB_CHnDLY0-7)

0-15

DLY

PDB通道的延迟值

3.8、Pulse-Out n Enable register (PDB_POEN)

0-7

POEN

PDB Pulse-Out启用

使能脉冲输出。在这个MCU中只实现了较低的8位。

0 PDB脉冲输出禁用

1 PDB脉冲输出启用

3.9、Pulse-Out n Delay register (PDB_POnDLY)

0-15

DLY2

PDB脉冲输出延迟2

16-31

DLY1

PDB脉冲输出延迟1

4、代码编程

此处只是展示PDB定时器的功能,在后面ADC章节后,会在那使用PDB+ADC例程,也会使用LPIT+ADC

4.1、pdb.h

#ifndef PDB_H_
#define PDB_H_#include "common.h"    //公共要素头文件void pdb_init(void);
#endif

4.2、pdb.c


#include "pdb.h"
#include "led.h"void pdb_init(void)
{PCC->PCCn[PCC_PDB0_INDEX] |= PCC_PCCn_CGC_MASK;PDB0->SC |= PDB_SC_PRESCALER(0b111) |PDB_SC_MULT(0b11)|PDB_SC_CONT(1)|PDB_SC_TRGSEL(0b1111)|PDB_SC_LDOK_MASK|PDB_SC_PDBEN_MASK;PDB0->MOD = 15625;PDB0->IDLY = 15625;//置位LDOK,超级重要,寄存器有说明,值先写在缓冲区,需要LDOK才加载到对应的寄存器PDB0->SC |= PDB_SC_LDOK_MASK;PDB0->SC |= PDB_SC_SWTRIG_MASK;PDB0->SC |= PDB_SC_PDBIE_MASK;S32_NVIC_EnableIRQ(PDB0_IRQn,10);
}
void PDB0_IRQHandler(void)
{if(PDB0->SC & PDB_SC_PDBIF_MASK){//清中断标志位PDB0->SC &= ~PDB_SC_PDBIF_MASK;LED3_TOGGLE;}
}

S32K144(13)PDB相关推荐

  1. CADD课程学习(13)-- 研究蛋白小分子动态相互作用-I(GROMACS)

    CADD课程学习(13)-- 研究蛋白小分子动态相互作用-I(GROMACS) 分子动力学基本原理 分子动力学(Molecular Dynamics-MD)一门结合物理,数学和化学的综合技术. 分子动 ...

  2. FPGA逻辑设计回顾(13)RAM以及ROM的IP核定制以及关键参数

    文章目录 前言 RAM IP的定制 Xilinx的IP定制位置 Block RAM的定制过程 第一页 第二页 第三页 第四页 第五页 Block RAM的延迟讨论 ROM IP核的定制 总结 前言 本 ...

  3. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(13)-系统日志和异常的处理③

    构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(13)-系统日志和异常的处理③ 参考文章: (1)构建ASP.NET MVC4+EF5+EasyUI+Unity ...

  4. Xamarin图表开发基础教程(13)OxyPlot框架支持的其它图表

    Xamarin图表开发基础教程(13)OxyPlot框架支持的其它图表 除了以上提到的图表外,OxyPlot组件还包含了6种类型的其它图表,分别为等高线图.箱线图.饼图.热图.散点图和散点误差图,如图 ...

  5. python 简单图像处理(13) 二值图腐蚀和膨胀,开运算、闭运算

    原文:http://www.cnblogs.com/xianglan/archive/2010/12/29/1921211.html python 简单图像处理(13) 二值图腐蚀和膨胀,开运算.闭运 ...

  6. C# 学习笔记(13)自己的串口助手

    C# 学习笔记(13)自己的串口助手 UI界面 界面部分参考野火串口助手,自己拖控件拖一个即可 功能实现 扫描串口 方法一 使用串口自带的get函数 比较简单实用 SerialPort.GetPort ...

  7. C# 视频监控系列(13):H264播放器——控制播放和截图

    C# 视频监控系列(13):H264播放器--控制播放和截图 前言 本该把这部分和上一篇合成一篇的,无奈挣扎半天,还是想对称起来,客户端3篇.服务器端3篇--所有播放器也勉强凑3篇吧(封装API的文章 ...

  8. Android菜鸟的成长笔记(13)——异步任务(Async Task)

    Android菜鸟的成长笔记(13)--异步任务(Async Task) 原文: [置顶] Android菜鸟的成长笔记(13)--异步任务(Async Task) Android的UI线程主要负责处 ...

  9. 深度学习之卷积神经网络(13)DenseNet

    深度学习之卷积神经网络(13)DenseNet  Skip Connection的思想在ResNet上面获得了巨大的成功,研究人员开始尝试不同的Skip Connection方案,其中比较流行的就是D ...

最新文章

  1. keras构建前馈神经网络(feedforward neural network)进行回归模型构建和学习
  2. 反射应用--取得类的结构
  3. 面试:如何快速过滤出一次请求的所有日志?
  4. RP2836 OUT0-OUT7 对应关系
  5. 浅析微软的网关项目 -- ReverseProxy
  6. Android--Facebook Login without LoginButton
  7. javascript变量声明语法的应用和分号讲究适用性
  8. 数据结构与算法之-----图(代码实现)
  9. 米线店结账程序 装饰着模式_真实数据:外卖销售9999+ 长沙米线万单店 它究竟是怎么做到的?...
  10. python修改文件名_【Python沙龙】批量修改文件名称
  11. LabVIEW在Windows10下调出软键盘的说明与例程
  12. 禁止搜索引擎收录网站内容,百度,谷歌,所有等...
  13. 5G,仅仅是更快的网速吗?
  14. layout-v21透明主题不生效的bug
  15. 一个DDD指导下的实体类设计案例
  16. 整理springmvc+mybatis+velocity的整合一
  17. python中使用virtualenv库创建虚拟环境的问题
  18. Echarts给折线图给横竖坐标轴添加箭头与标签文字过长显示不全处理
  19. 煮酒论开源语音工具包
  20. snmp同步端口号_SNMP端口号教程及其示例

热门文章

  1. 子之错父之过什么意思_生活|为什么子不教,父之过,这是什么意思?
  2. 利用多时间无人机数据和时空深度学习模型的作物产量预测
  3. 物联网开放平台:三种实践模式
  4. 计算机辅助技术学什么课,《CADCAM》课程导学计划
  5. 长沙学院计算机专业老师李彬,长沙学院2007-2008模具CADCAM_04机本教案【荐】.doc...
  6. 深度学习之yolov5目标识别全过程记录(纯小白)
  7. 政策东风,助推万亿智能家居产业,2022各地智能家居政策大盘点
  8. java项目-第127期SpringBoot+vue的智慧养老手表管理系统-java毕业设计_计算机毕业设计
  9. 最好网络推广软件-Skycc组合营销软件
  10. oracle rac 火星舱_火星高科数据保护技术使火星舱助用户完全解决相关需求