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

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YT MCAL
  4. ME0的SPI作为从机,接收数据出现异常

ME0的SPI作为从机,接收数据出现异常

已定时 已固定 已锁定 已移动 YT MCAL
12 帖子 2 发布者 340 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • FrankF 离线
    FrankF 离线
    Frank YunTu
    写于 最后由 编辑
    #2

    1.按照你的描述,主机应该配置的是Pcs continue 模式,如果通信过程中出现PCS被拉起,属于主机方没有遵循通信协议导致的通信失败。
    2. 我无法判断pcs中途被拉高是否是主机侧的硬件问题导致的。slave不会拉pcs引脚。
    3. MCAL spi不支持接收不定长的数据

    EkkoE 2 条回复 最后回复
    0
    • EkkoE 离线
      EkkoE 离线
      Ekko
      在 回复了 Frank 最后由 编辑
      #3

      Frank 能确定是主机拉高

      1 条回复 最后回复
      0
      • EkkoE 离线
        EkkoE 离线
        Ekko
        在 回复了 Frank 最后由 编辑
        #4

        Frank 假设这种情况无法避免,那么从机如何从异常中恢复呢,能确保下一次能正常通信

        FrankF 1 条回复 最后回复
        0
        • FrankF 离线
          FrankF 离线
          Frank YunTu
          在 回复了 Ekko 最后由 编辑
          #5

          Ekko 如果能够保证master发送的数据数量跟slave需要接收的数量一致就可以(中间master即使pcs拉高也OK)。因为DMA会一直等待搬移的数据直到完成。因此不需要slave做额外的事情。

          EkkoE 2 条回复 最后回复
          0
          • EkkoE 离线
            EkkoE 离线
            Ekko
            在 回复了 Frank 最后由 编辑
            #6

            Frank 好的 感谢回复

            1 条回复 最后回复
            0
            • EkkoE 离线
              EkkoE 离线
              Ekko
              在 回复了 Frank 最后由 编辑
              #7

              Frank 这种自恢复的需要取决master保证数据完整,客户担心master出现一次数据不完整后,后续取到的数据都会错位,所以还是需要一个手动恢复的策略,现在有调用Spi_Cancel(),但是会偶发出现hard fault(DMA传输过程中,关掉DMA会导致hard fault?),所以有更加简洁高效的方式吗?

              FrankF 1 条回复 最后回复
              0
              • FrankF 离线
                FrankF 离线
                Frank YunTu
                在 回复了 Ekko 最后由 编辑
                #8

                Ekko 调用Spi_Cancel关闭传输不会导致导致Hardfault。你可以在hardfault出现时,看下是什么原因导致的hardfault。

                EkkoE 1 条回复 最后回复
                0
                • EkkoE 离线
                  EkkoE 离线
                  Ekko
                  在 回复了 Frank 最后由 编辑
                  #9

                  Frank 现在查看堆栈,最后是从Disable DMA跳至hard fault,查看DMA寄存器并没有错误标志位。现在明确就是加了Spi_Cancel,就会出现hard fault,不加是不会出现的。
                  a7e873b6-3aa9-4076-984a-dc1f34faf779-77469c1ed71c03f0b9eda6c1631a08d.jpg
                  47354b50-0728-46f1-aa73-9aee9c3fb965-8bfa93ce08d4633527decb782927abc.jpg
                  17dda825-180e-45d0-ac68-f8af9aa990e1-a54112abd7ba573e406d66c22cd60c2.jpg

                  1 条回复 最后回复
                  0
                  • FrankF 离线
                    FrankF 离线
                    Frank YunTu
                    写于 最后由 编辑
                    #10

                    image.png
                    看样子是发生非法地址访问了。你用的是那个版本的驱动?

                    1 条回复 最后回复
                    0
                    • FrankF 离线
                      FrankF 离线
                      Frank YunTu
                      写于 最后由 编辑
                      #11

                      jianpeng.zhao@ytmicro.com 这是我的邮箱,如果方便的话,你可以发个腾讯会议的链接,我远程帮你看下

                      EkkoE 1 条回复 最后回复
                      0
                      • EkkoE 离线
                        EkkoE 离线
                        Ekko
                        在 回复了 Frank 最后由 编辑
                        #12

                        Frank 目前又修改了中断优先级,还在挂测,如果还复现我再邮件发送🤝

                        1 条回复 最后回复
                        0

                      • 云途论坛规则/Yuntu Forum Rules

                        发帖前请查看

                      • YCT离线License申请流程

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

                      • YT CONFIG TOOL调查问卷

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

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

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