ESP32-S3 ADC外设实例

描述

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

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

ESP32

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

ESP32

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

ESP32

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

ESP32

具体的测量方式在这里

ESP32

这个是驱动的流程框图

ESP32

GPIO的引脚

ESP32

测量公式

ESP32

支持DMA的传输方式

ESP32

还支持数据的滤波

ESP32

直接中断

ESP32

我这里就随便写个寄存器

ESP32

这是所有的寄存器

ESP32

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

ESP32

就是这里了,我们直接看

ESP32

这个就是ADC的创建实例

ESP32

里面包括的内容

ESP32

细分到一个

ESP32

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

ESP32

第二个参数是时钟源

ESP32

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

ESP32

这个是配置ULP

ESP32

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

ESP32

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

ESP32

这个里面的宏定义

ESP32

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

ESP32

里面的返回值

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

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

ESP32

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

 

  审核编辑:汤梓红

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分