BL0942电参数采集模块操作说明及疑问解答

BL0942是一颗内置时钟免校准电能计量芯片,适用于单相多功能电能表、智能插座、智能家电等应用,具有较高的性价比。能够测量有效电压、有效电流、有功功率、有功电能量(用电量)参数。支持通过UART或者SPI输出数据,本文介绍的模块仅支持UART输出。BL0942模块需要外部发送读取指令给BL0942芯片,BL0942才会输出一次电参数;而HLW8032是固定50ms间隔输出一次电参数。模块的3V3引脚是需要外部给模块提供3.3V电压的,而不是模块能对外提供3.3V供电,也不能用5V供电!!!

BL0942模块链接:https://t.hk.uy/bzpx

资料下载链接:

https://download.csdn.net/download/qishi3250/89240585

BL0942模块测试流程:

1.模块接线

USB转TTL模块BL0942模块
3V33V3
TXDRXD
RXDTXD
GNDGND

 注:串口线是交叉接线,TXD接RXD,RXD接TXD;模块必须使用3.3V供电,不支持5V供电。串口模块只能使用TTL类型的模块,不支持232类型的。

2.驱动安装

把上面接好线的USB转TTL模块的USB头插入电脑,如果电脑正常安装了串口驱动,就会正常显示COM号:我用的是CH340串口模块,所以显示的是CH340,其他类型的TTL串口模块也是可以的。

 如果没有显示COM号,则需要安装串口驱动,安装方法直接百度:你用的串口芯片+驱动即可,例如CP2102驱动、CH340驱动。

附一个CH340的官方驱动下载链接:CH341SER.EXE - 南京沁恒微电子股份有限公司

附一个CP2102的官方驱动下载链接:CP210x USB to UART Bridge VCP Drivers - Silicon Labs

3.软件查看电参数

暂时先不要接交流220V电压;打开资料里面提供的测试软件;按下图指示操作,如果模块正常,软件会显示有数据出现。

 1.测试软件支持的COM号为1-16;如果超出这个序号,建议换一个USB口插即可;

2.如果点击打开串口提示打开失败,检查一下是不是其他软件占用了这个COM号,实在不行重新拔插一下;

3.选择合适的模块类型,看您购买的类型,也可以看模块的电流采样电阻丝印,丝印R003的最大电流为10A;丝印R001的最大电流30A ;

3.打开串口后,没有数据;检查一下串口接线有没有对,是交叉接线的;然后检查USB转TTL模块是否正常;BL0942模块上有一个蓝色的灯,这个灯闪一下说明有数据输出,不闪就是没有输出数据。

 测试到这里如果没什么问题的话,基本就正常的了,接下来就是接入交流220V电进行测试了;接线之前一定不要通电,接完后一定要检查后再通入220V电。串口这边是和强电有隔离的,所以连接的USB转TTL模块是安全的。

4.用电器测试

把电源线和用电器插板接入BL0942模块,务必确认安全后通电,BL0942模块背后不要放金属,也不能直接放金属桌面上!!!

 接线是要先拧松螺丝,然后把线插进去,再把螺丝拧紧的。通电后,不要触碰模块了

下面是介入220V电压,没有接用电器的测试截图:

 下面是接了手机充电器的截图:功率跳变比较大,偶尔会跳到1W左右,因为功率比较低;不过平均基本在5W左右。

PS:BL0942比HLW8032在小功率(100W内)情况下,BL0942的数据更新速率会比HLW8032快很多;例如HLW8032在1W的用电器时,功率更新需要8秒左右,而BL0942则在2秒内就更新完成。所以如果需要实时性比较高的情况下,推荐使用BL0942模块。

5.数据解析

串口发送指令16进制的58 AA;就可以返回全电参数数据包,模块默认波特率是9600。下图是介绍全电参数数据包的介绍。

5.1 电流有效值计算

芯片数据手册提供的公式如下;这里提供的公式不适合我们使用,这个公式是原理公式,是芯片内部计算的公式。

在另一个应用手册文档提供了计算公式:

公式里面的电流有效值寄存器值就是全电参数数据包里面的有效电流值;Vref=1.218;RL这个和采用的电流采样电阻阻值有关,10A量程的模块的是3毫欧,30A量程的模块是1毫欧(链接标注20A量程也是1毫欧); 

举例:

其中:70 27 01是电流有效值,高字节在后,所以就是0x012770,10进制就是75632;最大电流 是10A,所以RL=3毫欧;代入公式就是:

实际电压有效值=(75632*1.218)/(305978*3)=0.1A

5.2 电压有效值计算

 公式里的R1和R2是啥?是电压分压电阻网络的值,用原理图来看就是下图这部分;

R2=390*5=1950K欧;R1=0.51K欧

 用上面的例子计算;电压有效值寄存器值=0x384F32(16进制)=3690290(10进制);代入公式:

实际电压有效值=(3690290*1.218*(1950+0.51))/(73989*0.51*1000)=232.34V

 疑问解答

  1. 模块支持测量直流吗?---不支持,模块用来测量交流电参数的,测量电压建议交流50V~280V内。个人建议,如果想测量直流,直接设计一个电阻分压网络,然后直接使用单片机的ADC采样即可。
  2. 模块支持多大电流?---购买10A模块,则最大支持10A的电流;如果购买的是30A,考虑到电路板空间有限,建议最大接20A电流,并且必须要把正反面的交流走线加厚焊锡。

  3. 模块是隔离采样还是非隔离采样?---模块是非隔离采样,串口隔离输出,交流电与串口输出是光耦隔离,所以不会影响到单片机或者电脑这边的安全。
### BL0942与SPI接口的技术信息 BL0942是一款高精度功率测量芯片,支持通过SPI接口与其他设备通信。对于BL0942和SPI接口之间的交互,主要关注以下几个方面: #### 1. SPI协议基础 SPI(Serial Peripheral Interface)是一种同步串行数据链路标准,允许全双工数据传输。它通常由四个信号线组成:MOSI(Master Out Slave In)、MISO(Master In Slave Out)、SCK(Serial Clock)以及SS/CS(Slave Select)。这些基本概念适用于大多数SPI器件间的连接[^1]。 #### 2. BL0942的SPI配置参数 针对BL0942而言,在初始化阶段需设置如下几个重要参数来确保其能正常工作于SPI模式下: - **波特率**:决定了每秒可以传送的数据位数; - **CPOL/CPHA**:用于定义时钟极性和相位的选择; - **字长度**:指定了每次交换过程中所涉及的数据量大小; 具体到BL0942上,默认情况下采用8-bit word length, CPOL=0 和 CPHA=1 的组合方式来进行数据读写操作。 #### 3. 数据访问流程 当主机想要获取来自BL0942的能量计量结果或其他状态信息时,会按照以下顺序执行命令序列: 1. 主机拉低片选引脚使从机进入准备接收指令的状态; 2. 发送控制码给目标寄存器地址; 3. 进行实际的数据读取动作; 4. 完成后释放片选信号结束本次通讯周期。 此过程中的每一个环节都需要严格遵循官方提供的应用笔记或手册说明以保证正确无误地完成整个交易过程。 ```python import spidev spi = spidev.SpiDev() spi.open(0, 0) # 打开总线编号为0,CE0作为片选端口 spi.max_speed_hz = 500000 # 设置最大频率为500kHz data_to_send = [command_byte] + list(dummy_bytes) response = spi.xfer(data_to_send) print(response) ```
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Knight-20

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值