
1. 为什么电流采样总在“翻车”从CC6920的选型逻辑说起做电机控制、电源管理或者电池管理系统BMS的朋友大概率都经历过这样的场景板子焊好了代码跑起来了电机一转电流波形要么是一团毛刺要么零点漂移得亲妈都不认识要么干脆在MOS管开关瞬间直接饱和。折腾半天最后发现不是算法的问题而是电流传感器选型或者前端调理电路从一开始就埋了雷。CC6920这颗差分霍尔电流传感器算是近几年在中小功率场景里出镜率比较高的方案。它本质上是一颗基于霍尔效应的隔离型电流传感器内部集成了霍尔探头、差分放大、温度补偿和线性化处理输出一个与被测电流成比例的模拟电压。和传统的分流电阻加运放方案比它最大的优势是隔离测量——原边和副边之间没有电气连接高压侧和低压控制侧天然隔开省掉了光耦或者隔离运放PCB布局也简单不少。和闭环霍尔比如莱姆的CAS系列比它成本低、体积小虽然精度和温漂略逊一筹但对于几十安培以内、对成本敏感的场合比如电动工具、逆变器相电流采样、直流充电桩的漏电流监测CC6920这类开环差分霍尔方案是相当务实的选择。但“务实”不等于“随便用”。我见过太多项目传感器选对了电路却画废了。CC6920的输出是差分电压很多新手直接拿单端ADC去采其中一端把另一端悬空或者随便接地结果共模干扰全进来了波形上叠着几十毫伏的开关噪声FFT一分析谐波满天飞。还有人忽略了CC6920的供电和输出摆幅限制用3.3V供电却指望输出能到3.0V以上结果大电流时输出削顶闭环控制直接失控。所以这篇内容我想从一线调试的角度把CC6920从选型、电路设计、ADC配置到波形分析的完整链路拆开讲一遍。不管你是用STM32、GD32还是其他MCU只要涉及模拟电流采样这套思路都能直接套用。文章里会涉及具体的参数计算、寄存器配置思路、Keil和CubeIDE下的实操细节以及我用示波器和FFT踩过的那些坑。目标很明确让你拿到CC6920之后能一次把电路调通波形干净采样值可信。2. CC6920差分霍尔电流传感器模块的核心原理与选型要点2.1 霍尔电流传感器的基本工作原理先把这个东西讲透不然后面的电路设计全是空中楼阁。CC6920的核心是一块霍尔元件放在一个由原边电流产生的磁场里。根据安培环路定理电流流过导体时会在周围产生磁场磁场强度H和电流I成正比比例系数取决于导体的几何形状和磁路设计。CC6920内部把原边导体做成特定的形状让磁力线集中穿过霍尔片这样就能把电流信号转换成磁场信号。霍尔元件感受到磁场后输出一个微弱的霍尔电压VH这个电压通常只有微伏到毫伏级别而且伴随着很大的温漂和失调。所以芯片内部紧接着就是差分放大器把VH放大到可用的电平同时通过差分结构抑制共模温漂。再往后是温度补偿和线性化电路保证在-40到125度范围内输出曲线尽量平直。最终输出的是一个模拟电压VOUT典型情况下VOUT VCC/2 S × I其中S是灵敏度单位mV/AI是被测电流。零点在VCC/2正电流输出往上走负电流往下走这就是所谓的“双向测量”。这里有个关键点CC6920是开环结构。它不像闭环霍尔那样有副边补偿绕组去抵消磁芯磁通所以它的精度受磁芯非线性、剩磁和温漂的影响更大。但开环的好处是结构简单、功耗低、无插入损耗原边电阻极小、响应快。对于带宽要求不高通常几十kHz以内、精度要求1%左右的场合开环完全够用。2.2 CC6920的关键参数解读与选型计算选型时不能只看“最大电流”一个参数下面这几个指标必须一起看参数典型值选型时的注意点供电电压VCC3.3V或5V必须和ADC参考电压匹配否则量程对不上灵敏度S66mV/A以CC6920-30A为例不同量程型号灵敏度不同量程越小灵敏度越高零点输出电压VCC/2双向测量时零点必须在ADC量程中点附近线性度±0.5% FS影响大电流区的绝对精度带宽100kHz左右开关频率高的场合要核算相位延迟隔离耐压数百伏到数千伏根据应用场景的安全等级选择选型的第一步是确定量程。假设你的电机峰值电流是20A那么选30A量程的型号比较合适留50%余量。如果选50A量程灵敏度会降到约40mV/A同样电流下输出摆幅更小ADC量化误差占比更大。但也不能选得太紧比如峰值20A选20A量程一旦过冲就饱和而且零点漂移可能让负半周削顶。第二步是算输出摆幅。以3.3V供电、30A量程、灵敏度66mV/A为例零点1.65V正20A时输出1.65 20×0.066 2.97V负20A时输出1.65 - 1.32 0.33V。看起来没问题但要注意CC6920的输出级不是轨到轨 datasheet里通常标了输出摆幅范围比如VCC-0.3V到GND0.3V。也就是说3.3V供电时实际可用输出范围大概是0.3V到3.0V。那么正20A时2.97V已经贴着上限了稍微过冲就削顶。这时候要么选5V供电输出范围更宽要么选灵敏度更低的型号要么把量程放大到40A。第三步是算ADC分辨率需求。假设你要检测的最小电流是0.1A那么输出变化是0.1×0.066 6.6mV。如果ADC是12位、参考3.3VLSB 3.3/4096 0.806mV6.6mV对应约8个LSB勉强能分辨。但如果噪声有2-3个LSB那0.1A的信号就淹没了。所以小电流检测场合要么选更高灵敏度的型号要么用外部运放再放大要么换16位ADC。我一般建议被测最小电流对应的输出电压变化至少要有10个LSB以上否则软件滤波再厉害也救不回来。2.3 差分输出的真正价值共模抑制与抗干扰CC6920的差分输出是它区别于普通单端霍尔传感器的核心卖点。差分信号有两个输出引脚VOUTP和VOUTN理想情况下VOUTP VCM VDIFF/2VOUTN VCM - VDIFF/2其中VCM是共模电压VDIFF是差模信号。外部干扰比如MOS管开关产生的dv/dt耦合通常是共模的会同时叠加到两根线上做差之后就被抵消了。这就是共模抑制比CMRR的物理意义。但很多人的电路设计把差分优势白白浪费了。最常见的错误是只把VOUTP接到ADCVOUTN直接接地或者悬空。这样共模干扰直接变成单端噪声进入ADC差分结构形同虚设。正确的做法是用一个差分放大器比如INA240、AD8138或者分立运放搭的差分电路把差分信号转换成单端或者直接用支持差分输入的ADC比如STM32G4系列的某些型号、ADS131M08等。如果MCU只有单端ADC那就必须加差分转单端电路而且电阻要匹配到0.1%以上否则CMRR会急剧下降。还有一个细节CC6920的差分输出共模电压通常是VCC/2但不同批次可能有几十毫伏的偏差。如果直接用差分ADC要确保ADC的共模输入范围覆盖这个电压。如果加差分运放要在运放输入端加偏置电路把共模调到合适电平。这些在后面电路设计章节会展开。3. 硬件电路设计从供电去耦到ADC前端的完整链路3.1 供电与去耦别让电源噪声毁掉精度CC6920的供电质量直接决定输出噪声。我实测过用普通的AMS1117给CC6920供电电机一转输出上就有几十毫伏的开关频率纹波。换成低噪声LDO比如TPS7A4700之后纹波降到几毫伏。所以供电这块不能省。具体做法CC6920的VCC引脚旁边放一个10uF的钽电容或者MLCC做低频储能再并一个100nF的陶瓷电容做高频去耦两个电容尽量靠近芯片引脚走线要短而粗。如果板上还有MOS管驱动电路CC6920的供电最好单独走一路LDO或者至少在电源入口加一个磁珠加电容的π型滤波。磁珠选100MHz下阻抗600欧姆左右的电容用10uF加100nF组合。地线处理也很关键。CC6920的GND引脚要接到模拟地和数字地单点连接。如果原边大电流的地和副边信号地混在一起原边电流在地线上的压降会串到信号地造成零点漂移。我一般会在PCB上把原边功率地和副边信号地分开铺铜中间用0欧姆电阻或者磁珠连接连接点选在LDO的输入地附近。3.2 差分转单端电路电阻匹配是命门如果MCU只有单端ADC差分转单端电路是必须的。最经典的方案是用一颗运放搭差分放大器四个电阻需要严格匹配。假设运放同相端接VOUTP反相端接VOUTN反馈电阻Rf和输入电阻Rin的比值决定增益。为了抑制共模必须满足Rf/Rin同相端 Rf/Rin反相端且电阻公差要小。我推荐用0.1%精度的薄膜电阻温漂25ppm/度以内。如果预算有限至少用1%的但要在软件里做零点校准。增益怎么定假设CC6920输出差分摆幅是±1.32V对应±20AADC量程是0到3.3V那么需要把差分信号偏置到1.65V增益设为1左右。如果差分摆幅只有±0.66V那增益可以设2充分利用ADC量程。运放选型要注意带宽要大于信号带宽的10倍以上压摆率要够输入失调电压要小最好小于1mV否则会引入直流误差。我常用的是OPA2188或者ADA4522前者便宜后者性能更好但贵。如果成本敏感TI的TLV9062也能用但失调电压大一些需要软件校准。还有一种更省事的方案用集成差分放大器比如INA240。它内部电阻已经激光修调过CMRR很高而且增益固定比如20V/V外围只需要几个电容。缺点是增益不可调而且输入共模范围有限制。如果CC6920的共模电压是1.65VINA240的共模范围通常能覆盖但要看具体型号。3.3 ADC前端抗混叠滤波截止频率怎么算ADC采样之前必须加抗混叠滤波器否则高频噪声会折叠到低频FFT分析时看到一堆假峰。最简单的是一阶RC低通放在差分转单端之后、ADC输入之前。截止频率fc 1/(2πRC)要根据采样率和信号带宽来定。假设你用STM32的ADC采样率设为100kHz信号带宽关心到10kHz。根据奈奎斯特采样率至少是信号带宽的2倍但为了抗混叠截止频率要低于采样率的一半。这里fc可以设20kHz左右这样10kHz以内的信号基本无衰减20kHz以上的噪声被抑制。选R1kΩC10nFfc 1/(2π×1000×10e-9) ≈ 15.9kHz差不多。但要注意ADC输入阻抗和RC滤波会形成分压。STM32的ADC输入阻抗在采样时不是无穷大而是有一个采样电容和开关电阻。如果R太大采样电容充电不足会导致采样值偏低。一般建议R不超过10kΩC在1nF到100nF之间。如果R必须大就要延长采样时间。在CubeMX里可以设置采样周期比如设成239.5个ADC时钟周期给电容足够充电时间。另外如果板上干扰特别严重可以在RC之后再并一个TVS或者肖特基二极管做钳位防止过压打坏ADC引脚。但二极管漏电流会影响精度要选低漏电流的型号比如BAV199。3.4 PCB布局原边走线和副边信号的隔离艺术CC6920的封装通常有原边引脚和副边引脚原边走大电流副边走小信号。布局时原边走线要短而宽减少电阻和电感。如果原边走线太长寄生电感会在电流突变时产生电压尖峰耦合到副边。我一般要求原边走线宽度至少2mm1oz铜厚下约5A/mm长度尽量短而且原边和副边之间要留足够的爬电距离至少5mm以上高压场合还要开槽。副边信号线要远离原边和任何开关节点。差分对VOUTP和VOUTN要走等长、平行、紧耦合最好包地。如果走线经过MOS管或者电感下方那基本就废了共模干扰会非常大。我习惯在CC6920下方铺一层完整的模拟地原边和副边之间用地线隔开形成屏蔽。还有一点CC6920的敏感区域是霍尔片所在位置 datasheet里通常会标出“敏感区”布局时要避免在这个区域下方走任何高频或大电流线路。如果实在避不开至少加一层地屏蔽。4. STM32/GD32平台下的ADC配置与采样实操4.1 ADC工作模式选择规则通道、注入通道还是DMASTM32的ADC有规则通道和注入通道两种。规则通道适合常规轮询或DMA搬运注入通道适合高优先级、需要打断规则转换的场景。对于电流采样如果是一路CC6920用规则通道加DMA就够了。如果是电机控制的三相电流通常用注入通道因为要和PWM同步在特定时刻触发采样。我以STM32G474为例它的ADC支持硬件过采样可以提高到16位有效分辨率。配置步骤大致是在CubeMX里使能ADC选择通道设置采样时间为尽可能长比如247.5个周期使能连续转换模式或者外部触发模式。如果要用DMA在DMA Settings里添加ADC对应的DMA请求模式选Circular数据宽度选Half Word12位ADC结果存在16位变量里。触发源很关键。如果是电机控制通常用定时器的TRGO事件触发ADC这样采样时刻和PWM中心对齐避开开关噪声。比如TIM1的更新事件作为触发源ADC在计数器溢出时启动转换。这样每次采样都发生在MOS管开关之后的稳定时刻波形干净很多。4.2 采样时间与采样周期的计算采样时间太短采样电容充不满读数偏低采样时间太长转换速率上不去。STM32的ADC采样时间 采样周期数 × ADC时钟周期。假设ADC时钟是60MHz采样周期设为247.5那么采样时间 247.5/60MHz 4.125微秒。加上转换时间12位约12.5个周期约0.2微秒总转换时间约4.3微秒对应最大采样率约230kHz。对于电流环带宽几kHz的应用绰绰有余。但要注意如果用了外部RC滤波R1kΩC10nF时间常数τ10微秒。采样时间4.125微秒小于τ采样电容可能充不到最终值。这时候要么减小RC比如R100ΩC10nFτ1微秒要么延长采样时间到10微秒以上。我一般会实测给一个已知的直流电压看ADC读数是否和万用表一致如果偏低就延长采样时间。4.3 零点校准与去直流处理CC6920的零点理论上在VCC/2但实际有偏差而且温漂。所以上电时必须做零点校准。做法是在电机不转、电流为零时连续采样几百次取平均值作为零点偏移量存到变量里。后续每次采样值减去这个偏移量再乘以灵敏度系数得到实际电流。代码示例伪代码#define ADC_REF 3.3f #define ADC_RES 4096.0f #define SENSITIVITY 0.066f // 66mV/A #define ZERO_SAMPLES 500 float zero_offset 0.0f; void calibrate_zero(void) { uint32_t sum 0; for (int i 0; i ZERO_SAMPLES; i) { sum adc_read(); delay_us(100); } zero_offset (float)sum / ZERO_SAMPLES; } float get_current(void) { float adc_val (float)adc_read(); float voltage (adc_val - zero_offset) * ADC_REF / ADC_RES; return voltage / SENSITIVITY; }这里有个细节零点校准要在原边电流确实为零的时候做。如果电机静止但驱动器有漏电流或者有外部磁场零点会偏。我一般会在校准前断开电机线或者确保H桥上下管都关断。去直流之后还要做归一化就是把电流值映射到-1到1或者实际安培数。归一化系数就是灵敏度的倒数。如果用了差分转单端电路还要考虑运放增益。比如运放增益是2那么实际灵敏度变成132mV/A归一化时除以0.132。4.4 软件滤波均值、中值还是卡尔曼ADC采样值难免有噪声软件滤波是必须的。最简单的滑动平均取最近N个样本的平均值。N越大越平滑但延迟越大。对于电流环延迟太大会影响控制带宽。我一般取N8到16对应几十微秒的延迟对几kHz的电流环影响不大。如果噪声里有明显的尖峰比如MOS管开关瞬间滑动平均会被尖峰拉偏。这时候用中值滤波更合适取最近N个样本排序后取中间值。中值滤波对脉冲噪声抑制很好但计算量大一些。可以组合使用先中值滤波去尖峰再滑动平均平滑。卡尔曼滤波在电流采样里也有用的但参数调起来麻烦而且对模型准确性要求高。对于大多数应用中值加均值就够了。我实测过在电机驱动板上原始ADC噪声峰峰值约20个LSB中值滤波后降到5个LSB再滑动平均后降到2个LSB效果很明显。5. 波形分析实战从示波器抓取到FFT解读5.1 用示波器看CC6920输出探头怎么接示波器是调试电流采样的眼睛。但接法不对看到的全是假象。首先用差分探头最好直接测VOUTP和VOUTN的差值。如果没有差分探头用两个单端探头分别测VOUTP和VOUTN然后在示波器里做数学运算CH1-CH2。但两个探头的接地夹要接在同一点否则地环路会引入干扰。如果只能用一个探头那就测差分转单端之后的信号但这样看不到共模干扰。我建议至少用两个探头一个测VOUTP一个测VOUTN同时看共模和差模。触发方式选边沿触发触发源选PWM信号或者MOS管栅极信号这样能看到开关瞬间的细节。时基设置要看信号频率。如果是50kHz的PWM周期20微秒时基设5微秒/格能看到几个周期。如果看开关瞬间的振铃时基要设到100纳秒/格。电压档位根据输出摆幅定比如1V/格。耦合方式选DC因为要看直流分量。5.2 典型波形解读正常、振铃、饱和、共模干扰正常的CC6920输出波形应该是一个干净的、跟随电流变化的三角波或者正弦波叠加在零点电压上。如果电机是FOC控制相电流应该是正弦波THD很小。如果看到波形上有高频振铃通常是原边寄生电感或者MOS管开关引起的振铃频率一般在几MHz到几十MHz。如果波形在电流峰值处变平那就是饱和了。原因可能是量程不够、供电不足或者输出摆幅限制。这时候要检查峰值电流是否超过量程或者换5V供电。如果波形整体上下跳动而且跳动频率和开关频率一致那是共模干扰。用两个探头分别看VOUTP和VOUTN会发现两根线上有同相位的噪声。解决办法是加共模扼流圈或者改善差分转单端电路的CMRR。还有一种情况波形上有50Hz或者100Hz的工频干扰。这通常是地环路或者电源纹波引起的。检查示波器探头地线是否太长或者CC6920的供电是否来自开关电源。5.3 FFT分析谐波、信噪比与有效位数示波器的FFT功能可以看频谱。把时域波形做FFT能看到基波和各次谐波。如果THD很大说明电流波形失真可能是控制算法问题或者传感器非线性。如果底噪很高说明信噪比差可能是ADC分辨率不够或者前端噪声大。信噪比SNR和有效位数ENOB的关系是ENOB (SNR - 1.76) / 6.02。比如SNR是60dBENOB约9.7位。对于12位ADC理想SNR是74dBENOB约12位。如果实测只有60dB说明噪声吃掉了2位多。这时候要查噪声来源是CC6920本身、运放、ADC还是电源。我一般会用示波器的FFT看几个关键点基波幅度、二次谐波、三次谐波、底噪。如果二次谐波特别大可能是差分电路不对称如果三次谐波大可能是磁芯非线性。底噪如果集中在某个频率可能是开关电源的纹波。5.4 数据导出与离线分析从示波器到Python示波器屏幕上看波形不够细致最好把数据导出来用Python分析。大部分示波器支持CSV导出把时间列和电压列存下来。然后用numpy做FFTmatplotlib画图。import numpy as np import matplotlib.pyplot as plt data np.loadtxt(scope.csv, delimiter,, skiprows1) t data[:, 0] v data[:, 1] # 去直流 v v - np.mean(v) # FFT N len(v) fs 1.0 / (t[1] - t[0]) freq np.fft.rfftfreq(N, 1/fs) spectrum np.abs(np.fft.rfft(v)) / N * 2 plt.plot(freq, 20*np.log10(spectrum)) plt.xlabel(Frequency (Hz)) plt.ylabel(Magnitude (dB)) plt.grid() plt.show()这样能看到更精细的频谱而且可以算THD、SNR等指标。如果发现某个频率的干扰可以回到电路上找源头。比如开关频率的谐波通常是MOS管开关引起的如果频率是50Hz的整数倍那是工频干扰。6. 常见问题与排查技巧实录6.1 零点漂移温漂、剩磁还是地环路零点漂移是CC6920最常见的抱怨。表现是电机不转时ADC读数慢慢往上或往下爬。原因可能有三个温漂、剩磁、地环路。温漂是霍尔传感器的固有特性CC6920虽然内部补偿了但不可能完全消除。如果漂移量在几十毫伏以内可以通过软件定期校准。比如每次电机启动前重新校准零点。如果漂移很大比如几百毫伏那可能是芯片坏了或者供电不稳。剩磁是原边大电流过后磁芯留下的磁化。开环霍尔没有去磁绕组剩磁会导致零点偏移。解决办法是选磁芯材料好的型号或者在大电流过后施加反向小电流去磁。但CC6920是集成芯片没法外部去磁只能选品质好的批次。地环路是最容易忽略的。如果CC6920的GND和MCU的GND之间有电流流过地线上的压降会叠加到输出上。检查方法用万用表测CC6920的GND和MCU的GND之间的交流电压如果有几十毫伏那就是地环路。解决办法是单点接地或者加隔离。6.2 输出饱和量程、供电还是负载输出饱和的表现是电流还没到峰值输出就平了。先查量程峰值电流是否超过传感器量程。再查供电3.3V供电时输出上限约3.0V如果零点1.65V正电流只能到1.35V/灵敏度。比如灵敏度66mV/A1.35V对应20.5A。如果峰值电流25A那就饱和了。换5V供电输出上限约4.7V零点2.5V正电流可到2.2V/0.066 33A够了。还要查负载如果ADC输入阻抗低或者运放输出驱动能力不足也会导致电压上不去。用万用表直接测CC6920输出引脚如果电压正常但ADC读数不对那就是ADC前端的问题。6.3 ADC读数跳动噪声来源定位与抑制ADC读数跳动大先看峰峰值。如果只有几个LSB那是正常量化噪声。如果几十个LSB那要查噪声源。用示波器看CC6920输出如果输出本身干净那就是ADC或电源的问题。如果输出有噪声那就是CC6920或前端的问题。抑制噪声的手段加RC滤波、加共模扼流圈、改善供电、增加软件滤波。我一般会先加RC再软件滤波最后才动布局。如果布局已经定了改起来麻烦软件滤波是最快的。6.4 常见问题速查表现象可能原因排查方法解决措施零点漂移温漂、剩磁、地环路测GND间电压加热芯片看漂移软件校准、单点接地、换芯片输出饱和量程不够、供电低、负载重测输出引脚电压算峰值电流换量程、换5V供电、加缓冲读数跳动噪声、ADC配置、电源纹波示波器看输出FFT看频谱RC滤波、软件滤波、换LDO波形振铃原边寄生电感、MOS开关看振铃频率查原边走线缩短原边走线、加吸收电路共模干扰差分转单端CMRR低两探头测VOUTP/VOUTN匹配电阻、用集成差分放大器FFT谐波大非线性、控制失真看谐波次数校准、改控制算法6.5 几个我踩过的坑第一个坑用STM32的ADC采CC6920采样时间设得太短读数比万用表低10%。后来把采样时间从7.5周期改成247.5周期读数就准了。原因是ADC采样电容和外部RC形成了分压采样时间不够电容没充满。第二个坑差分转单端电路的四个电阻用了5%精度的结果CMRR很差电机一转波形就抖。换成0.1%的电阻后波形干净了。电阻匹配对差分电路太重要了省这个钱不值得。第三个坑CC6920的供电和MOS管驱动共用一路LDO电机一转输出上就有开关噪声。后来给CC6920单独加了一级LC滤波噪声降了一半。再后来换成独立LDO噪声基本没了。第四个坑PCB布局时把CC6920放在MOS管旁边原边走线从芯片下方穿过。结果输出上全是开关噪声。重新布局把CC6920远离功率级原边走线短而直噪声就没了。霍尔传感器对磁场敏感布局时一定要远离干扰源。7. 从采样到控制电流环调试的几点经验CC6920只是电流采样的前端最终目的是给控制算法提供准确的电流反馈。如果采样不准再好的PID也调不出好波形。我在调试电流环时一般会先开环给一个固定占空比看采样电流是否和预期一致。比如给10%占空比电机堵转电流应该是Vbus×0.1/R测出来如果差很多那就是采样链路有问题。然后做闭环先调P再调I。P太大电流会振荡P太小响应慢。I用来消除稳态误差但太大会积分饱和。调试时用示波器看电流波形同时看CC6920输出确保采样波形和实际电流一致。如果采样波形有延迟那可能是RC滤波或者软件滤波引起的要减小滤波强度。还有一点CC6920的带宽是100kHz左右对于20kHz的电流环相位延迟约18度影响不大。但如果电流环带宽到50kHz相位延迟就不可忽略了。这时候要么选更高带宽的传感器要么在控制算法里做相位补偿。最后别忘了定期校准。CC6920的灵敏度会随温度变化虽然内部补偿了但长期使用后还是会有漂移。我一般会在每次上电时做零点校准每隔几个月做一次满量程校准。满量程校准需要已知的参考电流可以用高精度电源加分流电阻产生。这套流程走下来CC6920的采样精度可以做到1%以内波形干净FFT谐波小。对于大多数中小功率应用完全够用了。如果你在调试中遇到奇怪的问题先查供电和地再查差分电路最后查ADC配置。大部分问题都出在前端而不是算法。