4.2.4.2 Collect Data Through the USB BULK Channel
The "Collect Data" function reads the desired result registers and sends the data based on the specified settings.
This function works best with continuous conversion mode and does not configure the EVM or associated
register settings for you. Collect mode started and stopped via the serial COM port, however the results will be
sent over the USB BULK channel. To use this mode, use the following format:
• Start collecting data format: collect timerPeriod collectFlags channelAddressIDs numDevices
– Where collect is always lower case, and each parameter is the decimal representation of the value in the
following format:
• timerPeriod
– The timer delay used in the MCU to allow data collection sample sets (in µs, unsigned 32bit value).
• collectFlags
– a byte of data that has a 1 to collect and a 0 to not collect each register value type, according to
the following definitions (note to only use energy and charge flags when the device supports that,
otherwise set to 0):
• VSHUNT = 0b1000000
• VBUS = 0b0100000
• DIETEMP = 0b0010000
• CURRENT = 0b0001000
• POWER = 0b0000100
• ENERGY = 0b0000010
• CHARGE = 0b0000001
• channelAddressIDs
– SPI
• Each 4 bits is the chip select (CS) value for each EVM chained together starting with the LSBs
(each CS can either be 1, 2, 3 or 4).
– For example, if EVM 1 is on channel 1 and EVM 2 is on channel 3, the value here would be
0b00110001.
– I2C
• This is the 4 LSBs of each address chained together, starting with the LSBs.
– For example, if EVM 1 is on channel 0x41 and EVM 2 is on ox43, the value here would be
0b00110001
• NumDevices
– The number of EVMs chained together (1-4).
– For example, to start data collection for VSHUNT, VBUS, and DIETEMP every 3.156 ms, for two INA229s
with EVM 1 CS = 1 and EVM 2 CS = 3, you would send: collect 3156 112 49 2
• For this example, the EVM would return the acknowledgment and state in JSON format:
{"acknowledge":"collect 3156 112 49 2"}
{"evm_state":"collecting"}
– The USB BULK channel receives data in the format: frameID deviceNumID address registerSize data
• Where each parameter is the decimal representation of the value in the following format:
– frameID (1 byte)
• Always reads 0. Used to ensure data is aligned.
– deviceNumID (1 byte)
• An ID number corresponding to the EVM number.
– From the above example, this will be 1 if reading from EVM 1 which had CS set to 1, and 2 if
reading from EVM 2 which had a CS set to 3.
– address (1 byte)
• The register address that was read from the device.
– registerSize (1 byte)
• The number of bytes that the following data will have.
– data (1 byte at a time)
• The register data value, given in bytes with the most significant byte first.
www.ti.com Operation
SBOU241C – APRIL 2020 – REVISED JULY 2021
Submit Document Feedback
INA228, INA229, INA237, INA238, and INA239 EVM User’s Guide 19
Copyright © 2021 Texas Instruments Incorporated