NXP MC33772C TPL 通信異常分析

關鍵字 :NXPAFEBMS電池管理系統MC33772C

一、簡介

       在使用 LPC5516 + MC33665 去驅動帶有 2 個 MC33772C 的 BJB 板時,發現一直未能與 MC33772C 通信成功,且 MC33772C 的指示燈一直沒亮,本文將對該問題進行分析。

二、MC33772C TPL 通信異常分析

1. 正常來說,LPC5516 往 MC33665 發送 TPL 埠 3 的數據,MC33665 應向 TPL 埠 3 轉發數據,由於 MC33772C 在接收到數據時,若是處於睡眠狀態,那其將被喚醒,此時其 VCOM 將有輸出,由 VCOM 供電的指示燈將亮燈,但實際的現象是 LPC5516 可抓取到發送給 MC33665 的 SPI 波形,而 MC33772C 的指示燈卻一直沒有點亮過,說明 VCOM 一直處於關閉狀態,即 MC33772C 一直處於睡眠狀態,說明其沒有接收到來自 MC33665 的 TPL 消息,推測可能是由於數據幀格式出現問題導致 MC33665 沒有轉發數據。

2. 使用邏輯分析儀抓取 LPC5516 發送給 MC33665 的 SPI 波形,其對 MC33772C 讀寫 CID 的波形如圖 1 所示,TPL2 幀格式如圖 2 所示。從波形上看,這兩幀數據的寄存器數據、寄存器地址以及命令類型,均無錯誤,那有可能出現問題的就只剩下最後一個字節的 CRC了。

圖 1 讀寫 CID SPI 波形

圖 1 讀寫 CID SPI 波形

圖 2 TPL2 幀格式

圖 2 TPL2 幀格式

3. MC33665 的 EVH_MCUIF_ERR_STAT 寄存器(0x33)可指示 MCU 埠的錯誤狀態,如圖 3 所示,其中包括 CRC 錯誤。通過讀取該寄存器,其 SPI 波形如圖 4 所示,其寄存器數據為 0x02,即 CRCERR 為 1,表明發送往該埠的數據幀 CRC 出現錯誤。

圖 3 EVH_MCUIF_ERR_STAT 寄存器

圖 3 EVH_MCUIF_ERR_STAT 寄存器

圖 4 EVH_MCUIF_ERR_STAT 寄存器出現 CRC 錯誤

圖 4 EVH_MCUIF_ERR_STAT 寄存器出現 CRC 錯誤

4. 檢查 CRC 計算函數,發現其計算順序有問題,該計算沒有按照數據幀從高字節依次往低字節計算,如圖 5 所示,修改後如圖 6 所示。

圖 5 原 CRC 計算函數
圖 5 原 CRC 計算函數

圖 6 修改後的 CRC 計算函數
圖 6 修改後的 CRC 計算函數

5. 修改完 CRC 計算函數後,重新進行測試,CRC 錯誤消除,如圖 7 所示,MC33772C 指示燈亮起,且讀取 CID 能正常接收到響應,如圖 8 所示。

圖 7 EVH_MCUIF_ERR_STAT 寄存器 CRC 錯誤消除

圖 7 EVH_MCUIF_ERR_STAT 寄存器 CRC 錯誤消除

圖 8 讀 CID 響應幀
圖 8 讀 CID 響應幀

三、參考文獻

  1. MC33665A Datasheet (3.0).pdf
  2. ds633730 - MC33772C Datasheet (3.0).pdf

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論