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 is started and stopped through the serial COM port, however the results are 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:
- VSHUNT = 0b1000
- VBUS = 0b0100
- CURRENT = 0b0010
- POWER = 0b0001
- channelAddressIDs
- This is the 4 LSBs of each I2C address chained together, starting with the LSBs.
- For example, if EVM 1 is on address 0x41 and EVM 2 is on 0x43, the value here is 0b00110001
- NumDevices
- The number of EVMs chained together
(1-4).
- For example, to start data collection for VSHUNT and VBUS every 2.2 ms, for two INA231EVMs with EVM 1 address = 0x41 and EVM 2 address = 0x43, send: collect 2200 12 49 2
- For this example, the EVM returns the acknowledgment and state in JSON format:
- {"acknowledge":"collect 2200 12 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
verify data is aligned.
- deviceNumID (1 byte)
- An ID number corresponding to the EVM number.
- From the above example, this is 1 if reading from
EVM 1 which had address set to 0x41, and 2 if
reading from EVM 2 which had a address set to
0x43.
- address (1 byte)
- The register address that
was read from the device.
- registerSize (1 byte)
- The number of bytes that the
following data has.
- data (1 byte at a time)
- The register data value,
given in bytes with the most significant byte
first.
- Stop collecting data format: stop
- Where stop is always lower case.
- The EVM returns the acknowledgment and state in JSON format:
- {"acknowledge":"stop"}
- {"evm_state":"idle"}