I use the library I2C digital waveform with a PXIe 6556 to check the protocol with my chip.
The chip was verified with the NI USB 8452 and work.
I try to build the trame with the library I2C digital waveform and generate the signal with a PXIe 6556.
I can write the question with the PXI and read the response with the USB (valid answer)
When I write the question with the PXI and read the answer with the PXI I read only the address of my chip and a lot of FF
I don't know why ? how ? ....
my code attached
the graph answer
You might also consider posting this question on the Automotive and Embedded Networks forum - that page is more specific to I2C.
Just to confirm, everything worked fine with the 8452? What version of LabVEIW are you working with?
I don't know much about the 6556 or HSDIO in general, but I mentioned this to some engineers here who work more closely with HSDIO, and they told me that this combination of the 6556 and reference library isn't meant to implement full I2C communication (question-answer) the way a 845x device or FPGA-based device would. The library will allow you to build I2C waveforms and the card is capable of transmitting them out; but the nature of HSDIO makes it difficult to receive a response and process it in a timely manner.
So, in summary, your best options for standard I2C are going to be the 8542 or an FPGA-based device.
Sorry that I couldn't be of more help.
Is there a particular reason you can't use the USB 8452 in your test instead of using the PXIe-6556 for both tasks?
I'm sorry, I may have been unclear with my question. My suggestion was to use the USB 8452 to verify your chip and only use the PXIe-6556 only to write. Is there a problem with this method?
Without fully understanding what results occur from reading a I2C signal with the 6556, I cannot say why the 6556 is not able to perform the acquisition you are looking for. If you are reading all F's, it sounds like the device is holding the line high rather than tristate. Are you generating values with the 6556 at all? HSDIO uses a hold-last-value model, so if the last generated sample is a 1, it will hold that value indefinitely, which could be what you are seeing.