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.

Read Word via SMBUS

Other Parts Discussed in Thread: BQEVSW

I am setting up an End-of-Line test system using LabView and an NI I2C/SMBus interface. I am testing with a bq20z75 and a bq20z95, both unsealed. As far as I have tested, I have no issues with write-word or write-block commands, but am having the following challenge with read-word commands:

  • All read-word commands up to 0x46 work correctly.
  • All read-word commands 0x4F and above return the data from the last correctly executed command. If I send the read word commands in this order, here are the results:
  • Read 1C = FF FF (as expected)
  • Read 54 = FF FF (Expected 84 43)
  • Read 1B = 97 9F (as expected)
  • Read 54 = 97 9F (Expected 84 43)
  • Read 46 =  0 6 (as expected)
  • Read 54 =  0 6 (Expected 84 43)

The TI Evaluation Software interface works correctly every time for every command on both of my test packs.

I power the system totally down and unplug the interface from the USB, and walk away for 15 minutes. I then power everything back up and a read word with any command 4F and higher will still return the data from the last correctly executed command.

I am baffled beyond belief. Has anyone ever seen this challenge before?

  • Hi Larry,

    Let me look into you observations and get back to you. Do you have scope or a sniffer capture of the read commands sent? If I understand correctly bqEVSW works well each time, right?

    The bq20z75 uses SMBus v1.1 with Master Mode and packet error checking (PEC) options per the SBS specification. I would recommend checking your read commands follows the spec.

    1780.smbus1p10_spec.pdf

  • Hello Damian,

    Thanks for your interest in our challenge. Although we do not know exactly what is happening, we have discovered the source of the issue. 

    There are three comms vi's provided by National Instruments in the palate for the 8451: Write, Read, and Write-Read. Using Write for Address/Command and then Read to return the data works fine for all of the commands in the standard SBS set. However, this setup chokes as described above for any Extended commands. This is true for word and block reads (except for read word 46 - which is the only command in the extended set that works).

    We have found that using the Write-Read vi yields correct results across all commands. This is very curious, given that write-read vi appears to be only the combination of the write vi and the read vi in a single vi.

    Thanks again for your response and your interest in our problem.

    Larry

  • Hi Larry,

    I would recommend using an O-scope or sniffer to capture what's being sent to the device. I suspect the read word vi isn't updating the command variable when the value is  0x4F or greater. There maybe some constraint  for the command control in the read vi. You should able to put an indicator for the command sent for debug purpose. It should be an easy change, if it's a constraint on the control variable for command in the read vi.