0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ESP32-S3 ADC外设实例

云深之无迹 来源:云深之无迹 2023-09-15 09:31 次阅读

昨天写了一个ADC的文章,感觉浮于表面,今天会完整的剖析这个外设,毕竟乐鑫给的太多了。

ESP32-S3 ADC外设这个是昨天写的。

0cb65b90-5318-11ee-a25d-92fbcf53809c.png

比较傻逼的一点是ADC这么屌的一个外设给我归类在这里

0cdcd180-5318-11ee-a25d-92fbcf53809c.png

我其实有点没看懂,应该是有两个ADC,但是这么多的引脚是支持而已

0d12c556-5318-11ee-a25d-92fbcf53809c.png

这个是俩种测量方式,就是精度的区别

0d30f4b8-5318-11ee-a25d-92fbcf53809c.png

具体的测量方式在这里

0d5a5e52-5318-11ee-a25d-92fbcf53809c.png

这个是驱动的流程框图

0d86a7fa-5318-11ee-a25d-92fbcf53809c.png

GPIO的引脚

0da12aee-5318-11ee-a25d-92fbcf53809c.png

测量公式

0dcd2b44-5318-11ee-a25d-92fbcf53809c.png

支持DMA的传输方式

0df31f70-5318-11ee-a25d-92fbcf53809c.png

还支持数据的滤波

0e13a0ec-5318-11ee-a25d-92fbcf53809c.png

直接中断

0e4d6638-5318-11ee-a25d-92fbcf53809c.png

我这里就随便写个寄存器

0e636a14-5318-11ee-a25d-92fbcf53809c.png

这是所有的寄存器

0e9c6f8a-5318-11ee-a25d-92fbcf53809c.png

OKOK,具体的手册就是这样了,因为就是个转换器而已,手册里面没有过多的说明一些技术的细节,接下来的任务是看,IDF SDK的ADC API

0ed766a8-5318-11ee-a25d-92fbcf53809c.png

就是这里了,我们直接看

0ef888a6-5318-11ee-a25d-92fbcf53809c.png

这个就是ADC的创建实例

0f16d63a-5318-11ee-a25d-92fbcf53809c.png

里面包括的内容

0f3f5a88-5318-11ee-a25d-92fbcf53809c.png

细分到一个

0f603500-5318-11ee-a25d-92fbcf53809c.png

这是ADC的初始化配置结构,第一个参数是要启用的ADC单元,在下面有

0f8f4c6e-5318-11ee-a25d-92fbcf53809c.png

第二个参数是时钟

0fb63266-5318-11ee-a25d-92fbcf53809c.png

超低功耗协处理器 (ULP, Ultra-Low-Power coprocessor) 是一种功耗极低的处理器设备,可在芯片进入 Deep-sleep 时保持上电(详见章节 10 低功耗管理 (RTC_CNTL)),允许开发者通过存储在 RTC 存储器中的专用程序,访问 RTC 外设、内部传感器及 RTC 寄存器。在对功耗敏感的场景下,主 CPU 处于睡眠状态以降低功耗,协处理器可以由协处理器定时器唤醒,通过控制 RTC GPIO、RTC I2C、SAR ADC、温度传感器 (TSENS) 等外设监测外部环境或与外部电路进行交互,并在达到唤醒条件时主动唤醒主 CPU。

0fd59872-5318-11ee-a25d-92fbcf53809c.png

这个是配置ULP

0fedfb88-5318-11ee-a25d-92fbcf53809c.png

这就是初始化的时候要写一段语句,点是结构体不需要按照顺序赋值

1013eb2c-5318-11ee-a25d-92fbcf53809c.png

这就是最上面的ADC单元的选择

1034ba32-5318-11ee-a25d-92fbcf53809c.png

这个里面的宏定义

104d02fe-5318-11ee-a25d-92fbcf53809c.png

设置 ADC 的初始配置后,使用adc_oneshot_new_unit()准备好的adc_oneshot_unit_init_cfg_t.如果分配成功,该函数将返回 ADC 单元句柄。

106efe72-5318-11ee-a25d-92fbcf53809c.png

里面的返回值

该函数可能会因参数无效、内存不足等各种错误而失败。具体来说,当要分配的ADC实例已经注册时,该函数将返回ESP_ERR_NOT_FOUND错误。可用 ADC 的数量由 记录SOC_ADC_PERIPH_NUM。

如果之前创建的ADC实例不需要记录器,则应通过调用回收ADC实例adc_oneshot_del_unit(),相关的硬件和软件资源也会被回收。

107e7014-5318-11ee-a25d-92fbcf53809c.png

这个函数太长了,没时间写了,明天一定

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2525

    文章

    48129

    浏览量

    740179
  • 寄存器
    +关注

    关注

    30

    文章

    5037

    浏览量

    117763
  • adc
    adc
    +关注

    关注

    95

    文章

    5653

    浏览量

    539500
  • 乐鑫
    +关注

    关注

    0

    文章

    160

    浏览量

    25215
  • ESP32
    +关注

    关注

    13

    文章

    896

    浏览量

    15818

原文标题:ESP32-S3 ADC外设.1-实例

