STM32/STM8技术william hill官网
直播中

甘鹏飞

10年用户 48经验值
擅长:电源/新能源 模拟技术 控制/MCU
私信 关注
[问答]

STM32产生正弦波

我现在用的是STM32F103RCT6型的单片机,我想请问,STM32的DAC+timer+DMA产生正弦波的原理是什么?它们是怎么联动的?我看了官方给的正弦波程序,但有些地方不明白。譬如,那个正弦表是怎么来的?作用是什么?
已退回20积分

回帖(4)

赵俊波

2015-8-25 20:16:44
两个月前还在和同门研究这个程序呢,这个例子要求的东西挺多的,现在说说自己的看法
此例子考察3个外设的使用:DAC、Timer和DMA
DAC是进行数模转换的,和ADC相反,STM32的AD/DA好像都是12bit位宽的吧,所以DAC是将一个12bit的数字采样值,按比例转化成0~3.3v之间的电压模拟值;
Timer是负责触发采样值输出,它的意义在于将离散的采样值和时间扯上关系,这样才有了实际波形的意义;
DMA则是负责内存RAM和外设DAC间的数据搬移的。
更加详细的解释可以找找NCO(数控振荡器)的原理,这样就可以知道“正弦表”中的数值表示的波形频率和实际DAC输出波形频率之间关系,在STM32工程中它和Timer的定时值有关,都是一个很简单的数学关系
我觉得里面有几个难点:1.三个外设的初始化,一定要注意,细节决定成败;2.波形频率与寄存器设置之间的关系,可以利用示波器多看看;3.结合ADC的例程将AD数据利用DA过程恢复,学习整个过程.
举报

滴滴答

2015-9-6 16:44:42
这能产生几种波形,          之前做过不是很理想
举报

古俊权

2015-12-2 20:06:38
用单片机生成各种波形的数据,将数据传输给RAM存储器,通过后级的DA转换器实现波形的产生。
举报

古俊权

2015-12-2 20:06:57
用单片机生成各种波形的数据,将数据传输给RAM存储器,通过后级的DA转换器实现波形的产生。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分