[技术问答] 华大单片机的DMA为啥搞个块大小出来?一次最多只能16个数...

[复制链接]
383|10
| 2019-4-18 15:08 | 显示全部楼层
技术呢,出来帮忙解释下啊我只负责卖

使用道具

评论回复

评论

21ic小管家 2019-4-18 15:40 回复TA
快把你们公司的技术拽出来上论坛呦~会加大销量的~ 
| 2019-4-18 21:13 | 显示全部楼层
1. 设置块数:(从 1 至 16 中选择)
2. 设置传输长度:(从 1 至 65536 中选择)
3. 总传输长度可达为  16 * 65536 个字节。

使用道具

评论回复
| 2019-4-28 16:31 | 显示全部楼层
应该可以多传的吧

使用道具

评论回复
| 2019-4-29 09:40 | 显示全部楼层
547985cc654fb05841.png
229415cc65518200c9.png
BC块数:(从 1 至 16 中选择)
TC传输长度:(从 1 至 65536 中选择)
BC和TC合理使用,可以实现很多种传输组合

使用道具

评论回复
 楼主 | 2019-5-2 13:11 | 显示全部楼层
martinhu 发表于 2019-4-29 09:40
BC块数:(从 1 至 16 中选择)
TC传输长度:(从 1 至 65536 中选择)
BC和TC合理使用,可以实现很多种 ...

需要软件+中断 才能实现。不像STM32设置好了,不用中断不用写代码处理。

使用道具

评论回复
| 2019-5-5 08:48 | 显示全部楼层
GZZXB 发表于 2019-5-2 13:11
需要软件+中断 才能实现。不像STM32设置好了,不用中断不用写代码处理。

有硬件模式,只要有对应的触发事件就可以触发DMA传送,不需要非得软件+中断才可以

使用道具

评论回复
 楼主 | 2019-5-5 09:03 | 显示全部楼层
martinhu 发表于 2019-5-5 08:48
有硬件模式,只要有对应的触发事件就可以触发DMA传送,不需要非得软件+中断才可以 ...

比如我扫描采集3个AD通道0 1 2,一共采集255*3个数据到buff。 不使用DMA中断,你能实现?

使用道具

评论回复

评论

martinhu 2019-5-7 10:56 回复TA
如果DMA传送完成中断和ADT的AOS功能,你都不想用,按上述的设置方法,DMAC寄存器CONFBx的MSK位设置为0,那么DMA传送255次之后自然清除了该通道的使能位,你只需要在下次使用时候配置和使能就好了 
martinhu 2019-5-7 10:51 回复TA
能啊,BC设置为2(block数据为3),TC设置为254(传送255次),模式为硬件块传输,使用timer0~6其中之一触发ADC转换3个通道,ADC转换结束后触发DMA搬运,ADC转换255次(也就是DMA搬运255次)之后,可以使用DMA转换完成中断,结束你要的255*3次的采样操作。如果你实在不想要中断,那么用ADT0(timer4)触发ADC采样,ADT1(timer5)通过AOS的硬件计数采样次数,到255次之后timer5通过AOS停止timer4! 
扫描二维码,随时随地手机跟帖
*滑动验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

快速回复 返回顶部 返回列表