1. 从零开始:理解F28035 ADC顺序采样的核心概念
如果你刚开始接触TI C2000系列的F28035,面对ADC配置那一堆寄存器,尤其是看到“顺序采样”、“ACQPS”、“触发源”这些词就有点发懵,那太正常了。我刚开始调电机控制的时候,电流采样波形总是不对,折腾了好几天,最后发现问题就出在对ADC采样窗口和触发时序的理解不透彻上。今天,我就把自己踩过的坑和总结的经验,用最直白的话跟你聊聊,保证你听完之后,能自己动手配出一个稳定又精准的ADC采样流程。
首先,咱们得搞清楚F28035的ADC在“顺序采样”模式下到底是怎么干活的。你可以把它想象成一个非常守规矩、但手脚不算特别快的“采样工人”。这个工人面前有16个工位(对应16个SOC,也就是“Start-Of-Conversion”转换序列),每个工位负责从指定的原料管道(模拟输入通道,比如A0, B1等)取一份原料(电压信号)进行加工(转换为数字值)。顺序采样,就是这个工人严格按照1号工位、2号工位、3号工位……这样的顺序,一个接一个地干活,同一时间只处理一个通道的信号。这和它的另一种模式——同步采样(可以同时处理A、B两组对应通道)——是截然不同的工作方式。
那么,这个“采样工人”干每个活要花多长时间呢?这就引出了最关键的参数之一:采样窗口时间,也就是ACQPS。很多新手会误以为ACQPS=10就代表10个ADC时钟周期,其实不然。官方手册里写得明明白白:实际的采样窗口长度是 ACQPS + 1 个ADC时钟周期。比如你设置ACQPS = 6,那么采样开关保持闭合、让外部电容充电到稳定电压的时间,实际上是7个时钟周期。这个“+1”非常容易忽略,直接影响到你计算总采样时间和判断信号是否充分建立。我当初就是这里没注意,导致采样高频信号时失真严重。
理解了单个采样窗口,我们再来看看“总的采样时间”。当你要用多个SOC(比如SOC0到SOC15)连续采样多个通道时,总耗时并不是简单地把每个窗口时间加起来。因为除了采样窗口(ACQPS+1),每个转换还需要固定的“转换时间”(对于12位精度,大约是21个ADC时钟周期)。而且,在顺序采样模式下,通道切换也需要时间(大约是6个时钟周期)。所以,一个更接近实际的总时间估算公式是:总时钟数 = Σ(每个SOC的ACQPS+1) + SOC数量 × (转换时间 + 通道切换时间)。后面我们会用具体代码来算给你看。
最后说说“触发”。你不能让这个“采样工人”没完没了地干活,得告诉他什么时候开始这一轮16个工位的流程。这就是触发机制。F28035的ADC非常灵活,可以由多种“发令枪”来触发,最常用的就是ePWM模块的特定事件(比如PWM周期匹配时触发,非常适合电机控制中的定点采样),也可以由CPU定时器、外部引脚中断,甚至是由ADC自身产生的中断(ADCINT) 来触发下一次采样。选对触发源,并且让触发脉冲的节奏和采样工人的工作节奏匹配好,是整个ADC稳定工作的基石。接下来,我们就钻进细节里,把这些关键配置一个一个掰开揉碎讲清楚。
2. 庖丁解牛:ACQPS采样窗口参数的深度配置与实战计算
配置ACQPS参数,绝对不是随便填个值那么简单。它直接决定了你的ADC“看”输入电压的那一眼够不够仔细、够不够准。这个参数设置得太小,采样电容还没充到稳定的输入电压值,转换就开始了,结果就是采样值比实际值低,而且噪声大;设置得太大,虽然精度有保障,但会拖慢整个采样系统的速度,在高频应用里可能就来不及了。所以,这是一个在速度和精度之间找平衡的艺术。
首先,我们得从原理上明白ACQPS在影响什么。ADC的输入前端有一个采样保持电路,你可以把它想象成一个通过一个小开关连接到外部信号的小电容。当开关闭合(采样窗口开启),外部信号开始给这个电容充电;开关断开(采样窗口结束),电容上的电压就被“保持”住,交给后面的电路去进行模数转换。ACQPS控制的,就是这个开关闭合的时间。这个时间必须足够长,长到电容上的电压能够充电到非常接近外部输入电压的数值。这个“足够长”取决于什么呢?主要取决于两点:一是你的信号源内阻,二是你的ADC输入电容。信号源内阻越大,充电就越慢;输入电容越大,充到同样电压需要的电荷就越多,也越慢。TI的数据手册会给出一个参考的最小采样窗口时间,但那是基于典型条件。在实际电路中,如果你的信号前端有运放缓冲(输出阻抗很低),那么需要的窗口时间就可以很短;如果你的信号直接来自高阻抗传感器分压网


245

被折叠的 条评论
为什么被折叠?



