09-30-2025 12:24 PM
I would like to read and write a specific register on an I2C slave device (7-bit address) with a TP240141 Aardvark I2C/SPI Host Adapter.
The LabVIEW (and dll) functions do not have separate device address and register address inputs, so how can I designate a specific register to R/W?
Aardvark I2C Read Ext.vi (aardvark.dll:c_aa_i2c_read_ext)
Aardvark I2C Write Ext.vi (aardvark.dll:c_aa_i2c_write_ext)
I currently have the Aardvark connected to an IC with an I2C interface, and I've verified that the IC is functional with another adapter. The other adapter is not compatible with an updated board design, so I would like to switch to the Aardvark.
I have reached out to Total Phase for technical support, and searched the NI forums. The Aardvark has been on the market for over a decade, so I'm sure others have run into this problem.
Any tips or examples appreciated!!!
LabVIEW 2025Q3
TotalPhaseUSB-v4.0.0
aardvark-labview-x86_64-v5.30
12-03-2025 02:03 PM
Hi SamBroyles,
Do you manage to get the answer you want?
I have the same issue that I want to read a specific register and the Aardvark Labview library doesn't have it.
12-04-2025 10:33 AM
Unfortunately, I still don't have an answer to this issue. Total Phase responded that they will update the LabVIEW driver, but they did not commit to a release date.
I've been using a very cheap USB/I2C adapter for simple read/write operations. It's just $5 on Amazon.
CH341A
http://www.lctech-inc.com/cpzx/2/ckmk/2019/0111/114.html
https://www.wch-ic.com/downloads/CH341PAR_EXE.html
Best Regards,
Sam Broyles
12-05-2025 11:32 AM
My one is more expensive than that, but it doesn't matter, we both have the same issue.
I have one issue here, I can use control center software from total phase to obtain data. However, I get no data in LabView, even though I set everything the same like the total phase software did.
Do you experience the issues? I understand you can't read single register's data. But how about all the register's data?
Thanks!
12-05-2025 05:58 PM
never mind, I figured it out.
And I figured out as well now to read specific registers.
You will just need to Write the register address(for example: 0xDF) in "Data to Write" in Write.vi, then Read it in Read.vi.
The first index in the incoming Array data will be the data for that register address.
In case you are still looking for answer.