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

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

3天内不再提示

LuatOS与ADC:Air780E模组开发的新篇章!

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2024-11-07 14:12 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

今天我们学习的是Air780E模组LuatOS开发之ADC应用,希望能帮助到大家。

1、模数转换(ADC)概述

1.1 ADC简介

ADC通常指模拟/数字转换器,是指将连续变量的模拟信号转换为离散的数字信号的器件。Cat.1模块ADC接口主要用来检测模拟电压信号量,用于电池电压检测,温湿度检测,TDS检测等应用。

1.2 ADC接口介绍

根据Air780E产品手册内《Air780E_硬件设计手册_V1.3.3.pdf》可知:

(1)Air780E内部ADC接口精度为12bits外部直流分压为0-3.4V

(2)Air780E内部具有2个ADC接口,ADC0--AIO3ADC1--AIO4

(3)两个特殊通道,CPU内部温度Temp--adc.CH_CPU主供电脚电压VBAT--adc.CH_VBAT

注意事项:设置分压(adc.setRange)要在adc.open之前设置,否则无效!!Air780E内部具有2个ADC接口,ADC0和ADC1,如下图红框所示:

wKgaoWcsWPaABylZAA5nnQ1hdAA273.png

1.3 输入电压的范围

Air780E关闭分压后,量程范围0~1.1V注意:外接输入电压切记不可超过量程,否则有烧毁风险!!!

adc.setRange(adc.ADC_RANGE_1_2)--air780E关闭ADC0,1分压电阻,范围0~1.1Vadc.setRange(adc.ADC_RANGE_3_8)--air780E开启ADC0,1分压电阻,范围0~3.2V

2演示功能概述

本章节演示了Air780E内部2个ADC接口,以及2个特殊通道:CPU内部温度Temp--adc.CH_CPU主供电脚电压VBAT--adc.CH_VBAT的使用教程。

2.1 通过adc.get()读取ADC的外部输入模拟电压

注:启用分压后量程最高也只能到达3.2V,若想测量更高的外部电源电压,需要外接分压电阻,具体设计请参考ADC接口设计指导;本教程外部输入电压在3.2v以内,需要外部电源与模组共地,保持参考电压一致。

2.2 通过adc.get(adc.CH_VBAT)读取供电电压

2.3 通过adc.get(adc.CH_CPU)读取CPU温度

2、演示功能概述

本章节演示了Air780E内部2个ADC接口,以及2个特殊通道:CPU内部温度Temp--adc.CH_CPU主供电脚电压VBAT--adc.CH_VBAT的使用教程。

2.1 通过adc.get()读取ADC的外部输入模拟电压

注:启用分压后量程最高也只能到达3.2V,若想测量更高的外部电源电压,需要外接分压电阻,具体设计请参考ADC接口设计指导;本教程外部输入电压在3.2v以内,需要外部电源与模组共地,保持参考电压一致。

2.2 通过adc.get(adc.CH_VBAT)读取供电电压

2.3 通过adc.get(adc.CH_CPU)读取CPU温度

3、准备硬件环境

3.1 开发板准备

使用Air780E核心板,

此核心板的详细使用说明参考:
https://docs.openluat.com/air780e/product/

Air780E产品手册中的<<开发板Core_Air780E使用说明VX.X.X.pdf>>,写这篇文章时最新版本的使用说明为:<<开发板Core_Air780E使用说明V1.0.5.pdf>>;核心板使用过程中遇到任何问题,可以直接参考这份使用说明pdf文档。

3.2 数据通信线

USB转typeC数据线一根。

3.3 PC电脑

WINDOWS系统,其他暂无特别要求。

3.4 直流稳压电源

功耗分析仪Air9000P:

wKgZoWcsWS-AHYN-AANRqcR6byQ284.png

4、准备软件环境

4.1 下载调试工具

使用说明参考:

Luatools下载和详细使用

https://docs.openluat.com/Luatools/

4.2 源码及固件

4.2.1 底层core下载地址:LuatOS固件版本下载地址

https://docs.openluat.com/air780e/luatos/firmware/

wKgZoWcsWUWAWB0LAAHdS2BKAXY871.png

本demo使用的固件是core_V1112压缩包内的LuatOS-SoC_V1112_EC618_FULL.soc

4.2.2 本教程使用的demo:

https://gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/adc

4.2.3 下载源码和固件

5、模数转换(ADC)软硬件资

5.1 API接口介绍

本教程使用api接口为:adc-模数转换-LuatOS文档

https://wiki.luatos.com/api/adc.html?highlight=adc

5.2 Air780E烧录说明

将Air780E通过通过usb数据线连接电脑,如下图所示:

注:1、按住下载模式按键(boot键)不放,同时再长按开机键开机,这时开发板会进入下载模式,Luatools下载进度条会开始跑,这时可以松开boot按键。直到工具提示下载完成。2、如果,未能成功进入下载模式,而是进入正常开机模式,这时可以按住boot键,再短按复位按键,让开发板重启,重新进入下载模式。

wKgaoWcsWWaAdq0DAAh6qZY9h9s829.png