文章出处:【微信号:TT1827652464,微信公众号:云深之无迹】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ESP32ESP32-S3是否有类似ARM的位带操作?

    目前有个项目不可避免的要在中断函数内处理大量位操作。为了减少开销,我们想知道ESP32ESP32-S3,是否有类似ARM的位带区和位带别名区,或者类似的区域能够通过地址直接读取数据的某一位?目前使用的版本是release/v4.4 在
    发表于 02-14 08:11

    使用VScode编辑和编译esp32-s3,目标设备选择esp32-s3时报错如何解决?

    使用VS code编辑和编译esp32-s3,目标设备选择esp32-s3时报错,报错信息如附件图 使用esp32-s2时编译和下载运行都没问题。编译esp32-s3时报错:espto
    发表于 02-16 07:37

    ESP32-S3有DAC吗?

    ESP32-S3有DAC吗,有些地方写有DAC,有些地方没写DAC,
    发表于 02-17 08:05

    ESP32-S3 ADC读取问题求解

    我正在尝试测试 ESP32-S3 中的 ADC 功能。下面是我的测试代码。我正在使用 GPIO4。当我尝试在 GPIO4 中运行 0V 时,我读取了一段时间大约为零的值,然后我读取了大约 400 的原始值一段时间,然后又回到零,这种行为会重复。有没有人知道这里发生了什么?
    发表于 02-28 06:01

    ESP32-S3哪些GPIO可以连接到那些PWM输出?

    只需要一份包含 ESP32-S3 外设及其相关 GPIO 表的文档。例如,哪些 GPIO 连接到 PWM 输出。
    发表于 03-01 08:18

    为什么ADC在定制板上对ESP32-S3上的触摸信号不起作用?

    已经查看了硬件设计指南,但找不到任何具体说明它为什么不工作的原因。为什么 ADC 在我的定制板上对 ESP32-S3 上的触摸信号不起作用,而它在开发板上可以工作,这可能是什么原因?
    发表于 03-01 07:38

    ESP32-S3/C3上的RSA外围设备比S2慢50%的原因?

    ) 的 esp_mpi_enable_hardware_hw_op() 函数启用它。我遇到的问题/疑问是为什么与 ESP32-S2 相比,ESP32-S3ESP32-C3 的性能
    发表于 04-12 07:39

    ESP32-S3(ESP32-S2,ESP32)在商用触摸按键面板上使用安全吗?

    ESP32ESP32-S2 和 ESP32-S3 的数据表中提到:[indent]ESP32-S3(ESP32-S2,
    发表于 04-12 07:03

    ESP32-S3 ADC读取问题求解

    我正在尝试测试ESP32-S3 中的 ADC 功能。下面是我的测试代码。我正在使用 GPIO4。当我尝试在 GPIO4 中运行 0V 时,我读到的值有一段时间大约为零,然后我读到的原始值大约为 400 一段时间,然后又回到零,这种行为会重复。有谁知道这里发生了什么吗?
    发表于 04-12 06:34

    为什么ADC在定制板上对ESP32-S3上的触摸信号不起作用?

    ,但找不到任何具体说明它为什么不工作的原因。为什么 ADC 在我的定制板上对 ESP32-S3 上的触摸信号不起作用,而它在开发板上可以工作,这可能是什么原因?
    发表于 04-12 07:06

    ESP32-S3技术参考手册

    ESP32­S3 技术参考手册面向使用 ESP32-S3 系列产品进行底层软件开发的人员,介绍了 ESP32-S3 系列产品中内置的硬件模块,包括概述、功能列表、硬件架构、编程指南、寄
    发表于 09-18 08:15

    ESP32-S3技术规格书

    ESP32-S3 是一款低功耗的 MCU 系统级芯片 (SoC),支持 2.4 GHz Wi-Fi 和低功耗蓝牙 (Bluetooth® LE) 无线通信。芯片集成了高性能的 Xtensa® 32 位 LX7 双核处理器、超低功耗协处理器、Wi-Fi 基带、蓝牙基带、RF 模块以及
    发表于 09-18 07:53

    ESP32-S3硬件设计指南

    本文提供基于 ESP32-S3 的硬件设计的指导规范。ESP32-S3 是一款具有超高性能的 Wi-Fi +Bluetooth® 5 (LE) 系统级芯片。这些规范将帮助您提升原理图和 PCB 版图设计的准确性。
    发表于 09-18 08:06

    合宙ESP32-S3开发板特性解读

    穿越万水千山,奔赴与工程师朋友的约定——合宙ESP32-S3超值MCU开发板,来了! 1 合宙ESP32-S3开发板简介 合宙CORE-ESP32S3是基于乐鑫ESP32-S3芯片进行
    的头像 发表于 01-11 18:45 8433次阅读

    新品上市 | 合宙ESP32-S3开发板

    穿越万水千山,奔赴与工程师朋友的约定——合宙ESP32-S3超值MCU开发板,来了!1合宙ESP32-S3开发板简介合宙CORE-ESP32S3是基于乐鑫ESP32-S3芯片进行设计的
    的头像 发表于 01-13 15:53 1758次阅读
    新品上市 | 合宙<b class='flag-5'>ESP32-S3</b>开发板