ESP32有两个DAC通道,通道1链接GPIO25, 通道2链接GPIO26;

当DAC设置为 “built-in DAC mode”的时候,I2S可以通过DAC发送数据;

使用示例:

dac_output_enable(DAC_CHANNEL_1);
dac_output_voltage(DAC_CHANNEL_1, 200);

dac一共有8位,将3.3V电压按照255均分之后,就是dac的精度的最小单位;

API函数如下:

esp_err_tdac_pad_get_io_num(dac_channel_tchannelgpio_num_t *gpio_num)

获取指定的DAC通道的GPIO口;

esp_err_tdac_output_voltage(dac_channel_tchannel, uint8_t dac_value)

设置DAC的输出电压;

esp_err_tdac_output_enable(dac_channel_tchannel)

DAC的输出使能;

esp_err_tdac_output_disable(dac_channel_tchannel)

DAC的输出失能;

esp_err_tdac_i2s_enable()

DAC 的I2S使能;

esp_err_tdac_i2s_disable()

DAC的I2S失能;

下面是关于量程的理解:

esp_err_tadc1_config_channel_atten(adc1_channel_tchanneladc_atten_tatten)

该函数设定制定通道的量程范围atten;

默认量程是1.1伏特,如果想测量更高的范围的话,更改atten来更改测量量程,最高测量3.3伏特;

Note
在adc1_get_raw()读值之前,确定atten的函数必须执行完毕;
Note
This function can be called multiple times to configure multiple ADC channels simultaneously. adc1_get_raw() can then be called for any configured channel.
如果想更改量程,这个函数可以多次被调用来更改量程范围;

When VDD_A is 3.3V:

  0dB attenuaton (ADC_ATTEN_DB_0) gives full-scale voltage 1.1V

  • 2.5dB attenuation (ADC_ATTEN_DB_2_5) gives full-scale voltage 1.5V
  • 6dB attenuation (ADC_ATTEN_DB_6) gives full-scale voltage 2.2V
  • 11dB attenuation (ADC_ATTEN_DB_11) gives full-scale voltage 3.9V (see note below)

Due to ADC characteristics, most accurate results are obtained within the following approximate voltage ranges:

Note
最大电压对应着最大数值, (depending on ADC1 configured bit width, this value is: 4095 for 12-bits, 2047 for 11-bits, 1023 for 10-bits, 511 for 9 bits.)
Note
At 11dB attenuation the maximum voltage is limited by VDD_A, not the full scale voltage.

  0dB attenuaton (ADC_ATTEN_DB_0) between 100 and 950mV

  • 2.5dB attenuation (ADC_ATTEN_DB_2_5) between 100 and 1250mV
  • 6dB attenuation (ADC_ATTEN_DB_6) between 150 to 1750mV
  • 11dB attenuation (ADC_ATTEN_DB_11) between 150 to 2450mV

For maximum accuracy, use the ADC calibration APIs and measure voltages within these recommended ranges.

Return

  • ESP_OK success
  • ESP_ERR_INVALID_ARG Parameter error
Parameters
  • channel: ADC1 channel to configure
  • atten: Attenuation level

