拓冰建站拓冰建站
首页 / 资讯中心 / 正文

多路交/直流电能计量芯片BL0910:硬件设计、寄存器配置与校准实战

做计量类产品最怕什么不是芯片贵不是算法难而是方案选型走到一半发现撑不住现场需求。我以前做一版单相计量板客户后来要求扩展成三相四线加一路直流监测板子几乎推翻重做从此我对“多路交/直流电能计量”这几个字特别上心。后来在充电桩、基站配电、储能柜这类项目里反复用到BL0910总算把这块芯片的配置和校准流程摸透了。这一篇就把从零到一的完整路径写出来包含硬件采样链路计算、寄存器初始化顺序、交流/直流两种模式下的校准方法以及我在现场踩过的坑给正准备上手BL0910的朋友做一个可以直接参考的实操底稿。BL0910是一片多路电能计量专用芯片内部集成多路ADC和数字计量核心可以同时处理多路交流或直流信号适合用在需要对多路负载分别计费、分别监测的场合。和传统的“一路信号配一片计量芯片”方案相比它用一片芯片就能把多路电压、电流、功率、电能数据全部读出来物料成本和PCB面积都能降下来而且各路之间的相位一致性、温漂特性天然更接近校准工作量也会少一些。这篇文章不只讲“寄存器怎么配”重点会放在为什么这样配、校准时每一步到底在消除什么误差以及现场最容易翻车的地方在哪里。1. 为什么选BL0910多路计量方案的现实需求1.1 多路计量到底在解决什么问题先说一个很常见的场景。一个直流充电桩里面主控需要同时监测三相交流输入侧的电压、电流、功率还要看直流输出侧的电能累积量有时候还要额外监测辅助电源回路的用电情况。如果按传统思路交流侧一颗三相计量芯片直流侧再单独加一颗采样芯片或者放大器加ADC方案两边数据的时基、相位参考、校准参数完全对不上软件上要做不少对齐工作。而且直流侧的电压往往到了几百伏电流上百安采样回路稍有不对称误差会非常难看。BL0910这类多路计量芯片的思路是把采样通道做多把计量逻辑集中到一颗芯片里完成。具体到BL0910它能同时支持多路电流通道和电压通道的采样内部通过数字积分和滤波器计算出电压有效值、电流有效值、有功功率、电能等参数。对于直流输入可以直接读取直流电压、直流电流、直流功率和直流电能对于交流输入则输出交流有效值、有功、无功、视在功率和功率因数。也就是说一个项目里交直流全覆盖不用再拼凑两套方案。1.2 BL0910的核心亮点从我实际使用的体验来看BL0910最值得关注的有几点。第一多通道并行采样。芯片内部的多路ADC可以对不同通道同时采样各路之间的相位差很小这对交流多路计量特别重要。之前用分立方案两路之间如果采样时刻错开几毫秒在有感性负载的时候功率计算就会引入额外误差BL0910从硬件上规避了这个问题。第二计量参数自动计算。电压、电流的有效值有功、无功、视在功率频率这些参数在芯片内部都已经算好了主控只需要定期通过SPI接口读取寄存器。对比自己做ADC采样再做FFT和乘积积分开发量小很多而且精度有保障。第三交直流自适应。芯片通过配置可以切换或同时处理交流和直流信号这在很多实际项目里非常有用。比如储能系统里电池侧是直流并网侧是交流一颗芯片就能把两边的电能数据都管起来。第四校准机制完善。增益校准、相位校准、偏置校准该有的都有。只要按照流程走配合标准源把校准系数写回芯片精度做到0.5级以上是完全可以实现的。1.3 适用场景与选型边界BL0910适合的项目大概有这几类直流充电桩的电能计量模块、储能变流器的交直流监测、通信基站和IDC机房的直流配电监测、需要分路计费的智能配电箱以及工业设备里需要同时观察交直流功耗的场合。但也要说清楚边界。如果只做单相交流计量选一颗专门优化的单相计量芯片可能成本更低如果对谐波分析、电能质量分析有很高的要求BL0910这种偏计量的芯片功能上不太够需要选带波形分析和FFT输出的更高端方案。选芯片从来不是参数越高越好合适才是第一位。2. 硬件设计里的那些关键点2.1 采样链路与参数计算BL0910内部ADC的输入范围是有限的外部传感器输出的信号必须要经过调理电路让它落在芯片的线性采样区间内。这里核心的就是电压采样分压电阻网络和电流采样通道。电压采样比较简单典型的做法是用高阻值电阻分压。以直流侧750V为例如果ADC输入的线性范围按照毫伏级设计分压比一般要做得很高。分压电阻的选型有两个关键点一是总阻值要足够大把自身功耗控制在毫瓦级别否则电阻发热会影响分压精度二是要用低温漂电阻否则温度一变分压比跟着漂电能数据就会不准。我习惯用精度0.1%、温漂25ppm或者更好的金属膜电阻或精密电阻网络并且在上层贴装减少热源影响。电流采样通常有两种方式电流互感器和分流电阻。交流侧多用电流互感器输出的是小信号电流经过内部或外部的采样电阻变成电压信号再进ADC直流侧几乎都用分流电阻锰铜或康铜电流流过电阻产生压降直接用差分方式送入ADC采样通道。这里有一个参数计算的例子。假设直流额定电流是100A分流电阻阻值选75微欧那额定状态下分流电阻上的压降就是U I × R 100A × 75uΩ 7.5mV这个7.5mV的差分信号再经过调理后送入ADC。要注意分流电阻的功耗在满载时是P I² × R 10000 × 75e-6 0.75W虽然不算大但在纯铜排连接和散热不好的情况下电阻温升会很明显直接影响采样精度。所以布局时要把分流电阻远离发热器件并且考虑PCB走线的散热。2.2 采样通道的布局布线注意事项多路计量的PCB布局最核心的原则是“采样回路最小化”。每一路电压采样、电流采样的信号回路都要尽量短避免大电流走线或其他高频信号耦合进来。以电流采样为例分流电阻一定要放在电流回路的主路径上然后用Kelvin四线制接法把采样电压引出来。四线制的意思是电流流过的路径和采样电压检测的路径分开走线避免采样线上流过大的工作电流从而消除走线电阻带来的误差。很多第一次做的人会直接在一个焊盘上引出采样线结果几十毫伏的采样信号叠加上铜箔走线的压降误差直接超标。同理电压分压电阻的采样点也要单独走线回到芯片引脚不能和其他信号线共用一段走线。差分信号要尽量平行走线而且两端各加一个小电容滤波减少共模干扰。芯片的电源去耦电容要靠近电源引脚放置模拟地和数字地要处理好分割和单点连接。2.3 电源和参考地设计多路计量对电源质量比较敏感。BL0910的模拟电源最好由低噪声LDO单独供电不要直接从开关电源的输出引脚取电。开关电源的纹波如果不做处理直接进芯片ADC采样结果里会出现明显的纹波分量有效值计算误差会变大。参考地方面我的建议是整个计量区域采用星形接地采样回路的地线单点连接到系统地。不要把多路电流采样通道的地串成一条线否则路与路之间的地电位差会产生串扰。实际项目中我曾遇到过两路电流显示值相互影响的问题后来发现就是两路采样地共用了一段较长的走线改成分别回流后问题消失。3. 软件配置与初始化流程3.1 配置流程概览BL0910的上电初始化流程我总结下来大体分四步复位、基本配置、计量参数配置、读取数据。这四步的顺序不能乱尤其不能在芯片还没有完全稳定的时候就写入关键配置否则可能出现寄存器写入成功但功能异常的情况。具体来说我一般先做硬件复位或者等芯片上电复位完成延时至少几十毫秒让芯片内部参考电压和时钟稳定。然后写软件复位命令再延时。之后配置系统控制寄存器包括时钟源选择、ADC采样率配置等。接着配置各通道的量程、采样模式。最后根据需要读取校准相关寄存器确认芯片状态已经进入正常计量模式。3.2 关键寄存器配置细节由于BL0910的具体寄存器地址会随芯片版本更新有差异我这边不讲寄存器地址重点讲清楚每类配置的作用方便大家对着最新数据手册快速定位。系统控制寄存器主要配置芯片的工作模式、ADC采样率、数字滤波器的开启。采样率不是越高越好采样率高了数据更新快但噪声也大采样率低了噪声小但响应慢。一般工频交流计量场景选一个适中的采样率就好。如果要同时做直流计量可能还需要开启直流测量模式相关的配置位。通道配置寄存器每一路电压、电流通道都有对应的量程配置和输入模式配置。交流模式还是直流模式单端还是差分都需要在这里指定。这一块最容易出问题的是量程配置和硬件采样电路不匹配。比如硬件上电压分压后最大信号只有50mV但通道量程配置成了200mV虽然不会损坏芯片但有效采样位数会被浪费小信号下的精度会变差。功率和电能配置寄存器有功、无功、电能累计模式包括电能累计的方向正反向、累计的方式累加或冲减等。直流模式下电能累计比较简单就是电压、电流乘积对时间的积分交流模式下则要区分有功、无功、视在电能。3.3 SPI读取数据的时序处理BL0910通过SPI接口和主控通信。SPI的读取频率不高波特率普通情况下1MHz以内就很稳定我一般配置在500kHz到1MHz走线长或干扰大的场合会降到更低。波特率不是越高越好计量芯片本身数据更新率有限波特率再高读到的也是同一个计算结果反而容易因为线缆分布电容导致数据错位。读取数据时我强烈建议开启CRC校验或者至少做寄存器回读校验。多路计量系统里SPI线往往和电源线、通讯线一起走长距离传输时数据错位的概率比想象中高。我曾经在一次现场调试中发现偶发性的一路电流跳变最后定位到是SPI数据线受到旁边继电器动作时的电磁干扰导致一个字节读错。后来把SPI速率降下来并且软件上加了连续两次读取比对问题就解决了。软件上还有一个要注意的细节读取电能寄存器时要先读快照寄存器或者按照数据手册要求锁存当前的计量结果再连续读取多个字节避免在读取过程中电能值发生变化导致高字节和低字节不是同一个时刻的值。这个问题在实际开发中很常见特别是电能值比较大的时候高字节刚读完低字节已经进位了读出来的数直接就错了。4. 校准的原理与实战4.1 误差来源分析很多人校准时喜欢“照着流程灌一遍”但我觉得理解误差来源比抄流程更重要。计量系统里的误差主要来自几个方面。第一是采样链路的增益误差。无论分流电阻还是互感器实际值和标称值总会有偏差分压电阻网络的分压比也不是绝对精准。这些偏差最终表现为实际输入是100A芯片采样计算出来是99.5A。增益校准就是消除这个比例误差。第二是相位误差。交流计量里电流和电压之间的相位如果被采样链路引入额外偏移导致有功功率计算用的电压、电流相位关系不正确。比如互感器本身存在角差PCB走线的寄生电感也会带来相位偏移。相位校准就是补偿这个角度差。第三是偏置误差也就是零漂。输入为零时芯片内部还是可能读到一个微小的非零值。这在直流计量里尤其明显因为直流没有过零点的概念小信号偏置直接叠加在测量值上。偏置校准就是把这个零点拉回来。第四是温度带来的漂移。电阻的温漂、芯片内部的温漂都会影响精度这个没法单靠校准完全消除只能依靠选型低温漂器件和结构设计散热来控制。所以我才在前面反复强调分流电阻和采样电阻的选型。4.2 直流通道增益校准实操直流电能计量校准的核心是电压和电流两个通道分别做增益校准。以直流电流通道为例校准的过程大致是通过标准源给分流电阻输入一个准确的电流值比如额定电流的50%或者100%然后用BL0910读出对应的电流有效值或直流电流值把读取值和标准值做比较得到增益误差再通过校准寄存器写入补偿系数。增益误差的计算公式很简单增益误差 实际读数 - 标准值/ 标准值 × 100%假设标准源输出50A芯片读出来是50.2A那增益误差就是0.4%。对应的校准系数就要把读数往下调0.4%。实际操作中有几个细节容易忽略。第一标准源和分流电阻之间的连接要使用粗短线缆尽量减少接触电阻和引线压降否则“标准值”本身就不准。第二要等系统充分预热。我刚做计量校准的时候一上来就校结果上午校准完下午数据又偏了后来才发现是设备没预热PCB板和分流电阻的温度还在上升。一般通电预热10到15分钟等到读数稳定后再开始校准数据才靠得住。第三校准点不要只选一个最好在额定电流的1%、10%、50%、100%等多个点都测一遍观察线性度。如果低端误差和高端误差方向不一致说明采样链路的线性度有问题单纯做增益校准是修不回来的需要回头查硬件。4.3 交流通道的增益校准与相位校准交流通道比直流多一个相位校准这也是很多人容易忽略的地方。单纯校准增益有功功率在纯阻性负载下可以很准但一旦负载是感性的功率因数不等于1相位误差的影响就暴露出来了。校准方法是用标准源输出一个已知电压和电流两者之间设置一个已知的相位角比如功率因数为0.5相位角60度的滞后状态。然后读取芯片计算出来的有功功率与标准功率比较得出相位误差。如果相位误差是固定的就可以通过相位校准寄存器写入一个角度补偿量。需要说明的是相位校准一旦完成对纯阻性负载下的电能计量基本没有影响但对不同功率因数下的计量精度影响非常明显。所以在校准流程中纯阻性功率因数1.0和感性功率因数0.5两个点都要测。很多做电表或充电桩计量的朋友只校准了功率因数1.0的增益结果现场接到电机类负载时电能偏得离谱就是这个原因。我个人的校准顺序建议是先做偏置校准输入为零时的零点校正再做增益校准额定或标准输入的幅度校正最后做相位校准特定相位角下的功率校正。这个顺序不能颠倒因为如果零点都没对准增益校准的基准就是错的如果增益不对相位校准时的功率误差你就分不清是幅度误差还是角度误差。4.4 校准系数管理与写回校准完成后得到的增益系数、相位系数、偏置系数需要保存。我的做法是先把系数存储在MCU的Flash或外部EEPROM里系统每次上电初始化时再写入BL0910的校准寄存器。这样可以避免频繁对芯片写校准寄存器也方便生产时在产线上批量写入特定系数。另外一个经验是每一台设备的校准系数都不一样不能“一台校好全部拷贝”。因为每一路的分流电阻、互感器、分压电阻的离散性都不同。批量生产时可以考虑先校准一批设备统计校准系数的分布范围如果离散度很小说明物料一致性很好可以适当减少抽检比例如果离散度大那每一台都得单独校准。我见过有朋友为了省时间在产线上只校准电压通道电流通道直接用默认系数结果同一批充电桩做出来的计量误差分布特别宽有的偏正1%有的偏负1.5%客户抽检直接不通过。电流通道的校准是不能省的因为电流采样链路涉及分流电阻和采样电阻两个环节离散度往往比电压分压网络更大。4.5 直流偏置校准与交流零漂处理直流偏置校准的操作方法是确保电流回路无电流流过断开负载或短路输入然后读取芯片的电流值记录下来作为偏置值写入偏置校准寄存器。这个操作看似简单但要注意“无电流”的状态要真实如果输入端还有剩余电流读到的偏置就包含了这个电流校准完反而引入新的误差。交流零漂问题通常也和PCB布局有关。如果ADC采样输入端的滤波电容存在漏电或者走线受潮输入端会积累一个微小的直流偏压导致交流通道在零输入时也能读到几毫伏的有效值。这种情况校准能压住一部分但如果环境湿度变化大校准效果会不稳定。根治办法是采样输入端对地加一个合理的偏置电阻给漏电流一个泄放回路同时PCB清洗干净、涂三防漆。5. 常见问题与排查技巧实录5.1 读数跳变、通道串扰和环境干扰多路计量最常见的问题就是读数跳变。现象一般是一路或几路电流值在没有明显负载变化时突然跳一下然后又恢复正常。排查思路是按“先软件后硬件、先干扰后器件”的顺序来。软件层面先检查SPI读取时序和校验机制排除数据读错。可以把读取频率降低连续读取多次观察是否稳定。如果降低频率后跳变减少基本可以确定是干扰导致的通信错误。硬件层面重点看采样线是否靠近继电器、接触器、开关电源的功率走线。这些器件动作瞬间会产生很强的电磁干扰耦合到采样线上就会出现瞬间的读数跳变。我在一个充电桩项目里遇到过类似问题后来是调整了采样线的走线路径并且增加了一级RC滤波才解决。5.2 通道间串扰问题通道间串扰的典型表现是某一路电流很大时相邻通道的读数也会变大或者跟着波动。原因通常是多路采样信号在PCB上共用了一段回流路径或者采样线平行走线距离过长互相耦合。排查方法可以把一路电流加到额定值其他通道保持空载观察空载通道的读数变化。如果空载通道读数跟着大电流通道变化基本就是布线和回流的问题。处理办法是各路采样线之间用地线隔离采样地各自单独回流必要时在关键信号线之间加屏蔽地。5.3 高校准误差与校准系数失效一种常见情况是校准完成后短期精度很好但过了一段时间或者温度变化后精度又变差了。这通常是校准系数本身没有问题但硬件采样链路受温度影响太大。比如分流电阻的温漂过大或者分压电阻的温漂不一致。这种情况下只能从物料选型和散热设计上解决靠校准是压不回来的。另一种情况是校准系数写入后重启又变回默认值。多半是芯片没有正确的保存机制需要在MCU上电初始化时重新写入校准系数。很多人以为芯片掉电后校准值还能保留实际上不少计量芯片的校准寄存器是RAM类型的掉电即失。所以一定要在主控程序里做好“上电自动重写校准系数”的逻辑。5.4 数据手册和实际芯片版本不一致这个问题在工程中容易被忽视。同一型号芯片可能有不同的版本寄存器定义或者校准算法可能有细微差异。我遇到过两次一次是调试时某个寄存器的行为和数据手册描述不一致后来发现是该批次芯片是旧版本数据手册已经更新为新版本另一次是校准的量程范围定义有变化导致系数写进去后反而越校越偏。建议拿到芯片后先通过芯片ID寄存器确认版本再找对应的数据手册。量产BOM里也要备注清楚版本信息避免混料。如果项目量比较大建议在正式设计前先申请样品做完整的寄存器验证和校准验证。5.5 常见问题速查表问题现象可能原因排查与解决办法所有通道读数整体偏大或偏小采样链路增益误差做增益校准检查分压电阻、采样电阻精度只有电流通道读数跳变SPI干扰或电流采样回路面积大降低SPI速率优化采样走线加滤波空载时读数不为零偏置误差或漏电流做偏置校准检查输入端滤波电容漏电两路电流读数互相影响采样地共用或信号线平行串扰各路单独回流地线隔离缩短平行走线校准系数写入后重启丢失校准寄存器是RAM类型MCU新增上电写回校准系数的逻辑功率因数较低时功率误差大相位校正未做或未做准重新做相位校准检查互感器角差温度升高后精度明显变差采样器件温漂大更换低温漂器件优化散热和远离热源寄存器写入无效或行为异常芯片版本与手册不一致读取芯片ID确认版本对照对应手册6. 从项目落地的角度补充两句做多路交/直流电能计量芯片选型和硬件设计当然重要但说到底真正拉开差距的是校准流程。我个人的建议是在项目初期就设计好校准工装和生产流程不要等样机做出来再想怎么校准。校准那套流程包括标准源精度、连接线缆、预热时间、校准点、判定标准都要在生产文档里明确写清楚。我见过太多项目因为校准流程不规范导致同样的硬件设计一批产品精度好一批产品精度差。另外还有一个经验之谈数据记录很重要。校准时的标准值、芯片读数、校准系数、环境温度都要记录下来。后期如果有批次性的精度问题这些数据就是排查的第一手资料。我在一次客诉处理中就是靠产线上留存的校准记录定位到了某批分流电阻来料偏差的问题省去了大量返工排查的时间。关于“从零到一”我最后想说的是不要怕踩坑计量这条路本来就是一点点抠出来的。硬件上的一个小走线软件里的一次寄存器误配校准时的一个草率操作都会在数据上呈现出来。而你把每一个误差都在原理层面理解透、在实践中校正到位之后后面再做类似的计量项目就会顺畅很多。希望这篇实战记录能帮你少走一段弯路。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门