<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于TI-MSPM0L1306 芯片的電表測量

          基于TI-MSPM0L1306 芯片的電表測量

          作者:彭義祥 時間:2024-12-18 來源:EEPW 收藏

          1   簡介

          本文引用地址:http://www.ex-cimer.com/article/202412/465581.htm

          電表芯片在現(xiàn)代社會的用處越來越多,比如智能電表、開關(guān)電源、逆變電源和智能插座等領(lǐng)域,為各種設(shè)備和系統(tǒng)提供精確可靠的電能計量支持。以上這些電能計量功能,都離不開電表芯片對電壓電流的采樣。

          本項目正是通過L1306 芯片對電表芯片的通信和控制,實現(xiàn)一個簡單的電表功能,從而實時獲得設(shè)備的用電量。本控制的設(shè)計流程是:LPL1306作為主控MCU芯片, 與電能表芯片HT7017 進行通信,實時讀取HT7017 芯片采集的電壓,電流,并計算出設(shè)備消耗的功率。最后通過LCD 顯示屏顯示出來。

          Bom表(所用元器件的型號)

          image.png

          image.png

          圖1

          image.png

          圖2

          image.png

          圖3

          image.png

          圖4

          image.png

          圖5

          image.png

          圖6

          1734482832324744.png

          (產(chǎn)品展示圖)

          3   軟件開發(fā):

          4   開發(fā)平臺

          TI的CCS V12.7.0開發(fā)環(huán)境。

          5   外設(shè)的配置

          本項目外設(shè)主要由串口和I2C 接口來驅(qū)動。

          1. I2C 接口的配置

          I2C 接口用于MCU 對1.8 英寸彩色顯示屏的驅(qū)動。配置為9600 波特的速率,同時開啟接收中斷,配置發(fā)送與接收的緩沖區(qū)。

          2. 串口的配置

          選擇串口UART0,如下圖所示:

          1734482893294277.png

          配置輸出的IO:TX 為PA8 、RX 為PA9,如下圖所示:

          1734482929520845.png

          1734483089508220.png

          代碼保存后生成工程文件。

          6 公共代碼

          I2C 發(fā)送與接收代碼

          1. I2C 接收中斷函數(shù)的實現(xiàn):

          /*i2c_app.c 文件*/

          #include “i2c_app.h”

          / /假設(shè)的底層 I2C寫函數(shù)

          bool HAL_I2C_Write(uint8_t dev_addr, uint8_t

          *data, uint16_t length) {

          // 底層I2C 寫操作

          // 返回true 表示成功,false 表示失敗

          return true;

          }

          // 假設(shè)的底層I2C 讀函數(shù)

          bool HAL_I2C_Read(uint8_t dev_addr, uint8_t

          *buffer, uint16_t length) {

          // 底層I2C 讀操作

          // 返回true 表示成功,false 表示失敗

          return true; // 示例中總是返回成功

          }

          void I2C_Init(void) {

          // 初始化I2C 硬件接口

          // 這里應(yīng)該是調(diào)用底層庫的初始化函數(shù)

          // 例如:HAL_I2C_Init(&hi2c1);

          }

          bool I2C_Write(uint8_t dev_addr, uint8_t reg_

          addr, uint8_t *data, uint16_t length) {

          uint8_t tx_buffer[length + 1]; // +1 for register

          address

          tx_buffer[0] = reg_addr;

          for (uint16_t i = 0; i < length; i++) {

          tx_buffer[i + 1] = data[i];

          }

          return HAL_I2C_Write(dev_addr, tx_buffer,

          length + 1);

          }

          bool I2C_Read(uint8_t dev_addr, uint8_t reg_

          addr, uint8_t *buffer, uint16_t length) {

          // 發(fā)送寄存器地址

          if (!HAL_I2C_Write(dev_addr, &reg_addr, 1)) {

          return false;

          }

          // 讀取數(shù)據(jù)

          return HAL_I2C_Read(dev_addr, buffer,

          length);

          }

          /*i2c_app.h 文件*/

          #ifndef I2C_APP_H

          #define I2C_APP_H

          #include <stdint.h>

          #include <stdbool.h>

          // 初始化I2C 接口

          void I2C_Init(void);

          // 向I2C 設(shè)備寫入數(shù)據(jù)

          bool I2C_Write(uint8_t dev_addr, uint8_t reg_

          addr, uint8_t *data, uint16_t length);

          // 從I2C 設(shè)備讀取數(shù)據(jù)

          bool I2C_Read(uint8_t dev_addr, uint8_t reg_

          addr, uint8_t *buffer, uint16_t length);

          #endif // I2C_APP_H

          7 I2C驅(qū)動

          在工程中添加I2C 的驅(qū)動封裝I2C_app.c/h

          image.png

          這個驅(qū)動封裝了讀寫兩個驅(qū)動,可實現(xiàn)與硬件低層的解耦。

          1734483174957635.png

          8   LCD

          使用公有的LCD驅(qū)動庫,只需要封裝LCD_WR_Byte即可實現(xiàn)驅(qū)動的移植。

          1734483212617798.png

          以上是主要代碼的介紹。

          9   結(jié)束語

          本項目主要是在利用Ti 的L1306 這顆優(yōu)秀的MCU 來實現(xiàn)對單相交流電壓電能的采集。利用芯片的AD 口和I2C 通訊,采集到的數(shù)據(jù)可以通過UART、I2C 或其他通信接口發(fā)送到上位機進行進一步的處理和分析;通過對ADC 的輸出進行適當?shù)男盘柼幚?,例如通過軟件濾波或算法來減少噪聲和干擾,從而得到更準確的電壓讀數(shù)。

          (本文來源于《EEPW》



          關(guān)鍵詞: 202412 MSPM0 電表測量

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();