基于TI-MSPM0L1306 芯片的电表测量
1 简介
本文引用地址:https://www.eepw.com.cn/article/202412/465581.htm电表芯片在现代社会的用处越来越多,比如智能电表、开关电源、逆变电源和智能插座等领域,为各种设备和系统提供精确可靠的电能计量支持。以上这些电能计量功能,都离不开电表芯片对电压电流的采样。
本项目正是通过MSPM0L1306 芯片对电表芯片的通信和控制,实现一个简单的电表功能,从而实时获得设备的用电量。本控制的设计流程是:LPMSPM0L1306作为主控MCU芯片, 与电能表芯片HT7017 进行通信,实时读取HT7017 芯片采集的电压,电流,并计算出设备消耗的功率。最后通过LCD 显示屏显示出来。
Bom表(所用元器件的型号)
(产品展示图)
3 软件开发:
4 开发平台
TI的CCS V12.7.0开发环境。
5 外设的配置
本项目外设主要由串口和I2C 接口来驱动。
1. I2C 接口的配置
I2C 接口用于MCU 对1.8 英寸彩色显示屏的驱动。配置为9600 波特的速率,同时开启接收中断,配置发送与接收的缓冲区。
2. 串口的配置
选择串口UART0,如下图所示:
配置输出的IO:TX 为PA8 、RX 为PA9,如下图所示:
代码保存后生成工程文件。
6 公共代码
I2C 发送与接收代码
1. I2C 接收中断函数的实现:
7 I2C驱动
在工程中添加I2C 的驱动封装I2C_app.c/h
这个驱动封装了读写两个驱动,可实现与硬件低层的解耦。
8 LCD
使用公有的LCD驱动库,只需要封装LCD_WR_Byte即可实现驱动的移植。
以上是主要代码的介绍。
9 结束语
本项目主要是在利用Ti 的MSPM0L1306 这颗优秀的MCU 来实现对单相交流电压电能的采集。利用芯片的AD 口和I2C 通讯,采集到的数据可以通过UART、I2C 或其他通信接口发送到上位机进行进一步的处理和分析;通过对ADC 的输出进行适当的信号处理,例如通过软件滤波或算法来减少噪声和干扰,从而得到更准确的电压读数。
(本文来源于《EEPW》202412)
评论