打印

DAC正弦周期如何算,如何设置?

[复制链接]
4021|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
红豆大白兔|  楼主 | 2012-5-9 22:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,百度了下,
通过修改定时器的初始值、预分频、及系统时钟即可修改频率,
不知道怎么算的,有什么公式吗?
沙发
Eric2013| | 2012-5-10 09:45 | 只看该作者
首先设置好定时器的频率以后,用这个频率除以正弦波一个周期的点数。
比如:采用定时器6触发DAC,产生正弦波的话一般都用DMA传输,传输的BufferSize就是正弦波一个周期的点数。
主频    =   72M
定时器6 总的分频   =  72
正弦波一个周期的点数 = 100

定时器6 CLK  =  主频  / 定时器6 总的分频 = 1M
正弦波的频率  = 定时器6 CLK /   正弦波一个周期的点数  = 1M /  100 = 10KHz

使用特权

评论回复
板凳
红豆大白兔|  楼主 | 2012-5-10 13:05 | 只看该作者
2# Eric2013
先谢谢大侠啦~我是菜鸟还有问题要请教~

正弦波一个周期的点数 就是 正弦波数组吗?
例如“Sine12bit[32] = {
                      2047, 2447, 2831, 3185, 3498, 3750, 3939, 4056, 4095, 4056,
                      3939, 3750, 3495, 3185, 2831, 2447, 2047, 1647, 1263, 909,
                      599, 344, 155, 38, 0, 38, 155, 344, 599, 909, 1263, 1647};”

正弦波一个周期的点数 是32吗?


和它的触发定时器TIM没关系吗?我修改了TIM的预分频和重装载值,发现可以改变波形的周期,那又是为啥呢?       菜鸟不胜感激~

使用特权

评论回复
地板
Eric2013| | 2012-5-10 15:14 | 只看该作者
是的。
有关系啊,上面的公式已经告诉你 他们之间的关系了。 定时器每触发一次就输出一次的幅值。

使用特权

评论回复
5
红豆大白兔|  楼主 | 2012-5-10 17:50 | 只看该作者
4# Eric2013

谢谢Eric详细的解答:) ~

使用特权

评论回复
6
红豆大白兔|  楼主 | 2012-5-10 21:49 | 只看该作者
4# Eric2013

再请教一下,我的罗嗦请见谅~
“主频    =   72M
定时器6 总的分频   =  72
正弦波一个周期的点数 = 100


TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
TIM_TimeBaseStructure.TIM_Period = 0x47;         
TIM_TimeBaseStructure.TIM_Prescaler = 0x63;      
TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;   
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  
TIM_TimeBaseInit(TIM6, &TIM_TimeBaseStructure);

TIM_Prescaler 是预分频,在计算TIM时间的时候,也是用  主频/TIM_Prescaler 的,那这里TIM_Prescaler是设置您说的“定时器6 总的分频”吧

使用特权

评论回复
7
红豆大白兔|  楼主 | 2012-5-10 22:09 | 只看该作者
4# Eric2013

再问一下,呵呵。那正弦组数怎么修改啊,我下了一个正弦产生软件,

上面只要填“量化阶数”和“采样阶数”不知道如何使用,不知大侠可会?

使用特权

评论回复
8
Eric2013| | 2012-5-11 10:23 | 只看该作者
还得除以 TIM_Period ,说白了就是你的定时器的触发频率是多少。

数组用Matlab什么的 都可以的,也可以这样,下面是产生128点的正弦波,加2048是防止出现负数
for (i = 0; i < 128; i++)
{
             g_Wave[i] = 2048+2048*sin(2*3.1415926f*127*i/128);
}

使用特权

评论回复
9
红豆大白兔|  楼主 | 2012-5-11 12:29 | 只看该作者
8# Eric2013


十分感谢~~~:D

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

171

帖子

1

粉丝