博客專欄

EEPW首頁 > 博客 > 封神!Air780E模組LuatOS開發(fā):ADC應(yīng)用實(shí)例

封神!Air780E模組LuatOS開發(fā):ADC應(yīng)用實(shí)例

發(fā)布人:13673998452 時(shí)間:2025-01-12 來源:工程師 發(fā)布文章

今天學(xué)習(xí)一個新的示例,關(guān)于Air780E模組LuatOS開發(fā)的ADC應(yīng)用實(shí)例,希望大家有所收獲。

 

1、模數(shù)轉(zhuǎn)換(ADC)概述

 

1.1 ADC簡介

ADC通常指模擬/數(shù)字轉(zhuǎn)換器,是指將連續(xù)變量的模擬信號轉(zhuǎn)換為離散的數(shù)字信號的器件。Cat.1模塊ADC接口主要用來檢測模擬電壓信號量,用于電池電壓檢測,溫濕度檢測,TDS檢測等應(yīng)用。

1.2 ADC接口介紹

根據(jù)Air780E產(chǎn)品手冊內(nèi)《Air780E_硬件設(shè)計(jì)手冊_V1.3.3.pdf》可知:

(1)Air780E內(nèi)部ADC接口精度為12bits外部直流分壓為0-3.4V

(2)Air780E內(nèi)部具有2個ADC接口,ADC0--AIO3ADC1--AIO4

(3)兩個特殊通道,CPU內(nèi)部溫度Temp--adc.CH_CPU主供電腳電壓VBAT--adc.CH_VBAT

注意事項(xiàng):設(shè)置分壓(adc.setRange)要在adc.open之前設(shè)置,否則無效!!Air780E內(nèi)部具有2個ADC接口,ADC0和ADC1,如下圖紅框所示:

wKgZoWcwySWAdc3CAA-bS5z-qqw458.png

1.3 輸入電壓的范圍

Air780E關(guān)閉分壓后,量程范圍0~1.1V注意:外接輸入電壓切記不可超過量程,否則有燒毀風(fēng)險(xiǎn)?。。?/p>

adc.setRange(adc.ADC_RANGE_1_2)--air780E關(guān)閉ADC0,1分壓電阻,范圍0~1.1Vadc.setRange(adc.ADC_RANGE_3_8)--air780E開啟ADC0,1分壓電阻,范圍0~3.2V

 

2、演示功能概述


本章節(jié)演示了Air780E內(nèi)部2個ADC接口,以及2個特殊通道:CPU內(nèi)部溫度Temp--adc.CH_CPU主供電腳電壓VBAT--adc.CH_VBAT的使用教程。

2.1 通過adc.get()讀取ADC的外部輸入模擬電壓

注:啟用分壓后量程最高也只能到達(dá)3.2V,若想測量更高的外部電源電壓,需要外接分壓電阻,具體設(shè)計(jì)請參考ADC接口設(shè)計(jì)指導(dǎo);本教程外部輸入電壓在3.2v以內(nèi),需要外部電源與模組共地,保持參考電壓一致。

2.2 通過adc.get(adc.CH_VBAT)讀取供電電壓

2.3 通過adc.get(adc.CH_CPU)讀取CPU溫度

 

3、準(zhǔn)備硬件環(huán)境

 

3.1 開發(fā)板準(zhǔn)備

使用Air780E核心板,

此核心板的詳細(xì)使用說明參考:
https://docs.openluat.com/air780e/product/

 

3.2 數(shù)據(jù)通信線

USB轉(zhuǎn)typeC數(shù)據(jù)線一根。

 

3.3 PC電腦

WINDOWS系統(tǒng),其他暫無特別要求。

 

3.4 直流穩(wěn)壓電源

功耗分析儀Air9000P:

wKgZomcwyWSABgDtAAOU1LzlL6I572.png

 

4、準(zhǔn)備軟件環(huán)境

 

4.1 下載調(diào)試工具

使用說明參考:

Luatools下載和詳細(xì)使用

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

4.2 源碼及固件

4.2.1 底層core下載地址:LuatOS固件版本下載地址

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

wKgaomcwyXeAVu1dAAHZOVUeEJI798.png

本demo使用的固件是core_V1112壓縮包內(nèi)的LuatOS-SoC_V1112_EC618_FULL.soc

