一、 概述
? ? ? ?BMS,?即電池管理系統,?其主要功能之一就是監控和管理電池的狀態。?此外,?BMS 還需要存儲歷史數據,?以便進行數據分析,?優化電池使用策略,?提高電池效率和安全性。?
? ? ? ?MC33774A 是一款鋰離子電池控制 IC,可應用於汽車和工業應用,支持 4~18 串電池監測,具有 9 路通用 GPIO,其中,GPIO4 和 GPIO5 可復用作為 I2C 主機,與其他組件進行通訊,例如外部 EEPROM,用於存儲 BMS 相關數據。
? ? ? ?MC33774A I2C 總線支持 100KHz、400KHz 以及 1MHz 速率,可自主執行 I2C 總線通信,正在進行的通信對其他功能模塊沒有影響,可以與 MC33774A 的任何其他功能模塊並行執行。
二、 MC33774A EEPROM 讀寫操作流程
- 在操作 MC33774A 通過 I2C 對 EEPROM 進行讀寫前,應先將要發送的數據寫入 MC33774A 的 I2C_DATA0 - I2C_DATA17 寄存器,如圖 1 所示。
圖 1 MC33774A I2C 數據寄存器
- 配置 MC33774A I2C_CFG 寄存器,通過 CLKSEL 位配置 I2C 速率,配置 EN 位使能 GPIO4 和 GPIO5 作為 I2C 主機,如圖 2 所示。
圖 2 MC33774A I2C_CFG 寄存器
- 配置 MC33774A I2C_CTRL 寄存器,START 位配置所要發送的字節數,STPAFTER 位配置是否在最後一個字節數據後發送停止命令,RDAFTER 位配置多少個字節後重新發起起始命令,如圖 3 所示。
圖 3 MC33774A I2C_CTRL 寄存器
三、 EEPROM 讀寫實例
? ? ? ?以 CMU 板上所使用的 EEPROM CAT24C512 為例,其讀寫指令時序如圖 4 和圖 5 所示。
圖 4 CAT24C512 讀指令時序
圖 5 CAT24C512 寫指令時序
? ? ? ?A7-A15 為頁地址,A0-A6 為字節地址,其從地址如下,因 A0-A2 均接地,故其從地址為 1010 000 R/W。
圖 6 CAT24C512 設備地址
- 對於寫命令,應先往 MC33774 的 I2C_DATA 寄存器依次寫入 SLAVE ADDRESS、BYTE ADDRESS 和要發送的數據;接著配置 I2C_CTRL RDAFTER 為 0,STPAFTER 為 1,START 為 3 + 要寫入的字節數,即可進行數據寫入,寫時序如圖 7 所示。
圖 7 EEPROM 寫時序
- 對於讀命令,應先往 MC33774A 的 I2C_DATA 寄存器依次寫入 SLAVE ADDRESS、BYTE ADDRESS 和 SLAVE ADDRESS,共 4 字節;接著配置 I2C_CTRL 的 RDAFTER 為 3,STPAFTER 為 1,START 為 4 + 要讀取的字節數,即可進行數據讀取,讀取後的數據存放於空的 I2C_DATA 寄存器,讀時序如圖 8 所示。
圖 8 EEPROM 讀時序
四、 總結
? ? ? ?本文介紹了 MC33774A 通過 I2C 對 EEPROM 進行讀寫操作的流程,實現對 BMS 相關數據的存儲,以便對歷史數據進行分析,更好地優化 BMS 的管理策略。
五、 參考文獻
- ds743220 - MC33774A Data sheet (2.0).pdf
- ON-CAT24C512.pdf
評論