硬汉嵌入式论坛

 找回密码
 立即注册
查看: 6047|回复: 3
收起左侧

[有问必答] stm32 DAC的DMA模式求解?

[复制链接]

1

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2015-6-24 11:32:42 | 显示全部楼层 |阅读模式
stm32数据手册DAC部分上说, 在DMAENx 位置1 时,当产生一个外部触发时,会产生DAC_DMA请求。而DAC DMA 请求没有缓冲队列。这样,如果第二个外部触发到达时尚未收到第一个外部触发
的确认,将不会发出新的请求产生DMA下溢。

可用DAC的DMA产生正弦波时,每次定时器触发时,都会从DMA通过获取数据进行DA转换,定时器触发的速率明显比DMA快啊, 在一次DMA的数据流传输完成时间内,定时器都可以产生多次触发了。按数据手册上说应该会出现DMA下溢,可为什么还有好好的正弦波输出呢???
不知道哪里理解错了。。。。。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117542
QQ
发表于 2015-6-24 13:14:45 | 显示全部楼层
在定时器触发的速度较快,DMA单次传输的数据较多时容易失败,可以看下我以前做的测试,这个是V5开发板用户手册上面写的。
1.png
回复

使用道具 举报

1

主题

1

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2015-6-24 15:08:34 | 显示全部楼层
可我还是不太明白。 假设用9个点来描绘波形,当定时器第一次触发后,通过dma 获取到了第一个点的数据进行转换,当第二次定时器触发后按手册上讲将会安下面俩种方式的一种工作:
方式一: 收到了第一次触发确认,产生新的dma 请求,此时dma 传输的是前面数据流的第2个点的数据还是启动新一轮的传输即又开始传输第一个点的数据?
方式二: 未收到第一次触发确认,终止dma传输,仍然将第一个点的数据进行da转换?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117542
QQ
发表于 2015-6-25 17:08:34 | 显示全部楼层

回 lifei_yt 的帖子

lifei_yt:可我还是不太明白。 假设用9个点来描绘波形,当定时器第一次触发后,通过dma 获取到了第一个点的数据进行转换,当第二次定时器触发后按手册上讲将会安下面俩种方式的一种工作:
方式一: 收到了第一次触发确认,产生新的dma 请求,此时dma 传输的是前面数据流的第2个点的数据还是启 .. (2015-06-24 15:08) 
晚上我再看下手册,探讨下这个问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-13 19:03 , Processed in 0.052305 second(s), 33 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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