4.2.2 本教程使用的demo:

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

4.2.3 下載源碼和固件

 

5、模數(shù)轉(zhuǎn)換(ADC)軟硬件資

 

5.1 API接口介紹

本教程使用api接口為:adc-模數(shù)轉(zhuǎn)換-LuatOS文檔

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

5.2 Air780E燒錄說明

將Air780E通過通過usb數(shù)據(jù)線連接電腦,如下圖所示:

注:1、按住下載模式按鍵(boot鍵)不放,同時(shí)再長按開機(jī)鍵開機(jī),這時(shí)開發(fā)板會進(jìn)入下載模式,Luatools下載進(jìn)度條會開始跑,這時(shí)可以松開boot按鍵。直到工具提示下載完成。2、如果,未能成功進(jìn)入下載模式,而是進(jìn)入正常開機(jī)模式,這時(shí)可以按住boot鍵,再短按復(fù)位按鍵,讓開發(fā)板重啟,重新進(jìn)入下載模式。

wKgZomcwyZeAHb__AAjbvuLz_84820.png

如何判斷有沒有進(jìn)入下載模式:可以通過PC端的設(shè)備管理器中虛擬出來的USB端口數(shù)量來判斷。

正常開機(jī)模式:

wKgZoWcwycCASutKAAIthmpHtjY177.png

下載模式:

wKgaoWcwybaAGkhxAAHJZklB7TQ096.png

 

6、代碼示例介紹

 

6.1 讀取adc外部輸入模擬電壓

6.1.1 代碼介紹

adc.open()開啟ADC后,通過adc.get(1)獲取ADC1的輸入模擬電壓值。

wKgaoWcwydSAXn2OAAJCWSONv_A591.png

6.1.2 運(yùn)行結(jié)果展示

可以將adc0/adc1外接穩(wěn)壓電源供電,注意供電不可超過量程?。ū臼纠龁⒂梅謮汉罅砍?~3.2V),本示例將adc1輸入3V(電源正極接adc1,負(fù)極接GND),查看luatools的log如下(返回值單位為mV):

wKgaoWcwyeGAFGSPAAko9ZdCBpw090.pngwKgZoWcwyeuAOpXLAAdDqYcuOBI511.png

6.2 讀取供電電壓

6.2.1 代碼介紹

wKgaomcwyfaARvF4AALCUiaKVr0603.png

6.2.2 運(yùn)行結(jié)果展示

通過下圖可以看到,VBAT端供電電壓為4.1V

wKgaomcwyf-AcJgnAATO3_uFxAA483.png

6.3 讀取CPU溫度

6.3.1 代碼介紹

wKgZomcwygiAWDRxAAHRr7rfBoU547.png

6.3.2 運(yùn)行結(jié)果展示

通過下圖可以看到,模組CPU溫度為34攝氏度

wKgaomcwyhKAGiiPAAQ-gfCuxH8886.png

7、總結(jié)

 

本教程簡單舉例了如何讀取adc輸入電壓、讀取供電電壓、讀取CPU溫度,除此之外,adc可以將各種連續(xù)變化的模擬信號(如溫度、濕度、壓力、電壓、電流等)轉(zhuǎn)換為離散的數(shù)字信號,本模塊內(nèi)部ADC精度12bits,對許多應(yīng)用已經(jīng)足夠,如溫濕度傳感器、壓力傳感器、音頻信號處理等,然而對于需要更高精度的應(yīng)用,可以外掛更高精度的ADC,如16位,24位等。使用過程中需注意量程范圍,不可超出量程。

 

8、常見問題

 

8.1 為什么ADC輸入3V,讀取模擬電壓只有1.1V?

未啟用分壓時(shí),量程最高只能到達(dá)1.1V,若想測量3V,需啟用分壓。

8.2 ADC測量電壓來回跳變,為什么?

看外部輸入電壓是否與模塊共地,正常情況需要共地,保持參考電壓一致。

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

adc.read()返回兩個值,一個原始值,一般沒用,可以直接拋棄;另一個是從原始值換算得出的實(shí)際值,通常單位是mV。(僅作了解,不建議使用)adc.get()返回的就是計(jì)算值,通常單位是mV,推薦使用這個接口來獲取電壓值。

分享完畢~


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。




相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