BL0942
免校准,用电状态异常指示,可级联
产品简介
BL0942是一颗内置时钟免校准电能计量芯片,适用于单相多功能电能表、智能插座、智能家电等应用,具有较高的性价比。
BL0942集成了2路高精度Sigma-Delta ADC,参考电压,电源管理等模拟电路模块,以及处理有功功率、电流电压有效值等电参数的数字信号处理电路。
BL0942能够测量电流、电压有效值、有功功率、有功电能量等参数,可输出快速电流有效值(用于过流保护),以及波形输出等功能,通过UART/SPI接口输出数据,能够充分满足智能插座、智能家电、单相多功能电能表及用电信息大数据采集等领域的需要。
BL0942具有专利防潜动设计,配合合理的外部硬件设计,可确保在无电流时噪声功率不被计入电能脉冲。
优势特点
两路独立的Sigma-Delta ADC,一路电流和一路电压。
电流有效值范围(10mA~35A)@1mohm
有功电能(1w~7700w)@1mohm@220V
可输出电流、电压有效值,快速电流有效值,有功功率,电流电压波形相角
批次出厂增益误差小于1%,外围元件满足一定条件下可以免校准
电流通道具备过流监控功能,监控阈值及响应时间可设置
电压/电流过零信号输出
内置波形寄存器,可输出波形数据用于负载类型分析
SPI(最快速率支持900KHz)/UART(4800-38400bps)通信方式
电源掉电监测,低于2.7V时,芯片进入复位状态
内置1.218V参考电压源
内置振荡电路,时钟约4MHz
芯片单工作电源3.3V,低功耗10mW(典型值)
SSOP10L/TSSOP14L封装
应用电路
非隔离
计算
隔离
计算
上面主要是应用手册里自带的东西,下面是比较重要的通讯部分。我的环境
互感器隔离(电压互感器 117、电流互感器 118A)
采用UART通讯
主控STM32
对于芯片的使用而言,一定要熟读并且背诵其Data Sheet。
本文章参考官网
BL0942 App Note_V1.03:应用手册,也就是我上面贴的电路图以及电量信息计算公式。
BL0942_V1.10_cn:芯片中文版说明
BL0942_V1.06_en:芯片英文版说明
首先看中文版寄存器这一页
上半部分“电参量寄存器(只读)”是只能读取,无法写入,也就是地址 0x01~0x09。
下半部分“用户操作寄存器(读写)”是能读能写入,但是写入的前提是先对着USR_WRPROT写入0x55。也就是向地址0x1D写入值为0x55后就可以操作“用户操作寄存器”了。如果写入非0x55的值,那么“用户操作寄存器”就变成只能读不能写了。
写入时序
注意:UART和SPI的时序对于DATA部分是反的,UART是低字节在前,SPI是高字节在前,网上大部分文章是SPI模式,所以是高字节在前。
{1,0,1,0,1,0,A2,A1} 为二进制序列。后面说的{A2,A1}=10;也就是A2是1,A1是0。即{1,0,1,0,1,0,1,0} = 0xAA
A2,A1组成你的器件地址,因为TSSOP14L 封装可支持器件片选功能,硬件片选地址管脚为[A2_NCS,A1],可选器件 0~3。可支持 4 片 BL0942 挂在 UART 总线上进行数据通信,只占用 MCU 的一个 UART 接口。
如果我们只有一个芯片,那么地址就是{A2,A1}=00;A2=0,A1=0。即为0xA8
这个是写入帧类别,读取的话是0x58。大家可以对照读取时序自己算一下。
校验字节计算方法
我们以获取所有的电量为例
void BL0942_SEND_0xAA(void)
{
uint8_t send_data[2]={0x58,0xAA};
USART2_TX(send_data, sizeof(send_data));
}
注意:有可能发送数据,但是并不会返回。也就是不响应数据。所以大家可以发送后读取,判断是否发送成功。