[技术问答] AC78013FCLA芯片: 硬件I2C作为slave dma模式通信异常的坑

[复制链接]
 楼主| fanchenxinok 发表于 2022-7-5 13:18 | 显示全部楼层 |阅读模式
本帖最后由 fanchenxinok 于 2022-7-5 13:20 编辑

芯片是autochips的AC78013FCLA, 硬件I2C作为slave端和master通信 ,在系统上电的时候主机会发3个字节命令,从机回两个30个字节,这个过程重复执行三次。三次通信过程有1%的概率通信失败,主机收不到从机的ACK。原来波形会有点干扰,后面加了滤波电容,测试了波形也满足I2C保持时间的要求,但是还是有几率出现通信超时失败。现在只能怀疑芯片的I2C硬件有坑了。通信失败时打印的status0的状态经常是0x6c或0xed。
chenqianqian 发表于 2022-7-5 20:35 来自手机 | 显示全部楼层
听说硬件IIC不好用?

评论

好用是挺好用 就是会有概率出问题 因为概率小 波形也抓不到 没法排除问题  发表于 2022-7-6 10:51
saservice 发表于 2022-7-8 09:36 | 显示全部楼层
是通信的速度太快了吗   
updownq 发表于 2022-7-8 15:37 | 显示全部楼层
这个硬件iic应该问题不大。  
yeates333 发表于 2022-7-8 16:03 | 显示全部楼层
为什么不使用串口呢
bestwell 发表于 2022-7-8 16:43 | 显示全部楼层
这个收不到应答吗   
 楼主| fanchenxinok 发表于 2022-7-8 16:58 | 显示全部楼层
saservice 发表于 2022-7-8 09:36
是通信的速度太快了吗

速度不到100K, 75K左右
 楼主| fanchenxinok 发表于 2022-7-8 17:01 | 显示全部楼层
bestwell 发表于 2022-7-8 16:43
这个收不到应答吗

发送的时候,从机端DMA发送完毕的中断没有触发,发送超时,主机端linux kernel会打印ACK error的log。应该是主机在读的时候发送从机地址没有得到从机的应答。
 楼主| fanchenxinok 发表于 2022-7-8 17:02 | 显示全部楼层
updownq 发表于 2022-7-8 15:37
这个硬件iic应该问题不大。

开启定时器监控I2C status0寄存器 时不时就会出现0x6c和0xed的异常状态,都没有进行通信 正常状态应该是0x08才对。说明硬件I2C的状态机很不稳定啊。
belindagraham 发表于 2022-7-9 12:17 | 显示全部楼层
感觉硬件iic不好用呢  
pixhw 发表于 2022-7-9 13:13 | 显示全部楼层
看看主程序有没有判断是否成功呢  
chenci2013 发表于 2022-7-9 20:32 | 显示全部楼层
这个iic地址如何判断的   
isseed 发表于 2022-7-10 14:29 | 显示全部楼层
硬件I2C做从机,如何快速相应?   
 楼主| fanchenxinok 发表于 2022-7-11 13:19 | 显示全部楼层
chenci2013 发表于 2022-7-9 20:32
这个iic地址如何判断的

主机也是硬件i2c
guijial511 发表于 2022-7-11 20:43 来自手机 | 显示全部楼层
谢谢楼主分享避坑经验,哈哈。
yangxiaor520 发表于 2022-7-12 08:38 来自手机 | 显示全部楼层
哈哈,楼主淡定啊!
 楼主| fanchenxinok 发表于 2022-7-12 10:26 | 显示全部楼层
pixhw 发表于 2022-7-9 13:13
看看主程序有没有判断是否成功呢

master端不是我们产品 没法分析
 楼主| fanchenxinok 发表于 2022-7-13 11:47 | 显示全部楼层
有没有人遇到同样问题的?
huquanz711 发表于 2022-7-13 18:24 来自手机 | 显示全部楼层
看来不敢轻易用硬件IIC啊!
tpgf 发表于 2022-8-1 10:25 | 显示全部楼层
我还是比较喜欢自己模拟iic
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

67

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部