跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1M系列
  4. 关于MC0系列的I2C从机模式时钟延展功能的问题

关于MC0系列的I2C从机模式时钟延展功能的问题

已定时 已固定 已锁定 已移动 YTM32B1M系列
4 帖子 2 发布者 62 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • yifeng_xieY 离线
    yifeng_xieY 离线
    yifeng_xie
    编写于 最后由 编辑
    #1

    04039cbf-201c-4e88-9f66-567a407c98c5-49f30778b0db675d38cb0e6e0ad3abf8.png
    如上图所示,当MC0为从机的时候,I2C从机的时钟延展功能在初始化时就被启用了。

    673f02b2-125c-4960-9aab-00b2c668f3b8-image.png
    在RM中看到上图描述,这段说得是时钟延展的触发时机。
    在中断回调中处理事件I2C_SLAVE_EVENT_TX_REQ时,如果发送的数据没有准备好,是不是要一直等待到数据准备好的那刻才能调用函数I2C_DRV_SlaveSetTxBuffer呢?官方推荐什么时候调用函数I2C_DRV_SlaveSetTxBuffer呢?

    fb4b19ef-b48f-401a-9e95-77775914653c-image.png
    我在实测中发现接收任务时产生中断回调事件I2C_SLAVE_EVENT_STOP,在中断内将待发送的数据准备好然后调用函数I2C_DRV_SlaveSetTxBuffer,会偶发NACK。请问这样操作对吗?为什么会出现偶发NACK的现象呢?

    1 条回复 最后回复
    0
    • sunxuehuS 离线
      sunxuehuS 离线
      sunxuehu
      编写于 最后由 编辑
      #2

      不是数据准备好才调用I2C_DRV_SlaveSetTxBuffer,而是你调用了I2C_DRV_SlaveSetTxBuffer才准备好了数据。stall只是因为没有来的及进入中断去往寄存器里面写data或者读data。

      1 条回复 最后回复
      0
      • sunxuehuS 离线
        sunxuehuS 离线
        sunxuehu
        编写于 最后由 编辑
        #3

        I2C_DRV_SlaveSetTxBuffer这是只是在监听模式下才会使用,具体使用参考LE0的i2c slave demo

        1 条回复 最后回复
        0
        • sunxuehuS 离线
          sunxuehuS 离线
          sunxuehu
          编写于 最后由 编辑
          #4

          I2C_SLAVE_EVENT_STOP的事件产生一般是收到stop signal;一般master收到NACK后就会发送stop signal

          1 条回复 最后回复
          0

        • 云途论坛规则/Yuntu Forum Rules

          发帖前请查看

        • YCT离线License申请流程

          帮助没办法联网的电脑使用YCT

        • YT CONFIG TOOL调查问卷

          帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

        • demo
          14
          can
          9
          lin stack
          6
          yt-link
          5
          adc模块
          3
          vscode
          3
          i2c
          2
          uuid
          2
          Online Users
          lichao123321L
          lichao123321
          • 登录

          • 登录或注册以进行搜索。
          • 第一个帖子
            最后一个帖子
          0
          • 版块
          • 最新
          • 标签
          • 热门