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

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1M系列
  4. sent模块中断触发问题

sent模块中断触发问题

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

    我就是用示波器量的电压,一直维持在640mv,没什么抖动。SENT0_IRQHandler这个中断会一直触发。

    这个中断第一次触发可以认为是有外部信号,但外部信号的周期是440us,这个中断确实一直在,其他任务都执行不了;我拿掉外部输入,PIN脚维持在640mv为什么还会一直触发?

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

      中断原因是什么?
      GSTS, GINTE, CH_STS, CH_INTE 这些寄存器什么状态

      yuanjianY 1 条回复 最后回复
      0
      • yuanjianY 离线
        yuanjianY 离线
        yuanjian
        编写于 最后由 编辑
        #8

        414b8bd6c1801685ff5f0357058c7b7.png

        1 条回复 最后回复
        0
        • yuanjianY 离线
          yuanjianY 离线
          yuanjian
          回复了Diga 最后由 编辑
          #9

          Diga 3c370ae0-a516-4059-aa0f-8ccf18d3bafc-image.png 这是拿掉输入后的寄存器状态,上面发的是有输入时寄存器状态。

          另外,SENT_DRV_HW_SetSlowRxInterruptStatus(0, 0, 0);
          SENT_DRV_HW_SetSlowRxInterruptStatus(0, 1, 0);
          SENT_DRV_HW_SetFastRxInterrupt(0, 0, 0);
          SENT_DRV_HW_SetFastRxInterrupt(0, 1, 0);
          我把channel的中断关掉,FINTE,SINTE全为0仍然会触发中断。

          感觉中断模式下,所有的东西都是乱的。

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

            你第一张图显示 Channel0 跟 Channel1 都有错误,Channel1 的寄存器没截,不知道,但 Channel0 显示溢出,fast msg 跟 slow msg 都溢出了,另外还有个 Calibration Diagnose Error,这个不影响,你没按照 Demo 的写法?数据都没读完
            第二张图显示是 Channel0 有错误,错误原因是 Calibration Diagnose Error,你没去处理错误,就会一直进错误中断。要么按照 Demo 的方式把错误处理一下,记录完清除就行,要么就关了错误中断

            yuanjianY 1 条回复 最后回复
            0
            • yuanjianY 离线
              yuanjianY 离线
              yuanjian
              回复了Diga 最后由 编辑
              #11

              Diga 之所以会出现这种错误是因为我只是简单的将5v电平接到pin脚上又拿下来,不是一个完整的信号输入。9666818d-457b-492f-b77b-b88bdfa276b4-image.png
              上图是我外部输入两路正确的sent信号,另一个channel也会报错。你们的demo没看到错误处理机制,能给个例子吗?同样的信号,dma是可以正确解析的。

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

                Demo 不就在 YCT 目录下嘛,你看一眼就知道了

                image.png

                yuanjianY 2 条回复 最后回复
                0
                • yuanjianY 离线
                  yuanjianY 离线
                  yuanjian
                  回复了Diga 最后由 yuanjian 编辑
                  #13

                  Diga 多谢多谢,我刚也找到了,测试了一下,没问题了。

                  1 条回复 最后回复
                  0
                  • yuanjianY 离线
                    yuanjianY 离线
                    yuanjian
                    回复了Diga 最后由 编辑
                    #14

                    Diga 还想请教一下,为什么我关掉两个channel的中断,还是能一直进呢?是我关的方法哪里不对吗?

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

                      你关的是接收中断,又没关错误中断,错误不处理自然会一直挂起

                      yuanjianY 1 条回复 最后回复
                      0
                      • yuanjianY 离线
                        yuanjianY 离线
                        yuanjian
                        回复了Diga 最后由 编辑
                        #16

                        Diga 再请教个问题,我把crc校验加进去以后,发现,两路中断的crc校验失败率大概在万分之1-5之间,一路dma的校验错误都没有出现2999370e-e5eb-4e52-8bad-1c856cbafb6f-image.png
                        如上图,两个相同的芯片,T1用的是一路dma解析,T2,S用的是两路interrupt解析,t2的tick是1.65us,s是3us;每秒钟上传100组解析数据,35000组数据,interrupt解析的crc校验错误有点高,这个可以做什么改善一下吗?为什么t2和s的检验错误有明显差别?

                        1 条回复 最后回复
                        0
                        • DigaD 离线
                          DigaD 离线
                          Diga
                          编写于 最后由 编辑
                          #17
                          1. CRC 错误判断是 MCU 回调显示 CRC 错误,还是你自己软件 check 出的 CRC 错误?
                          2. CRC 错误的通道是哪个?俩都有,还是只有某一个通道一直在报
                          yuanjianY 1 条回复 最后回复
                          0
                          • yuanjianY 离线
                            yuanjianY 离线
                            yuanjian
                            回复了Diga 最后由 编辑
                            #18

                            Diga 1.我将sent模块的数据透传到上位机,上位机校验crc,会出现图中的结果。只发生在interrupt解析的情况下,dma解析,目前验证180000帧,没有检验错误。
                            2.crc错误的通道,两个通道都有,只是配置1.65us的那个通道错误大概是3us通道的一半。

                            后面我试试收到后直接检验,排除can通信错误的干扰。

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

                              SENT 协议里不是有 CRC 段嘛,为啥不用那个。
                              MCU 硬件会 Check 这个 CRC 段,如果 CRC 出错的话,会直接丢弃该帧

                              yuanjianY 1 条回复 最后回复
                              0
                              • yuanjianY 离线
                                yuanjianY 离线
                                yuanjian
                                回复了Diga 最后由 编辑
                                #20

                                Diga 你们的fae说两路sent,dma模式会丢帧,让我改用中断处理。dma丢帧的问题可以解决吗?我们两种模式都想试试

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

                                  只要负载不要太高,两种方式都不容易丢帧,你可以自己试试

                                  yuanjianY 1 条回复 最后回复
                                  0
                                  • yuanjianY 离线
                                    yuanjianY 离线
                                    yuanjian
                                    回复了Diga 最后由 编辑
                                    #22

                                    Diga 我和你们的fae都试过的,确实丢包。选择中断模式也是这个原因。
                                    两路sent,一个3us,一个1.65us,负载算高吗?测试下来大概丢帧率超过了3成。

                                    1 条回复 最后回复
                                    0

                                  • 云途开发生态介绍

                                    快速上手云途开发生态

                                  • 云途论坛规则/Yuntu Forum Rules

                                    发帖前请查看

                                  • YT CONFIG TOOL调查问卷

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

                                  • can
                                    19
                                    demo
                                    19
                                    uds
                                    12
                                    lin stack
                                    10
                                    md14
                                    6
                                    fbl
                                    5
                                    yt-link
                                    5
                                    adc模块
                                    4
                                    Online Users
                                    • 登录

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