使用STM32微控制器系列中的DAC生成音频和波形之应用实例

《使用dac生成正弦波形》
1、说明
本示例分步说明如何生成正弦波形。
正弦波形也称作单频正弦波音,它是一种纯音或绝对音。在确定听觉系统的各种响应时,正弦音一般用作刺激源。
2、准备数字模式的正弦波形
要准备数字模式的波形,需要进行一些数学运算。这里的目标是产生正弦波的 10 个数字模式数据(采样),变化范围为 0 到 2*pi。
采样间隔为 (2*pi)/ ns (采样数)。
sin(x) 的结果值在 -1 到 1 之间,经过必要的重新校准后,可以生成 0 和 0xfff 之间(对应电压范围为 0 v 到 3.3 v)的正向正弦波。
经过线性转换后,数字输入会转换为 0 到 vref+ 之间的输出电压。
各 dac 通道引脚的模拟输出电压通过以下公式确定:
因此,可通过以下公式得到模拟正弦波形 ysineanalog
此表保存在存储器中,并由 dma 传输,传输过程由触发 dac 的相同定时器触发
3、修正正弦波频率
要修正正弦波信号的频率,需要设置定时器触发输出的频率。
所产生正弦波的频率为
因此,如果 timx_trgo 为 1 mhz,则 dac 正弦波的频率为 10 khz。
注:要获得高质量的正弦波曲线,建议使用较高的采样数 ns。
《使用dac实现音频波形播放器》
1、说明
此应用演示的目的是为 stm32 微控制器提供一种音频播放器解决方案,用于播放 .wav 文件。
该过程经过优化,需要的外部组件数量最少,最终用户可以灵活选择自己的 .wav 文件。stm32 中的音频文件通过 microsd 存储卡提供。
2、音频波形文件规范
本应用假设要播放的 .wav 文件具有如下格式:
●音频格式:pcm(一种未经压缩的波形数据格式,其中的每个值表示采样时信号的振幅)。
●采样率:8000、11025、22050 或 44100 hz
●每次采样的位数:8 位(音频采样数据值的范围为 [0-255])。
●通道数:1(单声道)
3、.wav 文件格式
.wav 文件格式是存储多媒体文件使用的资源交换文件格式 (riff) 规范中的一种。riff 文件以一个文件头开始,然后是一系列的数据块。.wav 文件通常就是一个 riff 文件,内含一个“wave”数据块,该数据块由以下两个子数据块组成:
1.指定数据格式的 fmt 子数据块
2.包含实际采样数据的 data 子数据块
wave 文件格式的开始是 riff 头:它指示文件长度。然后,fmt 块描述采样格式,其中包含如下信息:波形音频的格式:(pcm/...),通道数(单声道/立体声),采样率(每秒的采样数:例如,22050)以及采样数据大小(例如,8 位 /16 位)。
最后,数据块包含采样数据。
3、实现音频波形播放器
音频波形播放器的应用以 spi、dma、tim6 和 dac 外设为基础。
在启动时,此应用首先使用 spi 与 dosfs 文件系统的 microsd 卡建立连接,解析卡中的内容,并在 user 文件夹中查找可用的 .wav 文件。找到有效的 .wav 文件后,会通过 spi 读回,然后使用 cpu 将该数据传输到位于 ram 内的缓冲区阵列。dma 用于将数据从 ram 传输到 dac 外设。tim6 用于触发 dac,将音频数字数据转换为模拟波形。
在播放音频数据之前,会对 wav 文件头进行解析,以便确定数据的采样率及其长度。
使用采样数据(.wav 文件中包含的数据)来更新 dac 输出中的值,借此完成重现音频的任务。该数据以 8 位的形式进行编码(值的范围为 0 到 255)。
dac 通道 1 由 tim6 定期触发,触发间隔由 .wav 文件头的采样率指定。
.wav 文件从使用 dosfs 文件系统的 microsd 存储器中读取。
在演示代码中,处理波形播放器演示的编码文件为:
waveplayer.c
waveplayer.h
使用 waveplayermenu_start() 函数来调用波形播放器演示,以下为相关流程图。
在本应用中,协同处理是必不可少的,这样可以同时实现从外部存储器读取波形和将波形写入 dac 寄存器的过程。


H171-5MW海上风电机组更是创造了三类海上风区3900小时世界纪录
流媒体音视频采集卡在高清网络视频的应用
安捷伦科技推出首批彩色VGA显示屏的手持式设备
劲爆!充电桩行业的乱象,来自当年一个决定
武汉最上游芯片设计领域排名增速至全国第三 未来有望实现自主芯片全产业链
使用STM32微控制器系列中的DAC生成音频和波形之应用实例
意大利成功完成首例3D打印支气管植入手术
四种有监督的机器学习形式的风险分层模型
上海元宇宙新政:开展新型显示关键技术布局
鸿蒙概念股龙头一览代码
百度战略赞助 GOTC 2021,详解最活跃的自动驾驶开源平台Apollo
免费下载 | 工业和信息化部关于推动5G加快发展的通知
需要了解Linux swap分区的扩展
盛群新一代Flash触控MCU BS83B系列
下载白皮书赢奖品 | 通过Photon架构创建身临其境的图形体验
公平公正的AI也学会了人类的偏见
三星GalaxyWatchLTE版更新 提高电池充电可靠性
东芝硬盘携企业级硬盘亮相ODCC大会
简单的红外光接近开关电路原理图讲解
大联大诠鼎推出基于高通QCC3020最新一代低功耗TWS蓝牙5.1芯片