OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10851|回复: 11

DAC输出频率可调的正弦波问题

[复制链接]

2

主题

11

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2014-5-10
在线时间
0 小时
发表于 2014-7-10 13:38:25 | 显示全部楼层 |阅读模式
5金钱
在做用DAC输出频率可调的正弦波时遇到了点问题,希望有懂的人帮忙解决一下哈
用定时器2触发DAC,通过控制定时器的预分频和自动装载计数来控制波形的频率
#define ARR 0x01
#define PSC 0x00

void TIM_Configuration()
{
/* TIM2 Configuration */
/* Time base configuration */
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 ,ENABLE);
TIM_DeInit(TIM2);
TIM_TimeBaseStructure.TIM_Period = ARR;         
TIM_TimeBaseStructure.TIM_Prescaler = PSC;       
TIM_TimeBaseStructure.TIM_ClockDivision = 0x00;   
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
/* TIM2 TRGO selection */
TIM_SelectOutputTrigger(TIM2, TIM_TRGOSource_Update);
/* TIM2 enable counter */
TIM_Cmd(TIM2, ENABLE);
}
本来呢我是想把上面这个函数写成这种形式  void  TIM_Configuration(uint16_t  arr, uint16_t  psc),然后相应的定时器配置也写成
TIM_TimeBaseStructure.TIM_Period = arr;         
TIM_TimeBaseStructure.TIM_Prescaler = psc;    

可是我改成这样之后  ,却没有波形输出,我就不知道问题出在哪里了呢,这个函数写的也没什么问题吧,为什么会没有波形输出呢?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-7-10 23:32:59 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2014-6-10
在线时间
0 小时
发表于 2014-7-10 23:42:12 | 显示全部楼层
定时器代码看不出问题,DAC代码可能有问题,检查DAC的通道引脚配置好了吗?DAC的时钟打开了吗?DAC使能吗?
回复

使用道具 举报

2

主题

11

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2014-5-10
在线时间
0 小时
 楼主| 发表于 2014-7-14 09:36:01 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
DAC使能了的,因为程序没改之前用示波器测量了是有波形输出的, 我还有个问题就是像这种波形输出的话 比如输出锯齿波,我是用波形表来输出的,可是最后经示波器显示测量的波形不够准确,这一般会是什么原因呢
回复

使用道具 举报

2

主题

11

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2014-5-10
在线时间
0 小时
 楼主| 发表于 2014-7-14 09:36:57 | 显示全部楼层
回复【3楼】ziye334:
---------------------------------
这些都没啥问题的 因为程序没改之前输出的正弦波没什么问题,可是一改成我写的那个函数就没波形了,我也不知道什么原因
回复

使用道具 举报

2

主题

11

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2014-5-10
在线时间
0 小时
 楼主| 发表于 2014-7-14 17:28:37 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
输出的波形总是软趴趴的 三角波和锯齿波都是软趴趴的
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-7-14 23:00:09 | 显示全部楼层
回复【6楼】fairytalegao:
---------------------------------
你没带负载吧?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

11

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2014-5-10
在线时间
0 小时
 楼主| 发表于 2014-7-15 08:43:13 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
没有呢  用DAC自带波形发生器输出的三角波硬度很好 可是换成波形表就软趴趴的 这个硬度不够一般是啥原因呢
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-7-18 00:00:50 | 显示全部楼层
回复【8楼】fairytalegao:
---------------------------------
驱动能力弱,你外加一个射随器就好了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2014-6-10
在线时间
0 小时
发表于 2014-7-18 08:49:04 | 显示全部楼层
原子的例程我没有看过,不知道你是使用的是什么方法实现的正弦波,如果你使用的借助DMA实现正弦波的话,那么#define ARR 0x01 这个ARP的值太小了,这么高的频率,一个周期的正弦波都输不出来。输出正弦波的话不是需要定义一个描点正弦波的数组的吗,像
const u16 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};
如果使用上面的数组的话,ARP的值应该为72000000/32/频率值,绝不是你上面的0x01
回复

使用道具 举报

2

主题

11

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2014-5-10
在线时间
0 小时
 楼主| 发表于 2014-7-18 10:09:34 | 显示全部楼层
回复【10楼】ziye334:
---------------------------------
我是用的你所说的方式输出波形的,ARR为0x01时,用示波器测量的是有波形的,波形频率是f=140.631KHz
回复

使用道具 举报

0

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2014-6-10
在线时间
0 小时
发表于 2014-7-18 11:04:30 | 显示全部楼层
怎么会呢?不知道你代码中哪里问题。你可以参考下这篇博客:http://ziye334.blog.163.com/blog/static/224306191201461634749378/ 对照下你的代码!
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-5 01:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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