C2837x入门指南(七) — 模拟子系统 ADC DAC CMP SDFM(上)
Loading the player...
将在30s后自动为您播放下一课程
大家好 这一章我们给大家介绍一下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是最高的采样优先级
大家好 这一章我们给大家介绍一下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是最高的采样优先级
大家好 这一章我们给大家介绍一下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。
//=$v1;?>
//=$v['id']?>//=$v['down_category']?>//=$v['link']?>//=$v['is_dl']?>//=$v['link']?>//=$v['name']?>//=$v['name']?>
//=$v['id']?>//=$v['down_category']?>//=$v['path']?>//=$v['is_dl']?>//=$v['path']?>//=$v['name']?>//=$v['name']?>
////=count($lesson['bbsinfo'])?>
//=$elink?>//=$elink?>//=$tags[0]?>//=$tags[0]?>//=$elink?>//= $elink?>//=$tags[1]?>//=$tags[1]?>
//=$lesson['bbs'];?>
//=count($lesson['bbsinfo'])?>