首页 > 应用与设计 > 工业应用 > C2837x入门指南 >

电机驱动

最新课程

热门课程

C2837x入门指南(七) — 模拟子系统 ADC DAC CMP SDFM(上)

大家好 这一章我们给大家介绍一下F2837X系列产品的 模拟子系统 它的C2000系列的最新产品 这代产品在模拟外设方面性能大大提升 我们会在这一章给大家详细讲解 这一章的目的是讲解模拟子系统 包括ADC模块 比较器模块 DAC模块 以及SDFM 为了让大家进一步了解模拟子系统 我们会用一个试验结合ADC DAC的功能 给大家演示 首先 我们看看模拟子系统的组成 从ADC方面 系统外设 较大的改变 是增加了16位差分模式的采样 拥有最快1兆的采样速度 增加了多个ADC转换器 从而实现最多四个ADC模块并行处理采样的一个 情况 产品有多达八个不比较器模块 每个比较器模块包含两个DAC 两个智慧比较器 和数字滤波器 同时 还有可以输出模拟电压的DAC 和SDFM模块 ADC模块有四个转换器 加采样保持 每个模块可以配置12位 或者16位的ADC 而且需要一个外部基准源来提供基准 每个模块的AC输入引脚数量不同 比如ADCA有6个 ADCB6个 ADCC只有4个 所以在使用时 要注意每个模块的ADC引脚的配置 部分引脚可作为DAC的输出 通过内部DAC输出模拟电压 在实时处理性能方面 解决了采样的平行问题 这是F2837X采样多个模块 要达到的效果 ADC的采样方式还是保持了PQ SOC的采样模式 区别与F28335 也就是老的DF系列的序列采样模式 采样优先级根据SOC优先级决定 每个SOC可以对应任何一个外部引脚 以及设置不同的触发事件 包括PWM触发 CPU定时器的触发 以及外部引脚 软件强制触发 同时每个SOC事件可以设置不同的采样窗大小 满足不同的模拟信号采样 比如精度更高更慢的信号 可以设置较大的采样窗 对于系统的采样时钟 时间比较长 但如果需要更快 但精度要求不高的采样 可以设置较小的采样窗 对应系统时间比较短 每个ADC SOC的结果都会对应到结果寄存器 我们叫做ADC result寄存器 比如SOC0的采样 也就是SOC的最高优先级 它的转换结果会放到SOC result 0 同时任意一个SOC事件 都可以触发一次SOC中断 可以在采样保持结束后触发 或者所存寄存器前 一个时钟触发 这一页我们看看采样保持到中断触发的过程 首先 ADC的触发源分为几种 软件强制触发 定时器 0 1 2的定时匹配 外部ADC EXTSOC的管脚 EPW每个模块的SOC ABCD的事件触发 以及重复定时器的时间匹配触发 并且 在F2837X中 ADC的中断可以进行ping pong模式的再次触发 也就是当某个SOC触发ADC中断后 比如ADC中断1 或2 这两个中断可以触发一个序列的ADCSOC采样 叫做ping pong功能 这样就可以循环反复的做两组SOC的互相采样 当SOC触发 进入转换器 转换以后 数据会存放到结果寄存器 最后会产生一个EOC信号 EOC信号触发ADC的中断 每一个ADC模块 都是这样的功能 具体看一个例子 PWM1的SOC信号 设置为SOC12的触发源 当PWM1的事件匹配 触发SOC信号产生时 三个SOC会对应优先级的管脚 信号采样 然后在SOC信号完成时 转换并产生EOC信号 触发ADC中断 ADC中断1 三个SOC设置不同的采样保持周期 七个系统时钟 10个系统时钟 和8个系统时钟 然后 SOC345也是同样 但是软件强制触发SOC 并且在 SOC5转换完以后 会触发ADC中断2 同时 ADC中断2还可以触发SOC345的触发采样 进入这样的一个ping pong模式 如果不设置PIE 及CPU打开相应的中断 将不会被触发 ADC中断2的标志位会被置起 刚刚提到除了和PQ SOC触发机制同样的SOC触发外 F2837X的SOC增加了额外的ping pong触发功能 既可以采用ADC的中断 来触发另一组的采样 图中的例子是从SOC0 1 2 由软件触发 设置相同的采样窗 然后ADC中断1的标志 会有SOC2的EOC产生 SOC3 4 5 由ADC中断1作为触发源 也就是当ADC1的标志置起的时候 就会被触发进入采样 需要强调的是 只有ADC中断2 中断1这两个中断标志 才能作为ping pong模式的采样触发源 ADC采样优先级是用户非常关心的一点 C2000的PQ产品 都会用SOC的采样方式 这种方式相比老的SEQ 序列采样模式 会更灵活 并且模式round robin 优先轮转模式 为默认优先级 当然可以设置某几个SOC取得永久的优先级 同时 F2837X在此基础上 增加了round robin burst mode 这个模式可以在一次触发事件后 同时触发多个SOC事件 让现有的round robin更灵活 下面对这三种模式来介绍 首先看普通的round robin加上high priority模式 假如目前的寄存器中设置了SOC0到4为high priority 也就是他们不受round robin的轮转控制 那round robin就在剩下的SOC5 到15 11个SOC中轮转 我们先看所有的SOC均处于round robin的情况 初始化时 优先级是SOC0 从小到大降低 也就是SOC0 默认情况下 是最高优先级 SOC15是最低优先级 这是在上电的那个时刻 也就是当前 round robin指针在SOC15上 SOC0是最高优先级 此时SOC机被触发以后 就会将指针指到SOC7 然后它进入采样转换 在SOC7完成后 此时指针指到SOC7 此时SOC8是最高优先级 往后以此类推 这个时候SOC7是最低优先级 当此时SOC12和SOC2同时触发 这个时候SOC8是最高优先级 所以SOC12的优先级高于SOC2 系统会先处理SOC12 指针指向SOC12 当SOC12转换完成后 此时SOC2采样转换 当然 这个时候指针指到SOC2时 以此类推 SOC3是最高优先级 SOC2是最低优先级 那如果有最高优先级 是怎么样的情况呢 假设SOC0到3 拥有了最高优先级 也就是如图所示 它们不在圈子里进行round robin的轮转 圈内只有SOC4 到15 当系统上电 初始化完以后 SOC15是最低优先级 是指针的位置 SOC4是最高优先级 此时 我们重复刚才的情况 SOC7被触发 那SOC7马上进入采样转换 然后重复刚才的情况 SOC2和SOC12 同时被触发 由于SOC2退出了round robin 所以SOC2有最高优先级 就先做SOC2的采样转换 然后回到SOC12做采样转换 之后 SOC12变成round robin中的最低优先级 SOC13是最高优先级 除了前面两种在PQ中广泛使用的模式外 F2837X在ADC的采样中增加了burst mode 它需要对三个寄存器的设置 使能寄存器 bursten 然后是burst mode的尺寸 也就是一次burst事件触发多少SOC来采样转换 最后设置burst事件的触发源 它和ADCSOC的触发源比较类似 都可以是软件或者定时器 或者是PWM的SOC 这个时候 我们举个例子 和之前的high priority一样 设置SOC0到3 为最高优先级 其他的在round robin中轮转 我们把burst size设为1 也就是一次burst事件触发会采样转换2个SOC 第一次burst信号来的时候 由于当前最高优先级是SOC4 所以在转换完SOC4 5后 指针在SOC5 此时的最高优先级是SOC6 此时 如果SOC1和burst触发信号同时来到 SOC1在圈外 拥有最高优先级 所以先执行SOC1的采样转换 然后再执行下一次burst事件 假设下一次burst事件 已经到来 对SOC6 7 进入转换 然后SOC7的采样转换完成后 SOC8是最高的采样优先级

