完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我正在尝试使用两个 SCT 通道生成复杂的 PWM。它们必须同步,所以我使用 MATCHREL[1] 和 MATCHREL[2],以及 DMA 每次触发从内存中顺序加载新值——这似乎非常适合单个寄存器,DMA0_CFG 寄存器设置为 BURSTPOWER = 0 ,并且没有换行设置(SRCBURSTWRAP 和 DSTBURSTWRAP 设置为 0)。
但是,在 BURSTPOWER = 1(2^1 次传输)、DSTBURSTWRAP = 1 且 DMA 目标设置为 MATCHREL[1] 的情况下,会发生两次传输,但据我所知,只有 MATCHREL[1] 被写入了两次。 DSTBURSTWRAP 的行为是否有任何限制?我假设它会使用 XFERCFG 寄存器的 WIDTH 值并相应地增加目的地,一旦突发完成就重置,但情况似乎并非如此。顺序写入的传输宽度是如何决定的? 关于这一点,XFERCFG DStiNC 值如何影响 DSTBURSTWRAP?将 DSTINC 设置为不同于 0 的值时,我知道至少它会按顺序写入地址,但包装功能会被忽略(据我所知) - 至少我知道它会写入 MATCHREL[3] 因为那控制不同的子系统。 这是当前 DMA 设置的一个片段(使用旧的 LPCOpen 命名法)——如上所述,对我来说最终结果是对 MATCHREL[1] 的两次写入: #define HRES (104) (...) LPC_DMA->SRAMBASE = Chip_DMA_Table; Chip_DMA_Table[0].dest = (uint32_t) &LPC_SCT->MATCHREL[1].U; Chip_DMA_Table[0].source = (uint32_t) &scandata[HRES]; (...) LPC_DMA->DMACH[0].CFG = (1 << 1) | (1 << 4) | (1 << 6) | (1 << 8 )| (0 << 14) | (1 << 15); LPC_DMA->DMACH[0].XFERCFG = (1 << 0) | (2 << 8 )| (1 << 12) | (0 << 14) | ((HRES-1) << 16); |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
2139个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
37404 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
6799 浏览 1 评论
7829 浏览 1 评论
7665 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
5089 浏览 0 评论
1584浏览 2评论
关于NINA-W132 Wi-Fi模块SPI通信遇到的疑问求解
1224浏览 2评论
如何在MPC PowerPC MCU上首次刷写后禁用BDM?
768浏览 1评论
将HFREFR和LFREFR寄存器值设置为错误的值来将故障注入CMU,但CMU_ISR值始终为零,为什么?
760浏览 1评论
将SPSDK for FRDM-MCX-W71 SDK与VS一起安装时出现hidapi构建错误怎么解决?
700浏览 1评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-13 09:36 , Processed in 0.749339 second(s), Total 70, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
451