ESP32 DAC的更多相关文章

  1. ESP32 I2S

    I2S支持DMA; I2S可以直接利用DAC来输出模拟信号 (GPIO 25 & GPIO 26): 高精度时钟使能参数:   .use_apll = true ESP32配置外设一般都是配置 ...

  2. ESP32引脚参考(转)

    ES​P32芯片配有48个具有多种功能的引脚.并非所有的引脚都暴露在所有的ESP32开发板中,有些引脚不能使用. 关于如何使用ESP32 GPIO有很多问题.你应该用什么pin?在项目中应该避免使用哪 ...

  3. STM32之DAC君

    如花说得好:呃呃呃.是俗话说得好:有了ADC,怎可少了DAC..我觉得奇怪.今天我开头就直奔主题了.我想了想,总结了一句话:孙悟空纵然有七十二变.无论是变成猫也好,变成狗也罢.始终还是会变回他本身.所 ...

  4. DAC Usage4:从 Backup Package(.bacpac)还原DB

    使用DAC,能够将database的schema 和 data 从一个server 或 cloud 上复制到另外一个server上,存储schema 和 data的文件是 .bacpac 文件. 方法 ...

  5. DAC Usage3:Monitor Data-tier Applications

    If you deploy a DAC to a managed instance of the Database Engine, information about the deployed DAC ...

  6. DAC Usage2:通过DAC实现DB Schema的Migration和Upgrade

    一,Introduce Extract DAC 是从现存的DB中创建DAC,抽取DB Object的definition 和 与之相关的实例级别的元素,比如Login,以及Login 和User之间的 ...

  7. 基于STM32Cube的DAC数模转化

    1. STM32Cube配置 1.1 DAC配置   1.2 TIM6 配置 1.3 利用Cube产生工程程序,MDK打开软件       在主循环上添加语句:      HAL_TIM_Base_S ...

  8. MS SQL专用管理员连接DAC

    在SQL SERVER 2005中,微软引入了一个叫做数据库专用管理员连接方式(DAC Dedicated Administrator Connection)的特性,使用这个新特性,数据库管理员可以在 ...

  9. SQL Server DAC——专用管理员连接

    今天打开数据库刚要连接时,看到“连接到服务器”窗口,突发的想到:要是SQL Server 不再响应正常的连接请求,又想使用数据库时,我们该怎么办?      其实我们还能通过“SQL Server D ...

随机推荐

  1. Minitab系列 前言

    Matlab 在有些时候太过去强大,强大到几乎所有的数学问题都可以解决. 在这里,Matlab就像数学版的Vim,对于一般的使用者还是不想编程,想要更加的直接直观的数学处理工具,这里向大家介绍mini ...

  2. 浅析requests库响应对象的text和content属性

    在做爬虫时请求网页的requests库是必不可少的,我们常常会用到 res = resquests.get(url) 方法,在获取网页的html代码时常常使用res的text属性: html = re ...

  3. 转: Laravel 自定义公共函数的引入

    来源:Laravel 自定义公共函数的引入 背景习惯了 使用 ThinkPHP 框架,有一个公共方法类在代码编写上会快捷很多,所以有必要在此进行配置一番.测试框架:Laravel 5.5步骤指导1. ...

  4. [VUE ERROR] Invalid prop: type check failed for prop "list". Expected Array, got Undefined

    错误原因: 子组件 props -> list 要求接收的数据类型是 Array, 然而实际接收到的是 Undefined. 子组件代码: props: { list: { type: Arra ...

  5. Visual Studio 2015速递(4)——高级特性之移动开发

    系列文章 Visual Studio 2015速递(1)——C#6.0新特性怎么用 Visual Studio 2015速递(2)——提升效率和质量(VS2015核心竞争力) Visual Studi ...

  6. 对JS作用域和作用域链的理解

    理解好javascript的变量作用域和链式调用机制对用好变量起着关键的作用,下面我来谈谈这两个概念的理解. (1)链式调用机制 作用域链的定义:函数在调用参数时会从函数内部到函数外部逐个”搜索“参数 ...

  7. CentOS7:解决Packagekit占用yum问题

    首先: vim /etc/yum/pluginconf.d/langpacks.conf 将第一行:enable=1改为enable=0   然后执行一下yum命令,发现还会占用,杀死线程即可.

  8. scrapy系列(一)——Python 爬虫框架 Scrapy1.2 Windows 安装教程

    scrapy作为一个成熟的爬虫框架,网上有大量的相关教程供大家选择,尤其是关于其的安装步骤更是丰富的很.在这里我想记录下自己的相关经验,希望能给大家带来点帮助. 在scrapy0.24版之前,安装sc ...

  9. 第四周读书笔记——读《我是一只IT小小鸟》有感

             读<我是一只IT小小鸟>有感 这是邓老师倾力推荐的一本书.这本书的标题化用了我们耳熟能详的歌词,算是较有新意吧.更重点在于,这本书的作者不是哪一位大牛,而是一群刚刚走出校 ...

  10. 洗礼灵魂,修炼python(46)--巩固篇—如虎添翼的property

    @property 在前面装饰器一章中,提过一句话,装饰器也可以用于类中,确实可以的,并且python的类也内置了一部分装饰器.并且在前两章的hasattr等四个内置方法中,也说过其用法很类似装饰器, ...