Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
可以先将DMA优先级设置为最高,buffer数据可以放到操作速度更高的RAM,GPIO也尽可能选择一个频率高的时钟
Buffer现在是放在普通RAM中的,DMA的优先级怎么配置?这个DMA频率可以显性配置吗?GPIOC能否满足32MHz方波输出?能给个参考代码,万分感谢。
GPIO是支持高速的,同时GPIO时钟频率配置也是200MHz。
帮忙看下,理论上普通的RAM也是支持这个频率读去的,但是当前只有8MHz的频率原因还未找到。
MrZhou 优先级可以在配置工具中IntCtrl设置,也可以调用INT_SYS_SetPriority。频率不能显性配置,GPIO翻转频率几MHz差不多极限了
实现不了32M,SPI+DMA的情况下,SPI的时钟输出可以最大可以做到20M
1 ETMR 产生 DMA 请求去搬运数据,需要完成以下步骤 -> DMAMUX/触发同步 -> DMA 通道仲裁 -> DMA 从 SRAM 读一个数据 -> DMA 通过总线写 GPIO 寄存器 -> GPIO 外设桥接/同步 -> IO pad 真正翻转 无法达到32M; 2 如果想要输出32M,建议直接通过ETMR输出;
帮忙确认下用DMA方式,输出频率最高可以做到多少?
8.33是极限了,即使拔掉调试器,没有其他外设资源开销,减小buffer长度也只能做到这个频率
方便确认下是什么原因导致频率提不上去吗?我对芯片的内部设计不了解,你们是专业的,时钟源是100M的,GPIO的频率也是可以支持到32M的。
目前的资料里面也没有体现这一点,最开始选型时售前交流,你们给的回复是能支持40M的。
DMA默认有BWC控制,中间会有空闲让给MCU总线,可以通过 undefine feature 中 FEATURE_DMA_ENGINE_STALL提高速度
IO作为QSPI SPI通信时,可以达到20M、QSPI特殊引脚可以达到100M速率,但是并不意味着通过DMA搬送可以达到这个速率, DMA 不是直接拨动引脚,它只是自动替 CPU 写寄存器。一次边沿至少需要一次外设寄存器写操作;如果是 8.33MHz 方波,就要 16.66M 次写/秒。还会受总线仲裁、Flash/RAM访问、其他外设、DMA请求节拍、GPIO模块同步延迟影响,抖动也很难控制。
快速上手云途开发生态
发帖前请查看
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...