6991|10

9794

帖子

24

TA的资源

版主

楼主
 

stm32g474正弦信号发生器 [复制链接]

 

STM32G4743121MSPSDAC通道

通过STM32CubeMX软件可以很方便的进行配置

比如下边就介绍如何使用NUCLEO-G474实现正弦信号发生器

首先是配置时钟,可以根据需求配置时钟频率和时钟源,G474最大支持170MHz的主频,这里设置成最大170MHz

然后左边找到DAC1,单击后在中边的DAC1 Mode and Configuation里选择OUT1 modeConnected to external pin only意思是配置DAC1_OUT1为外部输出

为了精准控制DAC的输出频率需要配置为定时器触发,我准备使用TIMER4来触发DAC1_OUT1输出,所以在Trigger里选择Timer r Trigger Out event

DACDMA选项卡中将DMA Request选择为DAC1_CH1(也只能选这个),Channel选择DMA1 Channel 1DMA Request SettingsMode设置为CircularMode是用来选择数据输出的模式,假如有10个数据,模式选择Normal时输出完第10个数据时DAC会停止输出,直到再次执行HAL_DAC_Start_DMA函数,选择Circular时数据会循环输出,当输出到完第        10个数据后会从0开始循环输出,重复将一组数据正弦数据通过DAC输出就能生成连续的正弦波了,Data WidthPeripheral处选择Word其它默认即可。

配置好DAC以后需要再对定时器进行配置

选择TIM4(也可以是任意定时器,只要DACTrigger选择对应的定时器即可),Clock Source选择Internal Clock,下边的Prescaler分频值设置为0Counter Period选择170-1TriggerEventSelectionTRGO选择Update Event,主频是170MHz,每170个周期产生一个Update Event事件,这样DAC的更新频率就是1MHz

配置好以后生成工程文件,然后打开对应工程

在工程里加入正弦数据数组

在主函数里加入启用DAC和定时器的函数即可

 

将工程下载到开发板并支行,就能看到漂亮的正弦信号,频率是DAC的更新频率除正弦表的长度,1Msps/60=16.66KHz,如果要修改频率可以修改Timer4Update Event时间,也可以修改正弦表的数据长度


工程文件:

adc_dac.rar (11.36 MB, 下载次数: 478)

 


此内容由EEWORLD论坛网友littleshrimp原创,如需转载或用于商业用途需征得作者同意并注明出处

此帖出自stm32/stm8论坛

最新回复

stm32g474正弦信号发生器   详情 回复 发表于 2024-9-22 00:41
点赞 关注(2)
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 

回复
举报

821

帖子

0

TA的资源

一粒金砂(高级)

沙发
 

谢谢版主分享,下载学习。

此帖出自stm32/stm8论坛
 
 

回复

403

帖子

6

TA的资源

纯净的硅(中级)

板凳
 

多年前用STM32做LCR玩,用的是片上DAC来生成正弦波参考信号,总是发现相位跳动严重,后来就放弃了,当时就是怀疑是STM32的DAC的关系,直到今年年初的时候偶尔看到ST官方新出的关于DAC的一篇文章,里面就用了一页的篇幅说明了DAC的触发问题,貌似用TIMER触发DAC转换有个延时,这个延时官方资料好像是2.5个周期,实际上因为同步关系运行时是2~3个时钟是不确定的随机变化的,故此由STM32的内置DAC来产生波形会有一定的抖晃。最近又在找这篇文章想确认下可是一直没找到,现在看到这个G474貌似DAC时钟树貌似跟之前的好像有不一样,不知道是不是还存在这个问题,这个也只能等ST官方来给出答案了

此帖出自stm32/stm8论坛

点评

STM32的DAC产生正弦波频率应该很低,十几纳秒的抖动对测量影响大吗?  详情 回复 发表于 2019-9-3 09:58
 
个人签名如果天空是黑暗的,那就摸黑生存;如果发出声音是危险的,那就保持沉默...但不要习惯了黑暗就为黑暗辩护;不要为自己的苟且而得意;不要嘲讽那些比自己更勇敢热情的人们。人可以卑微如尘土,不可扭曲如蛆虫。
 

回复

9794

帖子

24

TA的资源

版主

4
 
jackfrost 发表于 2019-9-3 09:48 多年前用STM32做LCR玩,用的是片上DAC来生成正弦波参考信号,总是发现相位跳动严重,后来就放弃了,当时就 ...

STM32的DAC产生正弦波频率应该很低,十几纳秒的抖动对测量影响大吗?

此帖出自stm32/stm8论坛
 
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

回复

403

帖子

6

TA的资源

纯净的硅(中级)

5
 

应该是不止十几纳秒,LCR测量上面就大了,相位不稳副参数就跳得厉害,后来改成直接用PWM产生方波滤波成正弦波,副参数跳动就降了不少

此帖出自stm32/stm8论坛

点评

如果提前在ISR中做好准备,希望达到如下的理想效果[attachimg]459522[/attachimg]    详情 回复 发表于 2020-2-18 17:48
[attachimg]459517[/attachimg] 例如这个pwm两次切换就导致不可控的瞬态pwm    详情 回复 发表于 2020-2-18 17:45
LCR需要的相位这么严格吗? 扫频仪好像一般使用DDS吧?   G474的DAC波动是否在ISR中刷新DAC的内部寄存器,导致DAC瞬间的输出有不可控的混乱期? 我在看HRTIM,好像也看到这个瞬间    详情 回复 发表于 2020-2-18 17:37
 
个人签名如果天空是黑暗的,那就摸黑生存;如果发出声音是危险的,那就保持沉默...但不要习惯了黑暗就为黑暗辩护;不要为自己的苟且而得意;不要嘲讽那些比自己更勇敢热情的人们。人可以卑微如尘土,不可扭曲如蛆虫。
 
 

回复

423

帖子

0

TA的资源

一粒金砂(高级)

6
 
本帖最后由 threetigher 于 2020-2-18 17:51 编辑
jackfrost 发表于 2019-9-3 18:06 应该是不止十几纳秒,LCR测量上面就大了,相位不稳副参数就跳得厉害,后来改成直接用PWM产生方波滤波成正弦 ...

LCR需要的相位这么严格吗?

扫频仪好像一般使用DDS吧?

 

stm32的DAC波动是否在ISR中刷新DAC的内部寄存器,导致DAC瞬间的输出有不可控的混乱期?

我在看stm32的手册,好像也看到这个瞬间

 

此帖出自stm32/stm8论坛
 
 
 

回复

423

帖子

0

TA的资源

一粒金砂(高级)

7
 
jackfrost 发表于 2019-9-3 18:06 应该是不止十几纳秒,LCR测量上面就大了,相位不稳副参数就跳得厉害,后来改成直接用PWM产生方波滤波成正弦 ...

例如这个pwm两次切换就导致不可控的瞬态pwm

 

此帖出自stm32/stm8论坛
 
 
 

回复

423

帖子

0

TA的资源

一粒金砂(高级)

8
 
jackfrost 发表于 2019-9-3 18:06 应该是不止十几纳秒,LCR测量上面就大了,相位不稳副参数就跳得厉害,后来改成直接用PWM产生方波滤波成正弦 ...

如果提前在ISR中做好准备,希望达到如下的理想效果

 

此帖出自stm32/stm8论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

9
 

非常感谢,参考你的代码试下了DAC功能


此帖出自stm32/stm8论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

10
 
stm32g474正弦信号发生器
此帖出自stm32/stm8论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

11
 

stm32g474正弦信号发生器

此帖出自stm32/stm8论坛
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表