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.

BQ769142: 使用STM32F103 MCU設置BQ769142或BQ76952失敗

Part Number: BQ769142
Other Parts Discussed in Thread: BQ76952, BQ76942

您好,

       參考 sluc701文件,利用STM32F103 MCU設置BQ769142,電路串接14顆電池,當初始化後,Main Loop每隔100ms讀取AlarmBits = BQ769x2_ReadAlarmStatus();

總是收到0x3600,無法正確初始化,讀取到CELL的電壓值。

  • 看起來好像與設置142與52的I2C數據有關,sluucf2c(142)文件的第73頁與sluuby2b(52)的73頁,所定義的I2C 介面,default 都是0,但意義上不同 142預設 0x00 Default ( I2C Fast with CRC enabled),所以看似需要做CRC8,但具體那些通訊的內容須要如何做CRC8或如何檢查呢?

  • 您好,请参考下面内容:

    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,所以我已經無法了解我的問題會出在哪裡!

  • 您好,正在询问更了解这款芯片的TI工程师,稍后回复。

  • 您好,您是否仅在 BQ7695202 和 BQ769142 上发现了这些问题,还是 BQ76952 也导致了问题?我想进一步澄清哪些部分导致了哪些问题。 请注意,BQ769142 默认启用 CRC,因此客户应确保这不会导致任何问题。

  • 您好,

    正如您所述,確實 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