MTK平台充电问题
問題現象:產品經理反饋機器充電充不滿,只能充到88%;
問題排查:
問題機器日志信息初步分析:從充電時打印出的寄存器日志信息中看充電IC(bq2415x)的06寄存器處于default狀態,此時CV電壓值最大為4.2V。值得注意的是該寄存器只能在IC上電時初始化一次,之后再次修改不生效,所以懷疑點是開機初始化IC的動作有異常;
具體分析過程:
1.? 使用另一正常機器下載版本測試復現:
下載版本后做如下實驗:
正常開機,寄存器 06從默認0x40被設置成0x77,插入VBUS后,并將VBAT短路;開機查看寄存器 06,仍然能被正常置0x77;
正常開機,寄存器 06從默認0x40被設置成0x77,VBAT短路后插入VBUS,開機查看寄存器 06,仍然能被正常置0x77;
正常開機,寄存器 06從默認0x40被設置成0x77,插入VBUS后降低VBAT電壓值到1.8V, 開機查看寄存器 06,仍然能被正常置0x77;
正常開機,寄存器 06從默認0x40被設置成0x77,直接降低VBAT電壓值1.8V, 開機查看寄存器 06,仍然能被正常置0x77;
以上均是參照IC的datasheet中06寄存器可能被復位的情況做的實驗:
2. 以上實驗均不符合預期結果,嘗試其他方式去復現。
在一次復現過程中,下載完版本,USB并沒有拔出,但是將電池移除了,之后將電池接上,開機抓取log看06寄存器的值始終是default狀態(0x40),多次實驗均是同樣結果。
3. 反饋上述的必現路徑給TI工程師,對方回復需要查看下是否USB口連著適配器AP就能夠啟動進行IIC操作。之后我們在必現路徑中量測I2C是否有讀寫信號產生
下載過程中,I2C總線有信號產生;
通過下載過程中的串口log確定是有I2C寫操作:
此時的I2C操作發生在preloader階段,AP側并無主動讀寫該特定地址的操作。
需要確認的是:下載時對IC的操作是否屬于首次操作,或者是否先操作了非06寄存器,導致06寄存器始終保持default值
4. 根據上述的分析,那么機器在第一次下載后就會有異常,所以我們又選取其他機器先斷開電池再下載,也復現問題,證實了我們的猜測,同時也可以確定出現該問題和軟件版本沒有關系。
此時我們抓取下載時的I2C波形,邏輯分析儀解析后如下:
可以看到其中有對01寄存器寫值,同步向TI工程師咨詢這種情況會導致06寄存器被鎖住,開機過程中對該寄存器的操作無效。
工廠生產的機器會先在主板階段接外部電源下載,之后會斷電進入到后續的整機組裝,包括焊接電池等,所以正常流程走出來的機器是不會暴露出問題的,因為期間有斷電操作,之后再組裝開機。機器到客戶手中可能有拔掉電池或者引起電池短路的操作,導致之后下載版本時IC寄存器異常。
?
問題解決方案:
MTK最新的下載工具去除了對充電IC的操作,不存在下載過程中鎖死寄存器的問題。
總結
- 上一篇: 汽车维修企业管理【6】
- 下一篇: VOCs废气处理设备-粤信环保