在使用I2C从模式接收数据时,少一个字节
在使用E030做SMBus从接收数据时少了一个字节,没有收到结尾的PEC校验数据。中断状态都可以get到,系统也没有卡死。这个会是哪里的问题?大家有遇到吗?确定是少i了?是不是与时序数量有关系 是不是接收中断有溢出的情况? 接收中断函数查查吧!
人家设计的肯定没有问题 I2C的中断频率高,要把其中断优先级配置尽量高才可以。
对于master模式要使用DMA方式。 是不是接收到stop后需要再读一次data寄存器。 接收缓冲区的大小不足以容纳所有数据。 从机在收到最后一个字节前错误地关闭了接收 接收缓冲区 是否足够大? 楼主不要收到stop中断就退出I2C的序列,要等待总线释放才可以的。 丢失最后一个字节? 使用示波器或逻辑分析仪捕获SDA/SCL波形 使用中断方式接收I2C数据? 看看是不是最后一次的中断触发流程未做对 根据I2C协议,主机每发送一个数据字节,从机都必须回复一个ACK I2C总线上的硬件问题 有没有可能因为指针错误导致数据被覆盖或读取错误? NACK应该只在从机无法处理当前数据 从机在最后一个数据字节后发送了NACK 楼主 如果对I2C时序或事件处理需要更多资料,可以参考其它型号或者竞品的Reference。里面有更详细的说明。
页:
[1]
2