IIC时钟频率影响读取传感器问题

  调试一个IPMC已经快两个月了,这期间IIC读取温度传感器和电流传感器一直没有得到应答。最后发现是IIC时钟频率的问题;一般来说频率越高,传感器不应答的可能性越大;
  同时延时函数是单纯的for循环,for循环的时间和CPU主频有关,从今天代码查看的位置好像就是之前设置晶振的位置。
  然后写个流水账记录一下今天一天的调试解决过程
  1.逻辑分析仪抓模拟iic发现有正常发送从机地址,可是完全无应答。(顺带发现逻辑分析仪的解码错误概率还挺大)
  2.求助项目经理,得到线索;主控程序有使用iic读取传感器且完成验证,并且迎接连接无大差异。于是屁颠屁颠clone了主控的程序把所有关于IIC的部分统统复制到计算板程序替换掉原来的部分,但通过git发现其实没有什么区别。
  3.抓主控的iic引脚;(一开始傻不拉几的接错了脚还以为主控改了引脚@_@,事实证明对于我这种经常迷糊的性格还是得常备一个万用表)发现主控发送的内容和计算板一致,所以不存在发送内容错误问题;
  4.得到指点:把计算板内容烧写到主控;烧写到主控后又因为本人实在过于粗心,忘记转串口,看着计算板不停打印的 no iic ack 以为程序烧到主控后还是不能运行。这一步直接影响到了后续问题解决阶段的判断。
  5.抓到项目经理过来后,发现计算板和主控板发送的iic频率不同,计算板的scl大概在400kHz左右,主控在500+kHz左右。于是项目经理陷入了迷惑……没道理频率慢下来了反而没有应答(针对我反馈的主控也无法运行这一虚假现象……我的错……)
  6.再后来想着是不是计算板上的温度传感器换掉了,原来是LM75,现在换成了SD5075.可事实证明,并没有;
  7.最后实在没有办法的情况下,项目经理还是换点了延时,调低了IIC的频率到了一半左右,终于得到了应答。
  还有以后记得做调试记录!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值