如何判断有没有进入下载模式:可以通过PC端的设备管理器中虚拟出来的USB端口数量来判断。

正常开机模式:

wKgaoWcsWXSAUF1bAAOpYYVKLPU105.png

6、代码示例介绍

6.1 读取adc外部输入模拟电压

6.1.1 代码介绍

adc.open()开启ADC后,通过adc.get(1)获取ADC1的输入模拟电压值。

wKgaoWcsWZuAe5qOAAITNJhdZ1k762.png

6.1.2 运行结果展示

可以将adc0/adc1外接稳压电源供电,注意供电不可超过量程!(本示例启用分压后量程0~3.2V),本示例将adc1输入3V(电源正极接adc1,负极接GND),查看luatools的log如下(返回值单位为mV):

wKgZoWcsWamANjLwAAj-kVAoVcI979.png

wKgaomcsWbWAWEMFAAa0hULp1AA833.png

6.2 读取供电电压

6.2.1 代码介绍

wKgaomcsWcOAHG0wAAKHZuPHYwA810.png

6.2.2 运行结果展示

通过下图可以看到,VBAT端供电电压为4.1V

wKgZomcsWc6AN8qDAARvcJfYOhg058.png

6.3 读取CPU温度

6.3.1 代码介绍

wKgaomcsWdiASmtIAAGinmB2Xrk197.png

6.3.2 运行结果展示

通过下图可以看到,模组CPU温度为34摄氏度

wKgaomcsWeGAEZjCAAPiOp2XFPk589.png

7、总结

本教程简单举例了如何读取adc输入电压、读取供电电压、读取CPU温度,除此之外,adc可以将各种连续变化的模拟信号(如温度、湿度、压力、电压、电流等)转换为离散的数字信号,本模块内部ADC精度12bits,对许多应用已经足够,如温湿度传感器压力传感器音频信号处理等,然而对于需要更高精度的应用,可以外挂更高精度的ADC,如16位,24位等。使用过程中需注意量程范围,不可超出量程。

8、常见问题

8.1 为什么ADC输入3V,读取模拟电压只有1.1V?

未启用分压时,量程最高只能到达1.1V,若想测量3V,需启用分压。

8.2 ADC测量电压来回跳变,为什么?

看外部输入电压是否与模块共地,正常情况需要共地,保持参考电压一致。

8.3 adc.read()和adc.get()要用哪一个?

adc.read()返回两个值,一个原始值,一般没用,可以直接抛弃;另一个是从原始值换算得出的实际值,通常单位是mV。(仅作了解,不建议使用)adc.get()返回的就是计算值,通常单位是mV,推荐使用这个接口来获取电压值。

