“Collect Data”功能会根据指定的设置,读取所需的结果寄存器并发送相关数据。此功能在连续转换模式下性能最佳,但不能为您配置 EVM 或相关的寄存器设置。收集模式通过串行 COM 端口启动和停止,但结果将通过 USB BULK 通道发送。若要使用此模式,请使用以下格式:
- 启动数据采集的格式:collect timerPeriod collectFlags channelAddressIDs numDevices
- 收集始终以小写形式完成,并且每个参数均以十进制表示值,格式如下:
- timerPeriod
- MCU 中用于数据采集样本集的计时器延迟(单位为毫秒,无符号 32 位值)
- collectFlags
- 根据以下定义,一个数据字节具有 1(表示要收集每个寄存器值类型)和 0(表示不收集每个寄存器值类型):
- VBUS = 0b0100000
- DIETEMP = 0b0010000
- CURRENT = 0b0001000
- POWER = 0b0000100
- ENERGY = 0b0000010
- CHARGE = 0b0000001
- channelAddressIDs
- I2C
- 这是串连在一起的每个地址的四个 LSB,首先是最低有效字节
- 例如,如果 EVM 1 在通道 0x44 上,EVM 2 在通道 0x46 上,这里的值就是 0b01100100
- NumDevices
- 例如,要每 3.156ms 开始进行一次 VBUS 和 DIETEMP 数据采集,则对于 EVM 1 地址 = 0x44 和 EVM 2 地址 = 0x46 的两个 INA700,需要发送:collect 3156 48 100 2
- 对于本例,EVM 会返回 JSON 格式的确认和状态:
- {"acknowledge":"collect 3156 48 100 2"}
- {"evm_state":"collecting"}
- USB BULK 通道接收如下格式的数据:frameID deviceNumID address registerSize data
- 每个参数以十进制表示值,格式如下:
- frameID(1 个字节)
- deviceNumID(1 个字节)
- 对应于 EVM 型号的 ID 号
- 在上面的示例中,如果从地址设置为 0x44 的 EVM 1 读取,该值将为 1,如果从地址设置为 0x46 的 EVM 2 读取,该值将为 2
- address(1 个字节)
- registerSize(1 个字节)
- data(一次 1 个字节)
- 字节形式的寄存器数据值,首先是最高有效字节(MSB)
- 停止数据采集的格式:stop
- 其中 stop 始终为小写
- EVM 将返回 JSON 格式的确认和状态:
- {"acknowledge":"stop"}
- {"evm_state":"idle"}