完善资料让更多小伙伴认识你,还能领取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); |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
1932个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36421 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4893 浏览 1 评论
6108 浏览 1 评论
6819 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4249 浏览 0 评论
647浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
644浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
645浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
729浏览 2评论
844浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 10:59 , Processed in 1.061400 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号