请问怎样通过2607的I2C去访问PAD1000寄存器?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
以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
最后一步Read Cmd:CMD_CPU_pad1000_value_rd, addr:37, Read(OK) Rcvd: 00 00 00 00不需要指定subAddr:吗?
请问一下Rcvd: 00 00 00 00,就是读到的值吗,如果读到的值出现1的情况,是不是代表初始有问题,是不是要通过reset或者proj_on去重新初始化。
如果读到的值非0,表示PAD1000检测到了系统中断。例如值为01表示温度过高。在开机过程如果发生了中断,是开不了机的,PAD1000的INTZ脚输出为低电平。
再问一下,是不是8位,只要1位出现1,都会导致INTZ输出低电平?
如果是出现类似 00 01 00 00的问题,就是DMD_FLT为1,是不是可以通过重新reset以及proj_on来解决,或者其它方法?
是的,如果出现1位非0值,INTZ都会被拉低。
不一定能解决,比如DMD Fault的话可能要更换DMD,或者检查DMD的供电电压才可以。所以需要看具体是出现哪一个错误。
如果要向PAD1000的寄存器写,怎么进行,例如向Address 0Dh写, mask相关的bit。谢谢!
请问一下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出现低。请问是什么问题?
我们会偶尔出现这种光机点不亮的情况,其他都正常,请问这种情况下通过读PAD1000的寄存器能发现问题吗? 我们每次读出来的值都是00.另外我们的供电不是5V 而是要低一些,请问会不会有影响?谢谢
Hi Zhichun, 如果要写0D寄存器,例如写值FF,命令如下:
Write Cmd:CMD_CPU_pad1000_addr_data, addr:36, subAddr:39 00 00 00 0d 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_pad1000_reg_val, addr:36, subAddr:39 00 00 00 ff Write(OK) Write Cmd:CMD_CPU_handshake_flag_wr, addr:36, subAddr:3a 00 00 00 01 Write(OK) Write Cmd:CMD_CPU_pad1000_value_wr, addr:36, subAddr:38 00 00 00 d2 Write(OK)
Hi Limon, 如果光机没有点亮很可能读不到PAD1000d寄存器。因为PAD1000 是通过DPP2607的SPI总线来访问的,可以先检查一下2607的工作状态。输入电压在3.6V以上都没有问题。
目前输入电压为4.8V左右,以及3.3V 1.8V 1.0V电压都正常,只是DMD相关的电压(VOFS, VBAIS, VRST)起来后又掉下去了,导致intz拉低。目前也不确定是什么情况导致的。还有2607是否正常工作,可以通过什么状态去判断?
请问如何读取2607的寄存器值? 我直接读出来的值都是0,但是我写寄存器都正常!谢谢