Other Parts Discussed in Thread: BQ76952, BQ76942
您好,
參考 sluc701文件,利用STM32F103 MCU設置BQ769142,電路串接14顆電池,當初始化後,Main Loop每隔100ms讀取AlarmBits = BQ769x2_ReadAlarmStatus();
總是收到0x3600,無法正確初始化,讀取到CELL的電壓值。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好,请参考下面内容:
There are some CRC examples in Section 4 of the BQ769x2 Software Development guide (you can find this under the BQ76952 and BQ76942 product folders). Here is the link: https://www.ti.com/lit/an/sluaa11a/sluaa11a.pdf
您好,
我有參考sluaa11a.pdf ,但問題似乎無關,我購買了BQ769142、BQ76952及BQ7695202,其中BQ769142與BQ7695202,在使用邏輯分析儀來解析I2C BUS的訊號,發現這兩棵IC,在下進入啟動設置指令時(Write 0x10 , 0x3E,0x90,0x00), IC總是回復NAK,
以致後面的設定,都沒辦法寫入數據
但BQ76952的反應則不一樣,可以進入設置,但設置完成後,BQ76952 I2C BUS則不在回應,
我曾經在BQ76952設定過一次,可以讀出CELL電壓值,但哪次之後,更該設定,就再無法讀出數據
這是下給BQ7695202的 RESET指令,IC也是回報NAK,
sluaa11a.pdf 文件中,下給IC的指令,IC都是回ACK,所以我已經無法了解我的問題會出在哪裡!
您好,
正如您所述,確實 BQ7695202 和 BQ769142 預設使用I2C CRC方式通訊,sluc701文件及https://www.ti.com/lit/an/sluaa11a/sluaa11a.pdf 中,描述的似乎較少,文件中提到使用Subcommands(SWAP_COMM_MODE,8,W);指令來切換使否使用CRC8,但具體如何接換成功的方法,可參考的文件好像不多,我嘗試切換,但沒辦法正確運作,於是BQ7695202 使用I2C CRC方式來通訊,就不切換了!
CRC 通訊的規則可參考: https://www.ti.com.cn/cn/lit/an/slva626b/slva626b.pdf 文件
最後收斂問題,BQ7695202 和 BQ769142 預設使用I2C BUS,通訊使用 CRC8來檢查封包,寫入IC的封包,是通訊中檢查,通訊中,包含若干CRC8的字元(Byte),安插在封包中,安插規則,參考https://www.ti.com.cn/cn/lit/an/slva626b/slva626b.pdf ...等文件說明,BQ7695202 和 BQ769142 在通訊中,只要是CRC8檢查錯誤,就會回應NAK,終止後續的通訊,故當CRC檢查啟動時,Master利用I2C BUS,未加入CRC8檢查字元,寫指令到BQ7695202 和 BQ769142,IC在收到第3個Byte的資料後,就會回應NAK,因為第3Byte是CRC檢查的第一個安插的CRC8檢查字元,IC是因為CRC檢查錯誤而中止通訊。
BQ7695202、BQ769142,BQ76952,建議使用預設的通訊界面及檢查方式,切換通訊的模式,並不會增加好處。
BQ7695202 CommandSubcommands(BQ769x2_RESET); 指令碼: 0x0012
波形中,可見因通訊啟動CRC8檢查,BQ7695202 的回應都是ACK,不再是NAK
BQ769x2_ReadDeviceNumber(); 指令碼: 0x0001
BQ7695202 回應IC編號: 0x7695