With the Aardvark I2C/SPI Host Adapter and Aardvark Software API, I’m trying to read from an I2C sensor with the smallest time resolution possible. Can I buffer read/write commands to avoid being limited by USB frame rates?
Response from Technical Support:Thanks for your question! For the Aardvark API functions, everything is a block function that waits for the response from the device, which affects timing. Each API call that is used to send data to and from the Aardvark adapter can cause a delay up to 1ms on the PC host. This is caused by the inherent design of the USB architecture. Also, the Aardvark adapter communicates with USB Full Speed (12 Mbit/s), which is a bit slower than other Total Phase devices. For more information about USB scheduling delays, please refer to the Application Notes section of the Aardvark I2C/SPI Host Adapter User Manual.
To accelerate your read/write speed, Total Phase has another device, the Promira Serial Platform, for communicating with and programming I2C (or SPI) devices.
The Promira platform communicates over Ethernet and Ethernet over USB, both of which are faster than full-speed USB. With Promira Software API, the Promira platform also provides the queue functionality - multiple commands can be queued up and shifted to the device at once. For details about queuing functions, please refer to the Queue Overview section of the Promira Serial Platform User Manual.
What else is different between the Aardvark adapter and the Promira platform? For a quick comparison, here is a table that summarizes the features of the TotalPhase host adapters and other I2C/SPI devices:
Additional resources that you may find helpful include the following:
We hope this answers your question. Want more information? You can contact us and request a demo that applies to your application, as well as ask about our Total Phase products.