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.

DLPC3438: DLPC3438 IIC读数据错误

Part Number: DLPC3438
Other Parts Discussed in Thread: DLPC3435, DLPC3433, DLPC3430, DLPC3432, DLPA3000

我使用FPGA控制DLPC3438,采用IIC协议进行读写操作,主要存在如下问题:

(1)当写入8个字节到0x2E地址时,通过Xilinx工具ChipScope抓取IIC信号,发现DLPC3438反馈信号为高电平,即无效响应。当写入4个字节到0x2E地址时,通过Xilinx工具ChipScope抓取IIC信号,发现DLPC3438反馈信号为低电平,为有效响应。是否写入某个寄存器的值,一定要和《DLPC3430, DLPC3432, DLPC3433, DLPC3435 and DLPC3438 Software Programmer's Guide (Rev. D)》中规定的字节数一致?

(2)FPGA控制IIC读数据按照如下协议,但是读取的数据存在错误,无法正确从寄存器中读取数据。

(3)下图为FPGA的IIC读时序,请帮忙查看是否是FPGA的时序存在问题。

其中,O_io_ctrl信号:1'b1:高电平表示从FPGA输出到DLPC3438,1'b0:低平表示从DLPC3438输入到FPGA,O_iic_scl信号为输出给DLPC3438的IIC SCL信号;O_iic_dout为从FPGA输出到DLPC3438的数据;I_iic_din为从DLPC3438输入到FPGA的数据。FPGA根据O_io_ctrl信号,将O_iic_dout和I_iic_din合成一个三态信号SDA与DLPC3438相连。

对上图进行放大,如下图所示。