Part Number: BQ40Z50-R3-DEVICE-FW
Hi Eric,
I have returned to this issue again. Initially I had thought that your reply made sense. However, with more reading of the SMBus specification and looking at additional data captures, I think I disagree with your argument.
1) If I understand you correctly, you say that the fuel gauge thinks that the bus has violated the Thigh-max requirement (50 us). However, I do not think that Thigh-max applies to a repeated start. In "Smbus110.pdf", section 8.1: The table lists minimum repeated start condition setup time (Tsu:sta) and minimum hold time after repeated start (Thd:sta), but lists no maximum time for these values. Figure 8.1 also shows the clock being higher longer than Thigh-max during a repeated start.
2) I think a bus idle condition requires both lines to be high for > 50 us. Why? Unfortunately the 1.1 spec isn't super helpful on this. I see the following statements:
a) 3.2: The bus becomes free again after certain time following a STOP condition or after both the SCL and SDA lines remain high for more than 50 us.
b) 5.2: The bus is free after a STOP condition or after the SCL line remains high for more than tHIGH, MAX. [Does not mention SDA status, so somewhat ambiguous]
So which is it? I think that the first statement is pretty clear, whereas the second statement does not discuss SDA (so it could just be assumed to be high here still). Additionally, the 2.0 (and later) versions of the specification all specifically say that bus idle requires both lines to be high, so I think the second statement was an unintended ambiguity in the 1.1 version.
Thoughts?
Thanks,
-Eric Castle