大家好 这一章我们给大家介绍一下F2837X系列产品的

模拟子系统 它的C2000系列的最新产品

这代产品在模拟外设方面性能大大提升

我们会在这一章给大家详细讲解

这一章的目的是讲解模拟子系统

包括ADC模块 比较器模块

DAC模块 以及SDFM

为了让大家进一步了解模拟子系统

我们会用一个试验结合ADC DAC的功能

给大家演示

首先 我们看看模拟子系统的组成

从ADC方面 系统外设 较大的改变 是增加了16位差分模式的采样

拥有最快1兆的采样速度

增加了多个ADC转换器

从而实现最多四个ADC模块并行处理采样的一个

情况 产品有多达八个不比较器模块

每个比较器模块包含两个DAC

两个智慧比较器 和数字滤波器

同时 还有可以输出模拟电压的DAC

和SDFM模块

ADC模块有四个转换器 加采样保持

每个模块可以配置12位 或者16位的ADC

而且需要一个外部基准源来提供基准

每个模块的AC输入引脚数量不同

比如ADCA有6个 ADCB6个

ADCC只有4个 所以在使用时

要注意每个模块的ADC引脚的配置

部分引脚可作为DAC的输出 通过内部DAC输出模拟电压

在实时处理性能方面 解决了采样的平行问题

