Collect Data 功能会根据指定的设置,读取所需的结果寄存器并发送相关数据。此功能在连续转换模式下性能最佳,但不能为您配置 EVM 或相关的寄存器设置。收集模式通过串行 COM 端口启动和停止,但结果将通过 USB BULK 通道发送。若要使用此模式,请使用以下格式:
- 启动数据采集的格式:collect timerPeriod collectFlags channelAddressIDs numDevices
- 收集始终以小写形式完成,并且每个参数均以十进制表示值,格式如下:
- timerPeriod
- MCU 中用于数据收集样本集的计时器延迟(单位为 µs,无符号 32 位值)。
- collectFlags
- 一个数据字节,根据以下定义,对于每个寄存器值类型,1 表示收集,0 表示不收集(注意,仅在器件支持时使用能量和充电标志,否则设置为 0):
- VSHUNT = 0b1000
- VBUS = 0b0100
- CURRENT = 0b0010
- POWER = 0b0001
- channelAddressIDs
- 这是以 LSB 开头的每个 I2C 地址串连起来的 4 个 LSB。
- 例如,如果 EVM 1 位于地址 0x41,EVM 2 位于地址 0x43,此处的值为 0b00110001。
- NumDevices
- 例如,要每 2.2ms 开始进行一次 VSHUNT 和 VBUS 数据收集,则对于 EVM 1 地址 = 0x41 和 EVM 2 地址 = 0x43 的两个 INA226EVM,您要发送:collect 2200 12 49 2
- 对于本例,EVM 会返回 JSON 格式的确认和状态:
- {"acknowledge":"collect 2200 12 49 2"}
- {"evm_state":"collecting"}
- USB BULK 通道接收如下格式的数据:frameID deviceNumID address registerSize data
- 每个参数以十进制表示值,格式如下:
- frameID(1 个字节)
- deviceNumID(1 个字节)
- 对应于 EVM 编号的 ID 数字:
- 在上面的示例中,如果从地址设置为 0x41 的 EVM 1 读取,该值将为 1,如果从地址设置为 0x43 的 EVM 2 读取,该值将为 2。
- address(1 个字节)
- registerSize(1 个字节)
- data(一次 1 个字节)
- 停止数据采集的格式:stop
- 其中 stop 始终为小写。
- EVM 将返回 JSON 格式的确认和状态:
- {"acknowledge":"stop"}
- {"evm_state":"idle"}