TI中文支持网
TI专业的中文技术问题搜集分享网站

PAD1000寄存器如何读取

请问怎样通过2607的I2C去访问PAD1000寄存器?

MengAo Zeng:

以PAD1000的0C寄存器为例,读的命令如下:

Write Cmd:CMD_CPU_pad1000_addr_data, addr:36, subAddr:39 00 00 00 0c Write(OK)Write Cmd:CMD_CPU_handshake_flag_wr, addr:36, subAddr:3a 00 00 00 01 Write(OK)Write Cmd:CMD_CPU_pad1000_addr, addr:36, subAddr:38 00 00 00 d0 Write(OK)Write Cmd:CMD_CPU_handshake_flag_wr, addr:36, subAddr:3a 00 00 00 01 Write(OK)Write Cmd:CMD_CPU_pad1000_regi_write, addr:36, subAddr:38 00 00 00 d1 Write(OK)Write Cmd:cmd_write_rdaddr, addr:36, subAddr:15 39 Write(OK)Read Cmd:CMD_CPU_pad1000_value_rd, addr:37, Read(OK) Rcvd: 00 00 00 00

limon gold:

回复 MengAo Zeng:

最后一步Read Cmd:CMD_CPU_pad1000_value_rd, addr:37, Read(OK) Rcvd: 00 00 00 00不需要指定subAddr:吗?

MengAo Zeng:

回复 limon gold:

是的,最后一步是读到的值。

zhichun Hou:

回复 MengAo Zeng:

请问一下Rcvd: 00 00 00 00,就是读到的值吗,如果读到的值出现1的情况,是不是代表初始有问题,是不是要通过reset或者proj_on去重新初始化。

MengAo Zeng:

回复 zhichun Hou:

如果读到的值非0,表示PAD1000检测到了系统中断。例如值为01表示温度过高。在开机过程如果发生了中断,是开不了机的,PAD1000的INTZ脚输出为低电平。

zhichun Hou:

回复 MengAo Zeng:

再问一下,是不是8位,只要1位出现1,都会导致INTZ输出低电平?

如果是出现类似 00 01 00 00的问题,就是DMD_FLT为1,是不是可以通过重新reset以及proj_on来解决,或者其它方法?

MengAo Zeng:

回复 zhichun Hou:

是的,如果出现1位非0值,INTZ都会被拉低。

不一定能解决,比如DMD Fault的话可能要更换DMD,或者检查DMD的供电电压才可以。所以需要看具体是出现哪一个错误。

zhichun Hou:

回复 zhichun Hou:

如果要向PAD1000的寄存器写,怎么进行,例如向Address  0Dh写, mask相关的bit。谢谢!

zhichun Hou:

回复 zhichun Hou:

请问一下Write Cmd:cmd_write_rdaddr, addr:36, subAddr:15 39 Write(OK) 这句是不是有错误。实际操作反馈error。帮忙确认一下是不是subAddr存在问题。

还有就是我们将上面Write Cmd:cmd_write_rdaddr, addr:36, subAddr:39 15 Write(OK) 就可以了。

但对不正常的板子读出的取都是0,可INTZ出现低。请问是什么问题?

limon gold:

回复 zhichun Hou:

我们会偶尔出现这种光机点不亮的情况,其他都正常,请问这种情况下通过读PAD1000的寄存器能发现问题吗? 我们每次读出来的值都是00.另外我们的供电不是5V 而是要低一些,请问会不会有影响?谢谢

赞(0)
未经允许不得转载:TI中文支持网 » PAD1000寄存器如何读取
分享到: 更多 (0)