- 本课程为精品课,您可以登录eeworld继续观看:
- (7) - 模拟子系统 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是最高的采样优先级
课程介绍
共计28课时,4小时27分22秒
C2837x入门指南
TI C2000 MCU PWM F2837xD ADC DAC DMA CLA C2837x CMP SDFM CAP QEP c28x
F2837x系列的最新 C2000™ Delfino™ 32 位 F2837xD 微控制器 (MCU),为工业实时控制实现最新创新,并设定了全新性能标准。这些最新 MCU 支持双核 C28x 处理功能与双实时控制加速器(也称为控制律加速器或 CLA),可提供 800 MIPS 浮点性能,从而可帮助设计人员为计算要求严格的控制应用开发低时延系统。此外,设计人员还可通过将多个嵌入式处理器整合在单个 MCU 中以降低复杂性,充分满足高级伺服驱动器、太阳能中央逆变器以及工业不间断电源 (UPS) 等需要实时信号分析的应用需求。
猜你喜欢
换一换
推荐帖子
- DSP2808怎么实现can总线发送数据到上位机?
- 之前在dsp2812将数据通过USBCAN2I将数据发送给了电脑的上位机,现在希望相应的功能在2808上实现,按着之前在dsp2812的代码的功能在dsp2808上敲出来,结果一直发送不了数据,很郁闷。请大神赐教! ...
- hebolovecjj DSP 与 ARM 处理器
- 2553串口波特率问题求助
- 我设置的时钟是1MHz,波特率为38400,但是发出去的数据收回来全是一些莫名其妙的汉字,这个要怎么办?...
- 飞扬跋扈 微控制器 MCU
- 28335计算正余弦函数的时间?
- 请教下各位一个问题: 在28335中直接调用sin 或cos 函数计算一次大概需要多少时间? 我在dsp中编写了一个简单的小程序,运算100次sin(x),然后toggle-翻转某个gpio的引脚,在示波器中观察了 发现计...
- liuguangniao 微控制器 MCU
- 如何在CCS中给工程添加用户路径
- 在进行DSP软件调试时,常常从其他地方拷贝程序到用户主机上运行,因此依赖项路径通常需要重新设置,CCS工程组建选项提供了这样一个窗口,用户可以指定路径。 1. Include the following files in application project that uses driver library.  $(ProjectDir)\emac_dm6437\ti\n...
- Aguilera 微控制器 MCU