精华内容
下载资源
问答
  • 这里写目录标题STM32F103输出一路PWM波形通过DAC输出一个周期2khz正弦波(循环)。此波形驱动作用至蜂鸣器或喇叭,会呈现一个“滴...”单音;通过DAC将一段数字音频歌曲数据转换为模拟音频波形输出 STM32F103...

    STM32F103输出一路PWM波形

    pwm:

    PWM是 Pulse Width Modulation 的缩写,中文意思就是脉冲宽度调
    制,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控 制的一种非常有效的技术,其控制简单、灵活和动态响应好等优点而成
    为电力电子技术最广泛应用的控制方式,其应用领域包括测量,通信, 功率控制与变换,电动机控制、伺服控制、调光、开关电源,甚至某些
    音频放大器,因此学习PWM具有十分重要的现实意义。 其实我们也可以这样理解,PWM是一种对模拟信号电平进行数字编码
    的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个 具体模拟信号的电平进行编码。PWM 信号仍然是数字的,因为在给定的
    任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压
    或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去 的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被
    断开的时候。只要带宽足够,任何模拟值都可以使用 PWM 进行编码。

    下面是工程文件,直接提取后可用,也可以在野火指南者里面下载
    链接: link.:
    提取码:yq4y
    打开这个:在这里插入图片描述
    选择四路pwm输出即可

    在这里插入图片描述
    仿真pwm输出:
    开始配置:
    可参考:
    链接: link.
    链接: link.
    点击魔法棒:
    在这里插入图片描述
    点击debug
    在这里插入图片描述
    开始调试:
    在这里插入图片描述
    在这里插入图片描述
    选择setup
    配置如下:
    在这里插入图片描述
    开始测试:
    在这里插入图片描述
    将这个图形拖出来:
    在这里插入图片描述
    在这里插入图片描述
    实际波形图我们连接串口,将hex文件烧录进去,这里不细说,可参考我之前串口通信,将高电平和地连起来,即可观察到方波:
    在这里插入图片描述
    在这里插入图片描述

    通过DAC输出一个周期2khz的正弦波(循环)。此波形驱动作用至蜂鸣器或喇叭,会呈现一个“滴…”的单音;

    ADC:

    DAC为数字模拟转换模块,故名思议,它的作用就是把输入的数字编码,转换成对应的模拟电压输出,它的功能与ADC相反。在常见的数字信号系统中,大部分传感器信号被化成电压信号,而ADC把电压模拟信号转换成易于计算机存储、处理的数字编码,由计算机处理完成后,再由DAC输岀电压模拟信号,该电压模拟信号常常用来驱动某些执行器件,使人类易于感知。如音频信号的采集及还原就是这样一个过程。
    STM32具有片上DAC外设,它的分辨率可配置为8位或12位的数字输入信号,具有两个DAC输出通道,这两个通道互不影响,每个通道都可以使用DMA功能,都具有出错检测能力,可外部触发。

    生成自定义频率的正弦波:
    在这里插入图片描述
    计算得到,我们需要3600个采样点。
    打开野火的工程文件:
    链接: link.
    提取码:qla4
    解压后打开:
    用matlab打开:
    在这里插入图片描述

    修改数据:

    %用于产生正弦数据表,输出到文件dac_sinWave.c 文件中,复制到c语言数组即可
    
    n = 2*pi/3600 : 2*pi/3600 : 2*pi      %分成3600等份
    
    a = sin(n)+1;                     %求取sin函数值并向上平移一个单位,消除负数值
    a = a * 3.3/2;                    %调整幅值,使范围限制为0~3.3   
    r = a* (2.^12) /3.3               %求取dac数值,12位dac LSB = 3.3/2.^12 
    r = uint16(r);                     %double型数据转化成16位整型数据 
    
    for i = 1:32                        
    if r(i) > 4095                      %限制数据最大不超过4095
        r(i) = 4095
    end
    end 
    
    dlmwrite('dac_sinWave.c',r);      %把数据写入到文件,方便添加到stm32工程中
    plot(n,r,'.')                     %把这些点画出来 
    

    运行结果如下:
    在这里插入图片描述
    然后打开刚刚的文件夹,打开中间那个:
    在这里插入图片描述
    在这里插入图片描述
    复制完,打开解压后的工程文件:
    在这里插入图片描述

    选择这个文件

    在这里插入图片描述
    将写字本的3600个数据粘贴上去在运行:

    在这里插入图片描述
    生成hex文件
    在这里插入图片描述
    即可烧录,连接示波器:
    在这里插入图片描述
    在这里插入图片描述
    得到波形之后我们将板子上的PA4或PA5接上蜂鸣器,并接地,便可让蜂鸣器发出声音
    在这里插入图片描述

    通过DAC将一段数字音频歌曲数据转换为模拟音频波形输出

    打开 Adobe Audition CS6软件:
    在这里插入图片描述

    截取一小段:
    在这里插入图片描述
    生成wav文件:
    在这里插入图片描述
    用UltraEdit打开:
    在这里插入图片描述
    选择16进制复制,新建文本:
    在这里插入图片描述
    复制中间那一串
    在这里插入图片描述
    在这里插入图片描述

    复制下来
    在这里插入图片描述
    打开notepad++软件:
    复制进去,
    在这里插入图片描述
    在第一列32前按住atl+c添加0x在这里插入图片描述
    后面每一列都添加:,0x

    在这里插入图片描述
    结果:
    在这里插入图片描述
    将最后一行删去,复制全部:
    打开工程文件:
    选择下面所示文件:
    在这里插入图片描述
    在const uint16_t Sine12bit[POINT_NUM] = {函数中将数据粘贴进去:
    在这里插入图片描述
    生成头文件后烧录,连接示波器:
    在这里插入图片描述

    总结

    以上就是全部内容

    展开全文
  • 用PWM实现DAC功能

    千次阅读 2020-12-31 10:51:40
    没办法,就想着用PWM实现DAC的功能,这只是初步理论,还没有实践过,先贴出来,后续实现再看效果如何吧。 1,如下图,改方式元器件少,但精度低,文波大一点 输出的模拟量电压Vout=VDD*D1/ (D1+D2)。该输出电压...

    现在单片机型号很多,但是内部拥有12位DAC且性价比较高的芯片恨少,导致在芯片选型时,捉襟见肘。没办法,就想着用PWM实现DAC的功能,这只是初步理论,还没有实践过,先贴出来,后续实现再看效果如何吧。

    1,如下图,改方式元器件少,但精度低,文波大一点

    输出的模拟量电压Vout=VDD*D1/ (D1+D2)。该输出电压带有纹波,当RC值足够大时,该纹波值几乎为零。

    为进一步减小纹波,可使用两级RC滤波。 此处LM324作为一个跟随器,提高电路的负载能力。

    2,高精度PWM DAC电路

     

    图4的电路在图3电路的基础上增加了开关管T1、基准电压源LM3365和输出放大器TL V2472。MCU从A点输出的PWM波驱动T1的栅极,T1按照PWM的周期和占空比进行开关。T1为低 导通电阻和开关特性好的开关管,如IRF530[4],其典型导通电阻小于0.16 Ω,而截止电阻却非常大,与T1并联的为基准电压LM3365。图4的B点将得到理想的 PWM波形,即:VH=5 V,VL=0 V,波形为方波。A点的PWM波,经过整形得到B点理想PWM波,B点的PWM波再经过两级阻容滤波在C点得到直流分量,即MCU输出的调制PWM波在C 点得到解调,实现了DAC功能。根据式(2)可知,C点的电压为(5 ×n/N)V,为0~5 V之间的电压。由于放大器A1的输入阻抗很大,二级阻容滤波的效果很好,C点的电压纹波极小,满足高精度要求。输出放大器采用TLV2472,工作在电压 跟随器方式,他是一个RailtoRail放大器,他的输出电压的跨度几乎等于电源电压幅度,因此可以得到0 V的电压输出,克服了一般放大器(如LM324,TL071等)输出电压跨度比电源电压范围小1 V左右这一缺点。图4与图3还有一点重要的不同是,图4的电源电压为6 V,而图3为5 V。图4中在MCU接电源电压中串联了二极管,他起降压的作用,因为一般的MCU工作电源范围为4.5~5.5 V之间。图4中采用电源电压为6 V是为了保证LM336 5能正常工作。

    展开全文
  • 基于 STM32 DAC 功能-附件资源
  • 基于 STM32 DAC 功能

    2021-01-11 10:14:01
    DAC(中文:数字模拟转换器)是一种将数字信号转换为模拟信号(以电流、电压或电荷形式)设备。 电脑对声音这种信号不能直接处理,先把它转化成电脑能识别数字信号,就要用到声卡中 DAC,它把声音信号转换成...

    DAC简介

    DAC(中文:数字模拟转换器)是一种将数字信号转换为模拟信号(以电流、电压或电荷的形式)的设备。
    电脑对声音这种信号不能直接处理,先把它转化成电脑能识别的数字信号,就要用到声卡中的 DAC,它把声音信号转换成数字信号,要分两步进行,即采样和转换。
    在这里插入图片描述

    输出正弦波与蜂鸣器发声

    代码链接
    提取码:a5bv
    打开keil5进行编译
    在这里插入图片描述
    没有任何问题
    打开示波器观察波形
    在这里插入图片描述
    将板子上的PA4或PA5接上蜂鸣器,并接地,便可让蜂鸣器发出声音
    在这里插入图片描述

    数字音频数据转模拟音频波形输出

    软件需求

    将文件中所有的压缩包解压到当前文件目录下,然后按照网址所提示的安装教程进行安装。
    打开【Adobe Audition CS6】,找到下载歌曲路径,点击打开
    在这里插入图片描述
    显示结果
    在这里插入图片描述
    鼠标拖动截取片段,点击存储
    在这里插入图片描述
    下拉设置【格式】,其【采样类型】与【格式设置】都会改变,点击【确定】。
    在这里插入图片描述
    将保存的文件用 Uedit32 打开。
    在这里插入图片描述
    显示为
    在这里插入图片描述
    复制
    在这里插入图片描述
    新建文件,然后粘贴复制内容到新文件。
    在这里插入图片描述
    CTRL+A 鼠标右键 选择范围 输入起始的行号和列号,选中内容。
    在这里插入图片描述
    在这里插入图片描述
    复制选中内容
    在这里插入图片描述
    打开 Notepad++ ,粘贴复制内容。
    在这里插入图片描述
    删除不需要的尾行,将该文本复制下来。
    打开第二部分的文件【DAC—输出正弦波】工程文件。
    将文本复制进 uint16_t Sine12bit[] 数组中去,并删掉中括号里面的数据。
    在这里插入图片描述
    显示结果
    在这里插入图片描述

    展开全文
  • STM32F103的DAC功能

    2021-01-03 17:12:11
    STM32F103的DAC功能任务一任务2总结 任务一 输出一个周期2khz正弦波(循环)。此波形驱动作用至蜂鸣器或喇叭,会呈现一个“滴…”单音 1.新建 2.生成基本音色 3.导出 任务2 将一段数字音频歌曲数据转换为...

    STM32F103的DAC功能

    任务一

    输出一个周期2khz的正弦波(循环)。此波形驱动作用至蜂鸣器或喇叭,会呈现一个“滴…”的单音
    1.新建
    在这里插入图片描述
    在这里插入图片描述

    2.生成基本音色
    在这里插入图片描述
    在这里插入图片描述

    3.导出
    在这里插入图片描述

    任务2

    将一段数字音频歌曲数据转换为模拟音频波形输出(循环)。

    提示:首先用音频制作工具制作一段数字化的2khz正弦波wav文件、转换一首你喜欢的歌曲片段(或者自己唱录一句,如“我还是从前那个少年miya”)为wav文件。制作时须指定采样频率、量化位数和通道数,以及时间长度。MCU资源有限,建议采样8khz,量化16bit,单通道,时长仅仅5~10秒。音频wav数据可以用类似汉字字模的保存方式,直接copy到Keil代码中数组中,不必使用SD卡上的wav文件(野火开发板是读取SD卡上的wav文件)。

    1.首先选择一首音乐
    在这里插入图片描述

    2.进行剪辑,5s-10s
    在这里插入图片描述
    在这里插入图片描述

    选择8000采样频率
    在这里插入图片描述采样后的数据可以用MATLAB打开观察波形,感兴趣的小伙伴可以试一试。

    3.使用UltraEdit将上述的.wav文件改为16进制文件
    在这里插入图片描述
    根据自己的文件进行范围选择复制
    在这里插入图片描述

    在这里插入图片描述

    4.将复制内容粘贴的notepad++

    在这里插入图片描述

    5.给复制的内容加上0x前缀
    在这里插入图片描述

    在这里插入图片描述

    列块编辑是一次编辑一列,需要对每一列进行操作
    在这里插入图片描述
    将次数据放入KEIL程序中即可输出观察在这里插入图片描述

    示波器观察实例:

    在这里插入图片描述

    总结

    此次实验中,我们可以实现了数字信号和模拟信号的相互转化与观察,这其中会用到多个中间软件帮助剪辑内容,可操作性很强,此时实验对学习通信有很大意义。

    展开全文
  • 使用STM32F103的DAC功能实现音频输出

    千次阅读 2021-01-09 16:02:04
    DAC 为数字/模拟转换模块,故名思议,它的作用就是把输入的数字编码,转换成对应的模拟电压输出,它的功能与 ADC相反。在常见的数字信号系统中,大部分传感器信号被化成电压信号,而 ADC把电压模拟信号转换成易于...
  • 在之前学习STM32中,已经学会了通过给GPIO端口赋值高低电平来控制LED亮灭。但在日常生活中,并不是所有信号都是恒定值,而是一个连续变化信号,那么该如何实现呢?
  • STM32具有片上DAC外设,它分辯率可配置为8位或12位数字输入信号,具有两个DAC输出通道,这两个通道互不影响,每个通道都可以使用DMA功能,都具有出错检测能力,可外部触发。DAC可以通过引脚输入参考电压VRE
  • 用STM32F103的DAC功能完成以下波形输出,用示波器观察波形,并用蜂鸣器或手机耳机收听输出声音效果、感受歌曲音质差异。 输出一个周期2khz正弦波(循环)。此波形驱动作用至蜂鸣器或喇叭,会呈现一个“滴…”...
  • 在要求脉宽调制(PWM)输出功能或需要产生模拟电压来控制外部器件,而... PWM一些典型应用如控制汽车尾灯或仪表盘亮度调光器、小型直流风扇电机速度控制器、小型加热器控制器,甚至是数模转换器(DAC),在这些DAC
  • 在STM32F103RCT6单片机上,利用DAC功能输出正弦波,计算出产生正弦波数据,然后将将数字利用DAC功能转换为电压输出。
  • DAC的构成与特点3. DAC功能剖析二、输出一个周期2khz的正弦波1.DAC输出正弦波原理2. 代码的修改三、数字音频歌曲数据转换为模拟音频波形输出1. 音频制作正弦波信号输出2. 音频歌曲数据转换为模拟音频波形总结 基于...
  • 目录一、实验准备二、使用定时器完成PWM波形输出1.PWM简介参考 一、实验准备 实验目的: ...用STM32F103的DAC功能完成以下波形输出,用示波器观察波形,并用蜂鸣器或手机耳机收听输出声音效果、感受歌曲
  • 本程序以12位串行DAC7611作为DAC,将定义的数字量DaData转换为模拟量输出,...经过实际验证,在正确连线的情况下,能够完美实现DAC的功能。适合初学者了解DAC的编程原理,也适合工程技术人员使用DAC7611作为参考程序。
  • 1)输出一个周期2khz正弦波(循环)。此波形驱动作用至蜂鸣器或喇叭,会呈现一个“滴…”单音; 2)将一段数字音频歌曲数据转换为模拟音频波形输出(循环)。 提示:首先用音频制作工具如audition制作一段数字化...
  • DAC格式是英文Digital Audio Compress简称,是北京豪杰纵横网络技术有限公司(以超级解霸成功开发而闻名),凭借自己多年积累音频编码技术,独创自然声学模型,开发出专业级音频压缩格式,超高音质,并且...
  • DAC 为数字/模拟转换模块,故名思议,它的作用就是把输入的数字编码,转换成对应的模拟电压输出,它的功能与 ADC相反。在常见的数字信号系统中,大部分传感器信号被化成电压信号,而 ADC把电压模拟信号转换成易于...
  •  高速同步挑战是要在过程、电压和温度(PVT)中达到数模(DAC)时钟周期。要达到这种,需要在DAC上实施同步逻辑块,并且必须在板上精心设计布局和时钟方案以与同步逻辑块配合使用。 该电路可用于支持E频段中宽带...
  • DAC格式是英文Digital Audio Compress简称,是北京豪杰纵横网络技术有限公司(以超级解霸成功开发而闻名),凭借自己多年积累音频编码技术,独创自然声学模型,开发出级音频压缩格式,超高音质,并且具有很...
  • 与此同时,模拟电路执行独立于微型计算机的功能,直到某个事件或条件要求它产生中断信号以引起微型计算机的注意为止。 本文给出的这个电路的参数由微型计算机设置,然后电路负责把单脉冲宽度射频控制信号转换成电压...
  • 有几个参数自己不是很理解,通过翻阅资料,百度等渐渐理解,现总结如下:(以下全是个人理解,如有不缜密的地方,还请阅读者见谅并指出)首先,我们得先明白为什么通过PWM输出+RC滤波能实现DAC的功能DAC的功能不用...
  • ## Features此库中实现的功能列表: 设置所有通道的输出(一对一或广播) 设定省电模式 设定参考模式 这是一个初始版本,可能包含错误,但现在可以正常工作。 如果您发现问题,请告诉我。 ###安装复制该库的内容...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,433
精华内容 573
关键字:

dac的功能