ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

STM32G4 ADC时钟链路评审:避开FOC采样陷阱

STM32G4 ADC时钟链路评审:避开FOC采样陷阱 最近帮朋友评审一块基于STM32G431的双电机FOC控制板原理图发到我手上的时候我先没急着看电机驱动和功率部分而是直接把目光钉在ADC clock相关的电源、参考电压和时钟链路这些引脚上。STM32G4xx的ADC和其他系列不完全一样很多人画完原理图觉得电源接了、参考电压接了、晶振也起振了应该就没问题结果一上板电流采样波形全是毛刺或者ADC值跳得离谱排查半天才发现是ADC时钟链路在原理图阶段就埋了雷。这篇文章就从这块板子的评审过程讲起把STM32G4xx MCU的ADC时钟原理图应该怎么审、怎么改、软件侧怎么配一次说清楚。内容更适合正在做G4硬件设计、电机FOC控制或者准备投板前做自查的工程师看当然对刚接触MCU电路设计的新手也会有不少帮助。1. 先搞懂G4的ADC时钟到底是怎么回事1.1 为什么G4的ADC时钟容易被人画错STM32G4系列是ST专门给数字电源和电机控制堆料的一个系列ADC做得相当激进。它内部是12位逐次逼近型SAR ADC转换原理是一个比较器配合电容阵列一步一步逼近输入电压。每次逼近都需要时间而这个时间由ADC的工作时钟决定。SAR ADC的工作时钟越高单次比较时间越短但留给采样电容充电的时间也越短一旦超过极限内部电容还没稳定转换结果就会带上无法忽略的误差。很多人沿用早期STM32F1系列的习惯以为ADC时钟是从APB总线分出来的把系统时钟配好就完事。但G4的ADC时钟树要复杂不少它既可以来自系统时钟SYSCLK也可以来自PLL的某个输出还可以直接来自外部时钟或内部高速RC然后经过一个可编程分频器再进ADC。时钟源选择多了出错的概率也大了。我评审过的项目里至少有三成把ADC时钟配到超出芯片允许上限或者分频器组合不合理导致采样率不足。还有一点特别容易忽略G4系列的ADC拥有多ADC互联、注入通道、硬件过采样等一堆特性很多设计者为了把这些功能用起来时钟源和触发源组合得很花哨反而把最基础的“ADC kernel clock不能超限”给忘了。所以我在评审原理图和软件配置时第一步永远是画一条从晶振到ADC的时钟链路把每一级的频率都算一遍。这个习惯帮我抓住了非常多原本要到上板调试才能暴露的问题。1.2 ADC工作时钟与触发时钟两个容易搞混的概念新手最容易混的一点是分不清“ADC工作时钟”和“ADC触发时钟”。它们名字里都带“时钟”但作用完全不一样。ADC工作时钟是ADC转换逻辑本身的节拍决定了一次转换周期是多久。它来自G4内部时钟树在原理图上看不见只能通过电源引脚和外部晶振间接影响。ADC触发时钟准确叫法是“触发信号”它决定的是转换动作什么时候开始。比如FOC里用PWM定时器的TRGO事件去触发ADC采样三相电流这个触发信号是芯片内部的互联在原理图上同样看不见。只有当外部触发信号来自引脚比如用外部PWM同步时才需要去关注原理图上的走线。这两个概念混在一起最容易出的问题是在CubeMX里把触发源选成External event然后以为ADC工作时钟也需要外部给定进而画了奇怪的外部时钟输入电路。实际上G4的ADC时钟和触发信号是两套完全独立的配置绝大多数应用根本不需要在原理
返回列表