审核编辑 黄宇

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

    关注

    15

    文章

    5635

    浏览量

    124948
  • 模组
    +关注

    关注

    6

    文章

    1814

    浏览量

    32424
  • LuatOS
    +关注

    关注

    0

    文章

    180

    浏览量

    2768
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    LuatOS:485 总线硬件设计要点与 exmodbus 库开发实战

    在工业物联网通信开发中,485 总线与 Modbus 协议的组合应用十分常见。本文以合宙 Air780EHV 系列模组为实例,围绕 LuatOS
    的头像 发表于 03-19 17:57 303次阅读
    <b class='flag-5'>LuatOS</b>:485 总线硬件设计要点与 exmodbus 库<b class='flag-5'>开发</b>实战

    LuatOS选型指南:基于Air780EPM的32/64位性能实测分析

    面对32位与64位LuatOS固件的选择难题,本文通过在Air780EPM开发板上的实际测试,详细解析两者在整数处理能力、浮点数精度以及系统性能方面的差异,结合应用场景给出专业建议,助力开发
    的头像 发表于 02-25 18:05 399次阅读
    <b class='flag-5'>LuatOS</b>选型指南:基于<b class='flag-5'>Air780</b>EPM的32/64位性能实测分析

    迅为Hi3403开发板驱动教程全面上线,开启嵌入式Linux开发新篇章

    迅为iTOP-Hi3403开发板linux驱动教程全面上线,开启嵌入式Linux开发新篇章
    的头像 发表于 12-18 14:23 1020次阅读
    迅为Hi3403<b class='flag-5'>开发</b>板驱动教程全面上线,开启嵌入式Linux<b class='flag-5'>开发</b><b class='flag-5'>新篇章</b>!

    ADC模数转换实战:硬件设计与软件开发要点指南!

    ADC硬件设计与软件开发的关键要点,为开发者提供ADC转换的实战指导。 本文将分享硬件参考设计及LuatOS
    的头像 发表于 12-16 13:25 650次阅读
    <b class='flag-5'>ADC</b>模数转换实战:硬件设计与软件<b class='flag-5'>开发</b>要点指南!

    构建可靠USB应用:硬件设计要点与LuatOS开发技巧!

    指导。 本文以Air780EPM系列低功耗模组为例,分享USB接口的硬件设计要点以及LuatOS高效开发API,帮助开发者在设计中避开常见陷
    的头像 发表于 12-15 10:46 415次阅读
    构建可靠USB应用:硬件设计要点与<b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>技巧!

    一文搞懂Air780EPM的NTP通信:LuatOS脚本开发教程

     想在Air780EPM上用LuatOS实现NTP时间同步?这篇教程将用最通俗的方式讲解实现原理与代码实现,让你快速掌握关键技能。 一、NTP通信概述   1.1 NTP 网络时间协议(英语
    的头像 发表于 09-30 18:19 2380次阅读
    一文搞懂<b class='flag-5'>Air780</b>EPM的NTP通信:<b class='flag-5'>LuatOS</b>脚本<b class='flag-5'>开发</b>教程

    Air780EPM嵌入式开发LuatOS下的MQTT通信实践

    通过LuatOS脚本在Air780EPM开发板上实现MQTT通信,是物联网设备开发中高效且便捷的解决方案。 一、MQTT 协议详解   1.1 什么是 MQTT? MQTT(Messa
    的头像 发表于 09-30 16:11 2094次阅读
    <b class='flag-5'>Air780</b>EPM嵌入式<b class='flag-5'>开发</b>:<b class='flag-5'>LuatOS</b>下的MQTT通信实践

    Air780EPM开发板NTP对时教程:LuatOS脚本开发入门指南

    通过简单的LuatOS脚本,Air780EPM即可实现NTP时间同步。本指南从零开始,带你掌握嵌入式设备联网校时的核心方法。 一、NTP通信概述 1.1 NTP 网络时间协议(英语:Network
    的头像 发表于 09-30 16:01 1405次阅读
    <b class='flag-5'>Air780</b>EPM<b class='flag-5'>开发</b>板NTP对时教程:<b class='flag-5'>LuatOS</b>脚本<b class='flag-5'>开发</b>入门指南

    LuatOS嵌入式开发实战:Air780EPM与MQTT通信

     本教程聚焦于LuatOSAir780EPM开发板上的应用,演示如何通过脚本实现MQTT协议通信,助力物联网设备快速联网。 一、MQTT 协议详解   1.1 什么是 MQTT? MQTT
    的头像 发表于 09-29 18:10 738次阅读
    <b class='flag-5'>LuatOS</b>嵌入式<b class='flag-5'>开发</b>实战:<b class='flag-5'>Air780</b>EPM与MQTT通信

    Air780EPM开发板FTP功能实战:LuatOS嵌入式开发全解析

    本文深入讲解Air780EPM模组LuatOS环境下的FTP应用开发,涵盖AT指令配置、网络连接与文件传输流程,助你高效完成嵌入式通信项目。 一、什么是 FTP   1.1 基本概念
    的头像 发表于 09-29 15:37 699次阅读
    <b class='flag-5'>Air780</b>EPM<b class='flag-5'>开发</b>板FTP功能实战:<b class='flag-5'>LuatOS</b>嵌入式<b class='flag-5'>开发</b>全解析

    LuatOS Air780EPM 开发板 HTTP 教程:原理讲解与项目实操!

    本篇教程将系统介绍 LuatOS Air780EPM 在 HTTP 通信中的应用,从请求机制到响应解析,配合完整代码演示,让你轻松实现设备端与云端的数据交互。 一、HTTP 概述 1.1
    的头像 发表于 09-26 20:36 1370次阅读
    <b class='flag-5'>LuatOS</b> <b class='flag-5'>Air780</b>EPM <b class='flag-5'>开发</b>板 HTTP 教程:原理讲解与项目实操!

    揭秘Air780EGH定位功能:源码开放助力极速开发

    的相关要点。 最新源码及实操教程详见: https://docs.openluat.com/air780egh/luatos/app/gnss/
    的头像 发表于 07-29 16:11 950次阅读
    揭秘<b class='flag-5'>Air780</b>EGH定位功能:源码开放助力极速<b class='flag-5'>开发</b> !

    语音技术新篇章,音频电路参考设计必读指南!

    面对全场景语音交互的爆发需求,硬件设计需同步迭代。本文聚焦音频电路核心模块,剖析参数配置与调试技巧,助力开发者快速搭建适配多场景的高品质声学解决方案。 Air780EHV音频电路参考设计中要注意
    的头像 发表于 07-03 16:20 896次阅读

    优化你的设计:Air780EPM场景化ADC硬件电路指南!

    Air780EPM的ADC精度怎么样,想节约一颗外挂ADC…   今天也跟大家一起分享下相关内容。在设计ADC硬件电路之前,请务必先查看LuatO
    的头像 发表于 06-13 18:02 1110次阅读
    优化你的设计:<b class='flag-5'>Air780</b>EPM场景化<b class='flag-5'>ADC</b>硬件电路指南!

    Air780EPM — ADC硬件电路设计:场景化优化与实践!

    Air780EPM的ADC精度怎么样,想节约一颗外挂ADC…   今天也跟大家一起分享下相关内容。在设计ADC硬件电路之前,请务必先查看Luat
    的头像 发表于 06-11 14:40 851次阅读
    <b class='flag-5'>Air780</b>EPM — <b class='flag-5'>ADC</b>硬件电路设计:场景化优化与实践!