作者: 朱明武(Mingmo)
電量計有三層安全模式:SEALED(加鎖), UNSEALED(解鎖), FULL ACCESS(全訪問)。在不同安全模式下切換需要不同的安全密碼。下面以BQ40Z50-R2為例(BQ40Z50-R1/R2/R3均適用)介紹三層安全模式的區別、模式切換方法、如何讀取密碼及如何修改密碼。
1、三層安全模式的區別
不同安全模式下電量計的信息訪問權限不同。
SEALED(加鎖)模式下,標準SBS命令(Command)可以訪問、部分擴展命令(Extended Command)不能使用、不能讀寫Data Memory參數(不能導出導入GG文件)、不可以燒錄CHEM ID、不能燒錄或導出固件(FW)。具體SBS命令訪問權限請參考電量計技術參考手冊(Technical Reference Manual),里面ManufacturerAccess() Command List表格的Available in SEALED Mode標記了能否訪問。
UNSEALED(解鎖)模式下,標準SBS命令(Command)可以訪問、部分擴展命令(Extended Command)不能使用、可以讀寫Data Memory參數(可以導出導入GG文件)、可以燒錄CHEM ID、不能燒錄或導出固件 (FW)。
FULL ACCESS(全訪問)模式下,所有SBS命令(Command)可以訪問、可以讀寫Data Memory參數(可以導出導入GG文件)、可以燒錄CHEM ID、不能燒錄或導出固件 (FW)。BQ40Z50-R2從TI出貨時默認是FULL ACCESS(全訪問)模式。
2、三層安全模式之間切換方法
2.1 從FUll ACCESS or UNSEALED 進入 SEALED
往ManufacturerAccess()發送命令 0x0030 即可讓BQ40Z50-R2進入SEALED(加鎖)模式。通過檢查旗標OperationStatus()[SEC1, SEC0] = 1,1.可以判斷電量計處于SEALED(加鎖)模式。
注意,如果該電量計的SREC固件曾經加鎖過,那么在FULL ACCESS or UNSEALED模式下發送復位命令或導出SREC固件后都會使得電量計加鎖,進入SEALED模式。
2.2 從SEALED 進入UNSEALED
從SEALED 進入UNSEALED需要往ManufacturerAccess()發送兩個字的UNSEAL KEY密碼。默認UNSEAL KEY第一個字是0x0414,第二個字是0x3672。先發送第一個字,接著在4秒內發第二個字,中間不能有其它命令讀寫電量計。通過檢查旗標OperationStatus()[SEC1, SEC0] = 1,0.可以判斷電量計處于UNSEALED(解鎖)模式。
2.3從UNSEALED 進入FULL ACCESS
從UNSEALED進入FULL ACCESS需要往ManufacturerAccess()發送兩個字的FULL ACCESS KEY密碼。默認FULL ACCESS KEY第一個字是0xFFFF,第二個字是0xFFFF。先發送第一個字,接著在4秒內發第二個字,中間不能有其它命令讀寫電量計。通過檢查旗標OperationStatus()[SEC1, SEC0] = 0,1.可以判斷電量計處于FULL ACCESS(全訪問)模式。
3、如何讀取安全密碼
在解鎖模式下用ManufacturerAccess() 0x0035命令讀取安全密碼(Security Keys)。
首先,打開bqStudio的Advanced Comm SMB界面,配置Target Addr = 16 (Hex);在Write Block 位置輸入 44(Hex),在 Block中輸入 35 00 ,然后點擊Write Block 按鈕。
然后,在 Read Block 位置輸入 44(Hex),點擊 Read Block按鈕,即可讀取電量計的安全密碼。返回的數據以小端序顯示,即低字節在前、高字節在后。比如下圖1,返回14 04 72 36 FF FF FF FF,其中0414是UNSEAL KEY的第一個字節,3672是UNSEAL KEY的第二個字節,FFFF是FULL ACCESS KEY的第一個字節,最后一組FFFF是FULL ACCESS KEY的第二個字節。
圖1 讀取密碼
4、如何修改安全密碼
在解鎖模式下用ManufacturerAccess() 0x0035命令修改安全密碼(Security Keys)。下面舉例把BQ40Z50-R2默認UNSEAL KEY密碼0x0414, 0x3672修改為0x1234, 0x5678,保留FULL ACCESS KEY(默認0xFFFF, 0xFFFF)不變。
打開bqStudio的Advanced Comm SMB界面,配置Target Addr = 16 (Hex);在Write Block 位置輸入 44(Hex),在 Block中輸入 35 00 34 12 78 56 FF FF FF FF,然后點擊Write Block 按鈕,如圖2所示。 Transaction Log顯示綠色表示字節已經成功發送電量計。
按照第3節介紹的安全密碼讀取方法,讀回密碼檢驗密碼是否修改正確。如下圖3,在 Read Block 返回35 00 34 12 78 56 FF FF FF FF表示密碼修改成功。
制定密碼時要注意UNSEAL KEY的第一個字節與FULL ACCESS KEY的第一個字節不能相同。比如UNSEAL KEY 0x1234, 0x5678與FULL ACCESS KEY 0x1234, 0xFFFF的第一個字節相同為0x1234,因此這不是有效的密碼。
審核編輯:何安
-
電源管理
+關注
關注
115文章
6193瀏覽量
144951
發布評論請先 登錄
相關推薦
評論