一、 概述
本文主要介紹基於 LKS32MC453 MCU 對 BSP AFE BM81710H 設備 ID 讀取的Handson操作。
硬體平台:WPI-PES_BMS V1.1 板,WPI-LPCLINK2 Debugger_V1.0 板
軟體平台:Keil uVision5, LKS32MC45x_PeripDemo_v2.9
二、BM81710H ID 寄存器
如圖1可知,BM81710H ID寄存器 分為 ID寄存器1和2,ID 1寄存器地址為0x00,ID 2 寄存器地址為0x01,讀取BM81710H ID的值,只需通過軟體配置,使LKS32MC453 MCU 與BSP AFE BM81710H進行 I2C通訊,讀取ID1、ID2寄存器即可。
▲ 圖2 BM81710H_User_Manual _V1.0
三、軟體配置
3.1 Demo函數概述
- main函數:程序依次進行了系統時鐘初始化(選用 96MHZ);UART 初始化(波特率設為 115200 用於後續列印數據);使能 BM81710H wake up 引腳高電平以喚醒默認關機的晶片;延時函數初始化,延時 70ms 等待晶片內部穩定;I2C GPIO 及驅動參數初始化;讀取BM81710H ID寄存器1、2的值,並通過UART 列印到UART串口助手上。
int main(void)
{
uint16_t ID_Buffer[2];
SystemInit(); // 系統時鐘初始化,96MHZ系統時鐘
Host_UART_Init(115200); // UART 初始化,波特率115200HZ
BM81710H_WakeUp_GPIO_HighLevel(); // BM81710H上電默認進入關機模式,使能 WakeUp 引腳高電平,進行喚醒
delay_init(96); // 延時函數初始化
delay_ms(70); // 延時70ms,BM81710H喚醒後需 70ms系統內部系統穩定
I2C_GPIO_Init(); // I2c 引腳初始化
I2C_Driver_Init(I2C0,200000); // I2c 配置初始化,波特率 200KHZread_word(SLV_ADDR, OP_HWID1,ID_Buffer); // 讀取 ID 寄存器 1 的值
read_word(SLV_ADDR, OP_HWID2, &ID_Buffer[1]);// 讀取 ID 寄存器 2 的值
printf("ID寄存器 1=%x \r\n",ID_Buffer[0]); // 列印 ID 寄存器 1 的值
printf("ID寄存器 2=%x \r\n",ID_Buffer[1]); // 列印 ID 寄存器 2 的值
while(1)
{
}
}
SystemInit():程序對系統時鐘進行了初始化,系統時鐘選用96MHZ。
Host_UART_Init(115200):對UART進行初始化,為了後續使用UART將17串電池電壓數據列印到UART串口助手上。
BM81710H_WakeUp_GPIO_HighLevel():因為BM81710H上電默認進入關機狀態,使能BM81710H wake up引腳高電平,用來喚醒晶片。
delay_init(96):延時函數初始化。
delay_ms(70):延時70ms,目的是BM81710H喚醒後需等待70ms內部系統穩定。
I2C_GPIO_Init():I2C GPIO,詳見博文,Hands-On 基於 LKS32MC453 對 I2C 軟體配置進行介紹。
I2C_Driver_Init(I2C0,200000):I2C 驅動參數初始化,詳見博文,Hands-On 基於 LKS32MC453 對 I2C 軟體配置進行介紹。
read_word(SLV_ADDR, OP_HWID1,ID_Buffer):用來讀取 ID 寄存器 1 的值。
read_word(SLV_ADDR, OP_HWID2, &ID_Buffer[1]):用來讀取 ID 寄存器 2 的值。
四、實驗現象
4.1 操作步驟:
如下圖所示,綠色板為 LKS32MC453 MCU 搭載 AFE BM81710H 實物板,黃色板為 SWD 程序燒錄板。硬體連接好,接下來燒錄程序,程序實現 MCU 使能 wake up 引腳高電平,喚醒 BM81710H,等待 70ms 使 BM81710H 內部系統穩定,MCU 與 BM81710H 進行 I2C 通訊,調用讀取 BM81710H ID1、ID2 寄存器函數,並將獲取的 ID1、ID2 的值通過 UART 列印到 UART 串口助手上。
▲ 圖 3 WPI-LPCLINK2 Debugger_V1.0 板連接WPI PES_BMSV1.1板
4.2 串口助手接收到ID1 和ID2的值:
五、總結
如上所述,為LKS32MC453 MCU 對 BSP AFE BM81710H 設備 ID 讀取的Handson操作。如果有問題,可以發送郵件atu.sh@wpi-group.com與我們聯繫。
六、參考文獻
(1) LKS32MC45x_User_Manual_v1.53
(3) 串口助手:XCOM V2.0 (開源電子網: www.openedv.com)
(4) SDK:LKS32MC45x_PeripDemo_v2.9
歡迎在博文下方留言評論,我們會及時回復您的問題。
如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com 作者:紮根地下
更多資訊,請掃碼關注我們!
評論