内部DAC输出100K正弦波 且频率可调

2019-07-20 22:37发布

用DAC+DMA+TIM2输出正弦波   码表为100个点  。TIM2定时到1us,但是只能输出到1Khz,而且误差为20hz 请问1:是不是输出100K的正弦波 只能通过牺牲码表点数来实现
       2:DAC转换时间是不是1us,那码表点数多了,误差是不是会变大啊
    
------------------------------------------------------------------------------------------------------------------------------
上传了一个是测数据的时候用的,不怎么规范,除了寄存器配置,其他都可以忽略的。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
28条回答
backroad
1楼-- · 2019-07-21 01:14
回复【2楼】正点原子:
---------------------------------
原子哥,针对DA的相关测试代码如下:

u16* p = gSampleArray;
for(i = 0; i < 256; ++i, ++p)
    DAC_SetChannel1Data(DAC_Align_12b_R, *p);//设置DAC值

gSampleArray是一个周期的256个采样值组成的数组;
通过示波器观察,产生的正弦波频率为18.18kHz,是不是可以说DA转换的时间要小于下面的值:
1000000/18180/256=0.215us

但是文档“STM32F4 开发指南(库函数版)”第342页:
“我们可以从 STM32F407ZGT6 的数据手册查到 tsettling的典型值为 3us ,最大是 6us 。所以 DAC 的转 换速度最快是333K左右。”

这个怎么理解呢?
正点原子
2楼-- · 2019-07-21 01:57
 精彩回答 2  元偷偷看……
兜里有糖
3楼-- · 2019-07-21 06:02
回复【2楼】正点原子:
---------------------------------
原子哥,原来我是TIM2 TRGO事件做DAC1的触发选择 然后通过DMA输出。可以实现了。
现在把TIM2换成TIM3和TIM4都不行,但手册上说可以选择TIM3和TIM4的TRGO触发DAC1.这是怎么回事啊?
正点原子
4楼-- · 2019-07-21 10:51
回复【3楼】兜里有糖:
---------------------------------
你检查下配置吧.
兜里有糖
5楼-- · 2019-07-21 14:05
 精彩回答 2  元偷偷看……
VictorScarlet
6楼-- · 2019-07-21 16:09
回复【5楼】兜里有糖:
---------------------------------
能不能把源码贴上开看下。?我想学习下。。。

一周热门 更多>