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

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1H系列
  4. DMA实际测到的波形频率只有8MHz,我需要升到32MHz,应该怎么配置呢?

DMA实际测到的波形频率只有8MHz,我需要升到32MHz,应该怎么配置呢?

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

    我现在的问题是DMA已经生效了,我给了一个6000的buffer让DMA去搬到GPIOC->PDOR。实际测到的频率只有8MHz,我需要升到32MHz,应该怎么配置呢?

    1 条回复 最后回复
    0
    • swustS 离线
      swustS 离线
      swust YunTu
      写于 最后由 编辑
      #2

      可以先将DMA优先级设置为最高,buffer数据可以放到操作速度更高的RAM,GPIO也尽可能选择一个频率高的时钟

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

        Buffer现在是放在普通RAM中的,DMA的优先级怎么配置?这个DMA频率可以显性配置吗?GPIOC能否满足32MHz方波输出?能给个参考代码,万分感谢。

        swustS 1 条回复 最后回复
        0
        • MrZhouM 离线
          MrZhouM 离线
          MrZhou
          写于 最后由 编辑
          #4

          GPIO是支持高速的,同时GPIO时钟频率配置也是200MHz。

          6f888842-b174-43ae-9a8d-bf8917df3f83.png
          image.png

          1 条回复 最后回复
          0
          • MrZhouM 离线
            MrZhouM 离线
            MrZhou
            写于 最后由 编辑
            #5

            帮忙看下,理论上普通的RAM也是支持这个频率读去的,但是当前只有8MHz的频率原因还未找到。

            1 条回复 最后回复
            0
            • swustS 离线
              swustS 离线
              swust YunTu
              在 回复了 MrZhou 最后由 编辑
              #6

              MrZhou 优先级可以在配置工具中IntCtrl设置,也可以调用INT_SYS_SetPriority。频率不能显性配置,GPIO翻转频率几MHz差不多极限了

              1 条回复 最后回复
              0
              • D 离线
                D 离线
                Derrick YunTu
                写于 最后由 编辑
                #7

                实现不了32M,SPI+DMA的情况下,SPI的时钟输出可以最大可以做到20M

                1 条回复 最后回复
                0
                • xianghanX 离线
                  xianghanX 离线
                  xianghan YunTu
                  写于 最后由 编辑
                  #8

                  1 ETMR 产生 DMA 请求去搬运数据,需要完成以下步骤
                  -> DMAMUX/触发同步
                  -> DMA 通道仲裁
                  -> DMA 从 SRAM 读一个数据
                  -> DMA 通过总线写 GPIO 寄存器
                  -> GPIO 外设桥接/同步
                  -> IO pad 真正翻转
                  无法达到32M;
                  2 如果想要输出32M,建议直接通过ETMR输出;

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

                    帮忙确认下用DMA方式,输出频率最高可以做到多少?

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

                      8.33是极限了,即使拔掉调试器,没有其他外设资源开销,减小buffer长度也只能做到这个频率

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

                        方便确认下是什么原因导致频率提不上去吗?我对芯片的内部设计不了解,你们是专业的,时钟源是100M的,GPIO的频率也是可以支持到32M的。

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

                          目前的资料里面也没有体现这一点,最开始选型时售前交流,你们给的回复是能支持40M的。

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

                            DMA默认有BWC控制,中间会有空闲让给MCU总线,可以通过 undefine feature 中 FEATURE_DMA_ENGINE_STALL提高速度

                            1 条回复 最后回复
                            0
                            • xianghanX 离线
                              xianghanX 离线
                              xianghan YunTu
                              写于 最后由 xianghan 编辑
                              #14

                              IO作为QSPI SPI通信时,可以达到20M、QSPI特殊引脚可以达到100M速率,但是并不意味着通过DMA搬送可以达到这个速率,
                              DMA 不是直接拨动引脚,它只是自动替 CPU 写寄存器。一次边沿至少需要一次外设寄存器写操作;如果是 8.33MHz 方波,就要 16.66M 次写/秒。还会受总线仲裁、Flash/RAM访问、其他外设、DMA请求节拍、GPIO模块同步延迟影响,抖动也很难控制。

                              1 条回复 最后回复
                              0

                            • 云途开发生态介绍

                              快速上手云途开发生态

                            • 云途论坛规则/Yuntu Forum Rules

                              发帖前请查看

                            • YT CONFIG TOOL调查问卷

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

                            • can
                              28
                              demo
                              23
                              uds
                              14
                              lin stack
                              13
                              md14
                              6
                              yt-link
                              6
                              fbl
                              5
                              adc模块
                              4
                              Online Users
                              qinminyuan1Q
                              qinminyuan1
                              • 登录

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