这是F2837X采样多个模块 要达到的效果

ADC的采样方式还是保持了PQ SOC的采样模式

区别与F28335 也就是老的DF系列的序列采样模式

采样优先级根据SOC优先级决定

每个SOC可以对应任何一个外部引脚

以及设置不同的触发事件

包括PWM触发 CPU定时器的触发

以及外部引脚 软件强制触发

同时每个SOC事件可以设置不同的采样窗大小

满足不同的模拟信号采样

比如精度更高更慢的信号

可以设置较大的采样窗

对于系统的采样时钟 时间比较长

但如果需要更快 但精度要求不高的采样

可以设置较小的采样窗

对应系统时间比较短

每个ADC SOC的结果都会对应到结果寄存器

我们叫做ADC result寄存器

比如SOC0的采样 也就是SOC的最高优先级

它的转换结果会放到SOC result 0

同时任意一个SOC事件 都可以触发一次SOC中断

可以在采样保持结束后触发 或者所存寄存器前

一个时钟触发

这一页我们看看采样保持到中断触发的过程

首先 ADC的触发源分为几种

软件强制触发 定时器 0 1 2的定时匹配

外部ADC EXTSOC的管脚

EPW每个模块的SOC ABCD的事件触发

以及重复定时器的时间匹配触发

并且 在F2837X中

ADC的中断可以进行ping pong模式的再次触发

也就是当某个SOC触发ADC中断后

比如ADC中断1 或2

这两个中断可以触发一个序列的ADCSOC采样

叫做ping pong功能

这样就可以循环反复的做两组SOC的互相采样

当SOC触发 进入转换器

转换以后 数据会存放到结果寄存器

最后会产生一个EOC信号

EOC信号触发ADC的中断

每一个ADC模块 都是这样的功能

具体看一个例子

PWM1的SOC信号 设置为SOC12的触发源

当PWM1的事件匹配 触发SOC信号产生时

三个SOC会对应优先级的管脚

信号采样 然后在SOC信号完成时

转换并产生EOC信号

触发ADC中断

ADC中断1 三个SOC设置不同的采样保持周期

七个系统时钟 10个系统时钟

和8个系统时钟

然后 SOC345也是同样

但是软件强制触发SOC 并且在

SOC5转换完以后 会触发ADC中断2

同时 ADC中断2还可以触发SOC345的触发采样

进入这样的一个ping pong模式

如果不设置PIE 及CPU打开相应的中断

将不会被触发

ADC中断2的标志位会被置起

刚刚提到除了和PQ SOC触发机制同样的SOC触发外

F2837X的SOC增加了额外的ping pong触发功能

既可以采用ADC的中断

来触发另一组的采样

图中的例子是从SOC0 1 2 由软件触发

设置相同的采样窗

然后ADC中断1的标志 会有SOC2的EOC产生

SOC3 4 5

