我正在努力为我的SC16IS750分线板上的RHR寄存器进行多次读取。我正在使用具有I2C标准频率的电路板
正常的单个读写正在工作。
该芯片具有一个最多可容纳64个字符的FiFo。芯片手册(http://www.nxp.com/documents/data_sheet/SC16IS740_750_760.pdf)中的图24显示了它应该如何工作。
然而,当启动这样的多次读取时,第一个字符被正确地转移。所有其他字符都是“0”。例如,如果FiFO在转移之前保留了16个字符,则之后将为空。
这是我从芯片接收FiFO中断时所做的事情:
- 读取中断状态寄存器IIR
- 读取线状态寄存器
- 读取RX电平寄存器RXLVL - 即Fifo中的Charcater数量
- 读取多个数据:
I2C启动,从机地址+写入,寄存器地址,重复启动,从机地址+读取,读取字符,ACK ...读取最后一个字符,NACK
我将向芯片发送一个包含16个字符的测试图案,只有第一个字符是正确的,其余字符为“0”。 RXLVL在读取之前显示16。 有没有人知道使用恩智浦芯片需要设置/考虑什么?