ESP32支持两路8bit DAC输出:

  • VDD3P3_RTC为电压参考源(一般为3.3V)
  • 专用管脚GPIO25(channel1)和GPIO26(channel2)

API函数调用:

  • 需包含头文件: driver/include/driver/dac.h
  • 函数调用:
    • dac某通道输出使能:dac_output_enable(DAC_CHANNEL_1)
    • dac选定通道输出设定电压值:dac_output_voltage(DAC_CHANNEL_1, 200)
      对于ESP32,由于其DAC为8bit。设定输出参数为200,则输出电压值为:
      3.3*(200/255) = 2.5882V 。

获取输出正弦波的DAC数据:

  • 通过改变MCU的DAC输出电压,可以得到特定的波形。我们以正弦波为例。首先,需要知道一个正弦波周期内有多少个采样点uPoints(点数越多波形越细腻)
  • ESP32的DAC为八位,则传递给DAC的最大参数值为uMaxValue,(即255,其对应最大输出电压3.3V)
  • 采样点uPoints将一个正弦波360度,分割为许多份,每一份的角度为360/uPoints,转换为弧度为:x = (360/uPoints)*(π/180)
  • 由于ESP32的DAC输出电压范围为[0~3.3V],故设置正弦波的偏置电压为3.3/2
  • 数组 sin_tab[i] 用于存储DAC数据,则计算公式如下sin_tab[i]=(uMaxValue/2)*sin(x)+(uMaxValue/2)

定义 getsin() 函数如下:

void getsin()
{float x, uAng;uAng=360.000/uPoints;for(int i=0;i<uPoints;i++){x=uAng*i;x=x*(uPi/180); // 弧度=角度*(π/180)sin_tab[i]=(uMaxValue/2)*sin(x)+(uMaxValue/2);//printf("sin tab[%d]: %f\n", i, sin_tab[i]);}
}

正弦波数据通过DAC输出:

for(int i=0; i<uPoints; i++){dac_output_voltage(DAC_CHANNEL_1, sin_tab[i]);
}

测试结果:

50Hz:

参考资料:

  • 利用C语言产生正弦波DA数据

【ESP32_02】【DAC输出正弦波】相关推荐

  1. STM32 DAC 输出正弦波、三角波、方波

    DAC可以将数字信号转换成模拟信号,在嵌入式系统开发中运用的十分广泛.在STM32实际运用中,可直接将数值映射成端口的电压值,通过大量的采样点输出,可达到输出指定波形的目的. 1.设置系统时钟(Clo ...

  2. STM32物联网项目-DAC输出模拟量以及正弦波

    DAC输出正弦波 DAC介绍 ​ STM32 的 DAC 模块(数字/模拟转换模块)是 12 位数字输入,电压输出型的 DAC.DAC 可以配置为 8 位或 12 位模式,也可以与 DMA 控制器配合 ...

  3. STM32F103使用DAC功能输出正弦波

    在DAC的主要特征中可以看出,DAC内部带有波形发生器. DAC 主要特征 2个DAC转换器:每个转换器对应1个输出通道 8位或者12位单调输出 12位模式下数据左对齐或者右对齐 同步更新功能 噪声波 ...

  4. STM32 DAC + DMA + TIM 输出正弦波,三角波,方波信号

    硬件平台:STM32F4 库类型:标准库. 参考:[二代示波器教程]第12章 示波器设计-DAC信号发生器的实现 DAC框图如下: 通过TIM触发DAC转换,转换完成后通过DMA输出. DMA通道框图 ...

  5. STM32CubeMX学习笔记(20)——DAC接口使用(输出正弦波)

    一.DAC简介 DAC(Digital-to-Analog Converter),即数字/模拟转换模块,故名思议,它的作用就是把输入的数字编码,转换成对应的模拟电压输出,它的功能与 ADC 相反.在常 ...

  6. FPGA 20个例程篇:20.USB2.0/RS232/LAN控制并行DAC输出任意频率正弦波、梯形波、三角波、方波(二)

    通过上面的介绍相信大家对数字变频已经有了一个较为整体性的认识,下面笔者来对照XILINX的DDS IP核对数字变频技术展开更进一步的说明,做到了理论和实践很好地结合,这样大家再带入Modelsim进行 ...

  7. stm32输出正弦波

    本次说明是看野火的开发板学习,做个笔记 计算获取正弦波数据表: 2) 根据正弦波数据表的周期内点数和周期计算定时器触发间隔: 3) 初始化 DAC 输出通道,初始化 DAC 工作模式: 4) 配置触发 ...

  8. stm32的DAC输出

    stm32的DAC输出 一.DAC原理 二.DAC初始化 三.输出正弦波 四.输出音频 一.DAC原理 DAC 为数字/模拟转换模块,故名思议,它的作用就是把输入的数字编码,转换成对 应的模拟电压输出 ...

  9. 基于stm32片内Flash数据的DAC输出

    stm32片内Flash的提示音播放 前言 一.DAC简介 二.使用DAC输出单周期的正弦波 三.PCM模块输出音频 前言 使用用Adobe audition音频编辑软件录制"您好欢迎光临! ...

最新文章

  1. 一个简单的slider滑块组件
  2. 【组队学习】【35期】SQL编程语言
  3. 如何判断轮廓是否为圆?
  4. ERROR: Failed to find Platform SDK with path: platforms;android-27
  5. 夏俊:深入网站服务端技术(一)——网站并发的问题
  6. HUD 1043 Eight 八数码问题 A*算法 1667 The Rotation Game IDA*算法
  7. IntellIJ IDEA 导入 Java 项目后无法运行 main 方法的解决方案
  8. 【Oracle】PL/SQL Developer使用技巧(持续更新中)
  9. 【机器学习基础】数学推导+纯Python实现机器学习算法23:kmeans聚类
  10. leetcode-217-存在重复元素
  11. mysql数据库的环境搭建_数据库学习(一)MySql环境搭建
  12. 图解10大机器学习算法
  13. 服务的协作:服务间的消息传递——《微服务设计》读书笔记
  14. IntelliJ IDEA 2018安装+激活+汉化(详细图解)
  15. mybatis ------ mybatis和spring整合(十一)
  16. (转)用Ajax技术让IE Web Control Tree View实现大数据量读取
  17. 开源已经 20 年,改变世界的承诺有兑现吗?
  18. 消耗性缺口_衰竭缺口分析
  19. mysql dump语句_mysql/mariadb知识点总结(28):mysql备份工具之mysqldump
  20. 换IP软件能保证我们的网络安全吗

热门文章

  1. 10个良心的软件免费下载网站,你知道吗?
  2. 比Everything更强的文件搜索工具,支持文件名、文件内容和文件图片上的文字搜索,文件内容搜索工具,文件图片内容搜索工具,OCR图片文本识别搜索,文件快速搜索工具,文字识别文件搜索工具
  3. 解决:the account is locked 被锁
  4. 灾备系统与备用服务器区别,云灾备与云备份区别在哪?云灾备五大特点
  5. 《python编程:从入门到实践》文件和异常——百万圆周率,pi_million_digits.txt
  6. Glove 细节介绍
  7. Oracle与SQL *PLUS简介
  8. 蚁群算法解决多峰函数优化问题
  9. 2011年襄阳市高一下学期市统考数学试题
  10. 移动端手机软键盘遮挡输入框问题