ZHCUA70B February 2021 – April 2022 LDC3114 , LDC3114-Q1
计算机也可以通过 USB 与 EVM 直接通信。EVM 经过编程,可接受一些命令,从而实现寄存器访问。主要的两个命令是使用“rreg”读取寄存器或使用“wreg”写入寄存器。寄存器读取命令将所需的寄存器地址作为参数,并返回寄存器地址编号、寄存器值(十进制)和 EVM 状态的确认。寄存器写入命令将寄存器的地址和值作为两个单独输入(十六进制格式)。写入命令在执行后会返回确认以及 EVM 状态。尽管参数必须为十六进制格式,但它们有一些不同选项。它们可以包含“0x”前缀,也可以不包含,但“x”必须始终为小写。下面的示例显示了读取寄存器地址 0x04 的不同方式:
rreg 4
rreg 04
rreg 0x04
STATUS 寄存器(地址 0x00)的一个寄存器读取示例是发出“rreg 00”命令。执行此命令后收到的确认如下所示:
{"acknowledge":"rreg 00"}
{"register":{"address":0,"value":64}}
{"evm_state":"idle"}
一个寄存器写入命令的示例是发出“wreg 0A 01”,这会将值 0x01 写入器件的 RESET 寄存器。执行此命令后收到的确认如下所示:
{"acknowledge":"wreg 0A 01"}
{"console":"Writing 0x0001 to RESET register"}
{"evm_state":"idle"}
对器件进行完全寄存器访问可以使用与此相同的语法。值得注意的是,数据寄存器(地址 0x02 至 0x08 用于按钮算法,0x59 至 0x64 用于原始数据)已在命令中进行组合,因此只需要使用全部通道中第一个通道的数据便可获取数据。例如,若要从通道 0 获取原始数据,命令“rreg 59”将会抓取所有三个数据寄存器并将它们正确组合,然后以十进制格式将值返回。