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

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YT MCAL
  4. CANFD SSP Offset计算方式

CANFD SSP Offset计算方式

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

    对的,SSP的设置确实有bug,下个版本会修复。目前用户可以通过直接修改生成后的Can_PbCfg.c 文件实现。

    EkkoE 1 条回复 最后回复
    0
    • EkkoE 离线
      EkkoE 离线
      Ekko
      回复了jiankang_wang 最后由 编辑
      #3

      jiankang_wang 还有一个问题就是 这三个值都要减1,才能满足采样点计算公式,实际写到寄存器的值也是减1了吗,但是又不符合QuantaNum了0dddf7e0-28f6-496d-a673-fb883b499db3-image.png

      1 条回复 最后回复
      0
      • jiankang_wangJ 离线
        jiankang_wangJ 离线
        jiankang_wang YunTu
        编写于 最后由 编辑
        #4

        MCAL 的代码中默认是使用了 ETDC 的。所以 Offset 主要是由寄存器 ETDC[ETDCOFF] 控制,其单位是 "protocol engine (PE) clock periods", 与 Tq 存在一个分频系数的倍数。

        一般需要配置成这样的参数:ETDC[ETDCOFF] = (CAN_EDCBT[DTSEG1] + 2) * (EPRS[EDPRESDIV] + 1)

        而在代码中是这样给 CAN_EDCBT[DTSEG1] 寄存器值的:

        0e05094a-59a2-4cf3-b0e8-02fcb626ea5f-image.png

        上图中的 CanFdPropSeg 和 CanFdSeg1 都是配置界面中的值。ETDC[ETDCOFF] 寄存器的值是这样给的:

        50e331fb-c1c1-4553-b05b-0d8a7e202c30-image.png

        所以配置界面中的 Ssp 的计算应该为:

        (CanControllerPropSeg + CanControllerSeg1 - 1 + 2) * (CanControllerPreDiv - 1 + 1)

        EkkoE 1 条回复 最后回复
        0
        • EkkoE 离线
          EkkoE 离线
          Ekko
          回复了jiankang_wang 最后由 编辑
          #5

          jiankang_wang SSP这个理解了,根据这个公式实际算出来就是15,那么关于采样点SP和QuantaNum的关系呢

          1 条回复 最后回复
          0
          • jiankang_wangJ 离线
            jiankang_wangJ 离线
            jiankang_wang YunTu
            编写于 最后由 编辑
            #6

            如图:
            image.png

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

              jiankang_wang 那就是QuantaNum = 𝑃𝑅𝑂𝑃𝑆𝐸𝐺+𝑃𝑆𝐸𝐺1+𝑃𝑆𝐸𝐺2+1 = 7+7+5+1=20,符合下图中QuantaNum,但是将𝑃𝑅𝑂𝑃𝑆𝐸𝐺 𝑃𝑆𝐸𝐺1 𝑃𝑆𝐸𝐺2代入到SP公式:
              𝑆𝑃 = (𝐶𝑇𝑅𝐿1[𝑃𝑅𝑂𝑃𝑆𝐸𝐺] + 𝐶𝑇𝑅𝐿1[𝑃𝑆𝐸𝐺1] + 3)/(𝐶𝑇𝑅𝐿1[𝑃𝑅𝑂𝑃𝑆𝐸𝐺] + 𝐶𝑇𝑅𝐿1[𝑃𝑆𝐸𝐺1] + 𝐶𝑇𝑅𝐿1[𝑃𝑆𝐸𝐺2] + 4)
              是算不出来75%的
              b8f43456-afaf-40be-bad6-fef5b1c618f4-image.png

              1 条回复 最后回复
              0
              • jiankang_wangJ 离线
                jiankang_wangJ 离线
                jiankang_wang YunTu
                编写于 最后由 编辑
                #8
                1. 配置界面中的值不是写入到寄存器的值,在用来计算 SP 的时候,是不需要再手动加 1 的。

                2. MCAL的代码中,设置波特率用的不是 CTRL1 寄存器,而是 ENCBT 和 EDCBT,这一点从前文我给的代码也可以看出来。

                3. 根据上一条给的定义,实际上应该是这样的计算:
                  8f967ca6-e525-4ea7-aca8-1515ee679172-image.png

                EkkoE 2 条回复 最后回复
                0
                • EkkoE 离线
                  EkkoE 离线
                  Ekko
                  回复了jiankang_wang 最后由 编辑
                  #9

                  jiankang_wang 好的,谢谢支持!

                  1 条回复 最后回复
                  0
                  • EkkoE 离线
                    EkkoE 离线
                    Ekko
                    回复了jiankang_wang 最后由 编辑
                    #10

                    jiankang_wang 再请教一下,这个SSP可以关闭吗,若关闭的话,那么SSP是有默认值或者自动适配功能吗。

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

                      MCAL的代码中,如果开启了BRS,SSP是必须开启的。
                      5188b1e5-848e-49d9-8b17-5dcaafe322fd-image.png
                      需要关闭的话用户自行更改。需要注意的是,MCAL中的SSP是由TDC和Offset两部分组成的。TDC一般由硬件计算,Offset由用户指定。
                      关闭SSP可以修改 ETDCEN 位为 0。Offset的话,按照手册说明,在复位后置BTE后为1:
                      6139d7ef-8b6b-4636-a29b-fe736d6faff9-image.png

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

                        jiankang_wang 如果开启了BRS,SSP关掉了会有什么影响吗

                        1 条回复 最后回复
                        0
                        • jiankang_wangJ 离线
                          jiankang_wangJ 离线
                          jiankang_wang YunTu
                          编写于 最后由 编辑
                          #13

                          如果开启了BRS,关掉SSP,并且数据段的波特率过高的话,会出现位错误。

                          1 条回复 最后回复
                          0

                        • 云途论坛规则/Yuntu Forum Rules

                          发帖前请查看

                        • YCT离线License申请流程

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

                        • YT CONFIG TOOL调查问卷

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

                        • can
                          16
                          demo
                          15
                          uds
                          7
                          lin stack
                          6
                          fbl
                          5
                          yt-link
                          5
                          md14
                          4
                          adc模块
                          3
                          Online Users
                          wenqiangW
                          wenqiang
                          • 登录

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