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

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1M系列
  4. SPI总是进入中断问题

SPI总是进入中断问题

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

    可能是因为某次打断时间较长,SPI 没来得及读取接收 FIFO 内的数据,导致FIFO内数据上溢,产生 overflow 错误。
    如果task 较多,可以用 DMA 的方式去搬运数据,这样就不会受到影响

    z1009591161Z 1 条回复 最后回复
    0
    • z1009591161Z 离线
      z1009591161Z 离线
      z1009591161
      在 回复了 Diga 最后由 编辑
      #3

      Diga 这个overflow可以清除吗?还是底驱时间不够

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

        可以清除,但此次 SPI 通信已经失败了,已经有接收数据被丢弃了,而且下次再被长时间打断,还是会产生 overflow

        z1009591161Z 1 条回复 最后回复
        0
        • z1009591161Z 离线
          z1009591161Z 离线
          z1009591161
          在 回复了 Diga 最后由 编辑
          #5

          Diga 丢数据没关系,清除的接口是哪个?9589c2535953f91e64ff6746d383111.jpg
          是这个吗

          1 条回复 最后回复
          0
          • DigaD 离线
            DigaD 离线
            Diga
            写于 最后由 编辑
            #6

            更正一下,SDK 中断内部是有对错误进行处理的,接收上溢或者发送下溢都会终止当前 SPI 传输。
            你可以看一下一直进中断,进的是什么中断,当前状态寄存器是什么

            z1009591161Z gaoShengG 3 条回复 最后回复
            0
            • z1009591161Z 离线
              z1009591161Z 离线
              z1009591161
              在 回复了 Diga 最后由 编辑
              #7

              Diga 43689aa186471bf283fb48aebbfd1b9.jpg
              反复进这里

              1 条回复 最后回复
              0
              • z1009591161Z 离线
                z1009591161Z 离线
                z1009591161
                在 回复了 Diga 最后由 编辑
                #8

                Diga b211bb570b045da4bacb4a126c3a90b.jpg
                然后进这里,这里所有的if全部没进,直接出来的,也就是说进一次中断什么都没处理

                1 条回复 最后回复
                0
                • DigaD 离线
                  DigaD 离线
                  Diga
                  写于 最后由 编辑
                  #9

                  看一下状态寄存器,SPI->STS

                  1 条回复 最后回复
                  0
                  • gaoShengG 离线
                    gaoShengG 离线
                    gaoSheng
                    在 回复了 Diga 最后由 编辑
                    #10

                    Diga 您好,HA系列测试SPI时偶发出现从SPI->STS寄存器来看TX FIFO下溢标志位被置,但是无法进SPI TRANSMIT ERROR的处理的 if 。spiState->txBuff == 0x00.并且会一直进中断.
                    61de9b54-9b72-4634-b302-829dbdc5aa22-ba820524002d54b53f3915628b59034.png

                    请问有什么排查思路没

                    1 条回复 最后回复
                    0
                    • DigaD 离线
                      DigaD 离线
                      Diga
                      写于 最后由 Diga 编辑
                      #11

                      把 debug 窗口关了,你的 debug 窗口也会读取 DATA 里的数据的

                      1 条回复 最后回复
                      1
                      • li5920oL 离线
                        li5920oL 离线
                        li5920o
                        编写于 最后由 编辑
                        #12

                        您好,我在使用mcal的时候配置spidma,主从机四个通道dma,程序也一直在spi中断出不来,使用demo添加dma后也是出不来,是mcal配置有什么问题吗,应该怎么解决
                        自己配置的dma有问题,在demo上配置后

                        53865228832b1f267de005f269d0d0c3.png
                        四个通道每个通道只修改了外设指定的配置
                        4b04ebff4070be08dc6ad80a6dfa0768.png
                        然后在spi中开启了dma通道

                        a937dd4d6333978d03b3c6abcd56e9ec.png

                        39409bf687528b1551ecc63c0486907a.png

                        458f8eabd542e9070fc10f49f878ec5b.png
                        demo其余的代码基本没有更改,只开启了dma初始化,在spi初始化前

                        60e885d8e3278dca728e7d1a39250ef8.png
                        这是程序运行后暂停,停在spi中断那一片

                        1 条回复 最后回复
                        0
                        • FrankF 离线
                          FrankF 离线
                          Frank YunTu
                          编写于 最后由 编辑
                          #13
                          1. 检查DMA的中断是否使能了,2.DMA通道的中断优先级不能比相应的SPI通道优先级低
                          1 条回复 最后回复
                          1

                        • 云途开发生态介绍

                          快速上手云途开发生态

                        • 云途论坛规则/Yuntu Forum Rules

                          发帖前请查看

                        • YT CONFIG TOOL调查问卷

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

                        • can
                          23
                          demo
                          20
                          uds
                          13
                          lin stack
                          12
                          md14
                          6
                          fbl
                          5
                          yt-link
                          5
                          adc模块
                          4
                          Online Users
                          HAIYANGH
                          HAIYANG
                          Tiger987T
                          Tiger987
                          XinLongQiuX
                          XinLongQiu
                          Gavin2G
                          Gavin2
                          hzritingH
                          hzriting
                          番茄+两个蛋番
                          番茄+两个蛋
                          QQT-EthanQ
                          QQT-Ethan
                          yt0069Y
                          yt0069
                          • 登录

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