• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

IIC通讯失败发送数据没有回应?

megar 2019-03-05 浏览量:2340
IIC通讯失败发送数据没有回应?主要是调试AC108,demo板上有单片机驱动,但是打算用rk3399调试,一直无法通讯最后只有拆掉单片机IIC有回应了,在调试过程中如何排除IIC干扰,只能拆除么,用逻辑分析仪也无法测试么?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • I2C上面本来就有可能收不到回应的,尤其是一条总线上面挂了很多个器件的时候

    如果熟悉I2C的时序,可以降低I2C的通信速度然后用逻辑分析仪去捕获

    • 发布于 2019-03-05
    • 举报
    • 评论 0
    • 2
    • 0

其他答案 数量:9
  • 个人推测是你的单片机IIC接口可能设置为推挽输出,造成3399拉低电平的时候,总线下拉不了。

    建议:

    试试将单片机的IIC接口设置为OC模式, 

    在IIC总线上要有上拉电阻。

    • 发布于2019-03-06
    • 举报
    • 评论 0
    • 2
    • 0

  • 可以用stm32的监控模式调试,接在i2c总线上过去数据,或者用示波器看波形但是大量数据就不好看了,只能用芯片监控通过串口输出读取
    • 发布于2019-03-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般情况使用示波器抓波形基本就可以,遇到总线异常的话,可以分别断开每个器件,一般都有串入100欧姆电阻,断开也很方便。
    • 发布于2019-03-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 先看看IIC的时序对不对吧

    再看看配置寄存器的方式与协议

    • 发布于2019-03-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 示波器看看波形,一般 iic 总线有上拉,看看是不是 3399 无法使用 iic 中线。sck 无法拉低的问题
    • 发布于2019-03-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 最好是先看看总线上有几个设备芯片,最低的速度是多少,按最低的速度进行通讯试试
    • 发布于2019-03-07
    • 举报
    • 评论 0
    • 0
    • 0

  • Linux的I2C驱动中是可以设置回应或不回应的,你装的驱动是默认的SMBUS不带回应机制的I2C,当然通信失败。

    • 发布于2019-03-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个可以通过示波器来看波形,检查总线有没有上拉,检查一下寄存器的协议配置,另外看看硬件连接
    • 发布于2019-03-26
    • 举报
    • 评论 0
    • 0
    • 0

  • I2C可以设置应答和非应答,按你描述的感觉是芯片驱动力的事实,调整下上拉电阻看看。
    • 发布于2019-03-27
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

IIC通讯失败发送数据没有回应?