K60pdb模块
来源:互联网 发布:2016淘宝打假被关店 编辑:程序博客网 时间:2024/05/16 13:56
Programmable Delay Block (PDB)模块
PDB可视为一个计数器模块,它的特殊之处在于它接收外部的触发信号,并且计数时会和多个数值进行比较,并在每次匹配的时间点输出相关的触发信号,从而触发ADC等模块或运行相关的中断服务程序。一个PDB通道只有一个trigger信号,却有多个pre-trigger信号,其实两者之间的延迟只有一个peripheralclock,pre-trigger的作用可以理解为选中对应的ADC模块配置,ADC模块有多个SC1n的寄存器,目前的版本支持SC1A和SC1B,pre-trigger 0 可以理解为选中SC1A对应的ADC,pre-trigger 1可以理解为选中SC1B对应的ADC,选中配置后再由trigger信号触发对应的ADC采样。
————————————————————————————————————————————————————————————
使用分频因子和倍频因子大于1 时会限制 计数/延时的准确性。因此,要为应用程序选择尽可能低的分频和倍频的值。
触发输入事件定义为:对于每个通道,延时m 决定了输入触发开始到预触发输出信号改变的时间。定义如下:
1.输入事件到预触发m=(晶振频率*倍频因子*延时m)+2 个外设时钟周期。
2.增加一个额外的外设时钟周期来决定通道触发输出改变的时间。
1.输入事件到预触发m=(晶振频率*倍频因子*延时m)+2 个外设时钟周期。
2.增加一个额外的外设时钟周期来决定通道触发输出改变的时间。
——————————————————————————————————————————————————————————
Trigger A/B可以看做pre-trigger和trigger的组合逻辑。这里要注意的是pre-trigger的周期设置要大于ADC的转换时间,否则不但无法触发ADC采样,反而会产生一个PDBsequence error的中断。
Trigger A/B可以看做pre-trigger和trigger的组合逻辑。这里要注意的是pre-trigger的周期设置要大于ADC的转换时间,否则不但无法触发ADC采样,反而会产生一个PDBsequence error的中断。
利用PDB的特性,可以在极短的时间内触发两次ADC采样,即ping-pong模式。这里PDB的计数器会和三个数进行比较,当计数器累加到triggerA的设定时间时,会触发ADCA的转换,当计数器累加到triggerB的设定时间时,会触发ADCB的转换,最后计数到PDB的MOD值时,产生中断,并在中断服务程序里清楚ADC的COCO标志。
————————————————————————————————————————————————————————————
IDLY与MOD寄存器值的作用如下:
When the PDB counter reaches the value set in IDLY register, the SC[PDBIF] flag is set.A PDB interrupt can be generated if SC[PDBIE] is set and SC[DMAEN] is cleared. If SC[DMAEN] is set, PDB requests a DMA transfer when SC[PDBIF] is set.
The modulus value in MOD register, is used to reset the counter back to zero at the end of the count. If SC[CONT] bit is set, the counter will then resume a new count.Otherwise, the counter operation will cease until the next trigger input event occurs.
The modulus value in MOD register, is used to reset the counter back to zero at the end of the count. If SC[CONT] bit is set, the counter will then resume a new count.Otherwise, the counter operation will cease until the next trigger input event occurs.
当PDB 计数器到达IDLY 寄存器的值时,SC[PDBIF]标志会被置位。若SC[PDBIE]被置位且SC[DMAEN]被清除时,PDB 会产生中断。若SC[DMAEN]
被置位,当SC[PDBIF]被置位时,则PDB 需要一个DMA 传输。当DMA 使能,PDB 中断不会产生。
被置位,当SC[PDBIF]被置位时,则PDB 需要一个DMA 传输。当DMA 使能,PDB 中断不会产生。
MOD 寄存器中的值,用于在计数结束后复位计数器到0。若SC[CONT]被置位时,计数器会重新开始计数。另外,直到下次输入触发事件发生计数会停止。
另外:当PDB 计数器到达MOD 寄存器的值时,DAC 间隔计数器也会复位,因此当PDB 计数器归零时,DAC 间隔计数也会从新开始。
0 0
- K60pdb模块
- 模块
- 模块
- 模块
- 模块
- 模块
- 模块
- 模块
- 模块
- 模块
- 模块
- 模块
- 模块
- 模块
- 模块
- 模块
- 模块
- 模块
- 黑马程序员—OC语言基础—面向对象的三大特性(1)
- Linux驱动之i2c
- hadoop-v1环境的配置搭建和基本概念
- git 删除已经 add 的文件
- 高精度计算-大整数除法
- K60pdb模块
- RxJava 操作符 take
- 1.web入门
- activity 透明度更改
- 最新版NGUI3.8.1之UIGrid的重写排序方法,
- 使用nexus建立maven私服
- 【Wordpress】Wordpress的下载、配置与Helloworld
- 超级块与索引节点
- 怎么将pdf文件转换成excel表格