由ADC中断1作为触发源

也就是当ADC1的标志置起的时候

就会被触发进入采样

需要强调的是 只有ADC中断2 中断1这两个中断标志

才能作为ping pong模式的采样触发源

ADC采样优先级是用户非常关心的一点

C2000的PQ产品 都会用SOC的采样方式

这种方式相比老的SEQ 序列采样模式

会更灵活

并且模式round robin 优先轮转模式

为默认优先级

当然可以设置某几个SOC取得永久的优先级

同时 F2837X在此基础上 增加了round robin burst mode

这个模式可以在一次触发事件后 同时触发多个SOC事件

让现有的round robin更灵活

下面对这三种模式来介绍

首先看普通的round robin加上high priority模式

假如目前的寄存器中设置了SOC0到4为high priority

也就是他们不受round robin的轮转控制

那round robin就在剩下的SOC5 到15 11个SOC中轮转

我们先看所有的SOC均处于round robin的情况

初始化时 优先级是SOC0 从小到大降低

也就是SOC0 默认情况下 是最高优先级

SOC15是最低优先级 这是在上电的那个时刻

也就是当前 round robin指针在SOC15上

SOC0是最高优先级 此时SOC机被触发以后

就会将指针指到SOC7 然后它进入采样转换

在SOC7完成后

此时指针指到SOC7 此时SOC8是最高优先级

往后以此类推 这个时候SOC7是最低优先级

当此时SOC12和SOC2同时触发

这个时候SOC8是最高优先级 所以SOC12的优先级高于SOC2

系统会先处理SOC12 指针指向SOC12

当SOC12转换完成后 此时SOC2采样转换

当然 这个时候指针指到SOC2时

以此类推 SOC3是最高优先级 SOC2是最低优先级

那如果有最高优先级 是怎么样的情况呢

假设SOC0到3 拥有了最高优先级

也就是如图所示 它们不在圈子里进行round robin的轮转

圈内只有SOC4 到15

当系统上电 初始化完以后

SOC15是最低优先级 是指针的位置

SOC4是最高优先级

此时 我们重复刚才的情况

SOC7被触发 那SOC7马上进入采样转换

然后重复刚才的情况 SOC2和SOC12

同时被触发 由于SOC2退出了round robin

所以SOC2有最高优先级

就先做SOC2的采样转换

然后回到SOC12做采样转换

之后 SOC12变成round robin中的最低优先级

SOC13是最高优先级

除了前面两种在PQ中广泛使用的模式外

F2837X在ADC的采样中增加了burst mode

它需要对三个寄存器的设置

使能寄存器 bursten

然后是burst mode的尺寸

也就是一次burst事件触发多少SOC来采样转换

最后设置burst事件的触发源

它和ADCSOC的触发源比较类似

都可以是软件或者定时器

或者是PWM的SOC

这个时候 我们举个例子

和之前的high priority一样

设置SOC0到3 为最高优先级

其他的在round robin中轮转

我们把burst size设为1

也就是一次burst事件触发会采样转换2个SOC

第一次burst信号来的时候

由于当前最高优先级是SOC4 所以在转换完SOC4 5后

指针在SOC5 此时的最高优先级是SOC6

此时 如果SOC1和burst触发信号同时来到

SOC1在圈外 拥有最高优先级

所以先执行SOC1的采样转换

然后再执行下一次burst事件

假设下一次burst事件 已经到来

对SOC6 7 进入转换

然后SOC7的采样转换完成后

SOC8是最高的采样优先级

视频报错
手机看
扫码用手机观看
收藏本课程

视频简介

C2837x入门指南(七) — 模拟子系统 ADC DAC CMP SDFM(上)

所属课程:C2837x入门指南 发布时间:2016.06.06 视频集数:28 本节视频时长:00:13:54
C2837x概述;芯片架构; 开发环境;外设寄存器操作;复位和中断;系统初始化;模拟子系统 ADC DAC CMP SDFM;控制类外设PWM CAP QEP。
TI培训小程序