2017年12月4日 星期一

DIY - ESP8266:ESP-12F ADC 類比數位轉換器(五十)

DIY - ESP8266:ESP-12F ADC 類比數位轉換器(五十):

ESP8266 有一個類比數位轉換器 ADC(Analog digital converter,A0)引腳,ESP-12E 帶 USB CP2102 開發板模塊 A0 是在 Pin 1 位置,而 ESP-12F WiFi 模塊 A0 是在 Pin 2 位置,ADC 可以測量 0 ~ 3.3V 之間的電壓,處理器內建的 10 位元類比數位轉換電路,解析度是 1024(10-bit / 0 ~ 1023 整數數值)。

ESP8266 ESP-12F ADC 輸入腳
ADMUX(ADC Multiplexer Selection Register / ADC 多路復用器選擇寄存器):
ADMUX 控制參考電壓,ADC 轉換(左調整或右調整)和模擬通道選擇的顯示。
ADMUX
bit
7
6
5
4
3
2
1
0
name
REFS1
REFS0
ADLAR
-
MUX3
MUX2
MUX1
MUX0

REFS0 和 REFS1 設置參考電壓(Reference Voltage)。 下表顯示了這些位組合的含義。
REFS1
REFS0
Meanings
Argument of analogReference()
0
0
Voltage applied to AREF pin.
EXTERNAL(0)
0
1
Default referece voltage
DEFAULT(1)
1
0
Reserved.
-
1
1
Internal reference voltage
INTERNAL(3)

ADLAR 確定 ADC 轉換結果的顯示。 如果它是 1,ADC 轉換結果是左調整。 如果為 0,則右鍵調整。 它被設置為 0,由軟件調整。
MUX0 至 MUX3 選擇模擬引腳。如果 MUX3 ... MUX0 為 1000,則讀取內部溫度傳感器的值。 但是讀取內部溫度傳感器的能力是在程式軟件中進行的。MUX3
MUX2
MUX1
MUX0
Analog Pin
0
0
0
0
0
0
0
0
1
1
0
0
1
0
2
0
0
1
1
3
0
1
0
0
4
0
1
0
1
5

ADCSRA(ADC Control and Status Register A / ADC 控制和狀態寄存器A):
ADCSRA 是控制 AD 轉換的寄存器。
ADCSRA
bit
7
6
5
4
3
2
1
0
name
ADEN
ADSC
ADATE
ADIF
ADIE
ADPS2
ADPS1
ADPS0
將 ADEN 設置為 1 將啟用 AD 轉換。 從 main()調用的 init()設置該位。 將 ADSC(ADC 啟動轉換)設置為 1,芯片開始 AD 轉換。 在執行 AD 轉換時,該位為 1,轉換後,變為 0。 

ADATE(ADC 自動觸發使能)控制 AD 轉換的自動觸發。 該位不被軟件使用。 ADIF(ADC 中斷標誌)和 ADIE(ADC 中斷使能)控制中斷。 這些位不被軟件使用。 ADPS 是確定係統時鐘頻率和 AD 轉換器輸入時鐘之間分頻係數的位。
ADPS2
ADPS1
ADPS0
Division Factor
0
0
0
2
0
0
1
2
0
1
0
4
0
1
1
8
1
0
0
16
1
0
1
32
1
1
0
64
1
1
1
128

要獲得 10bit 的精度,必須提供從 50kHz 到 200kHz 的時鐘。 如果你需要更少的精度,你可以提供更高的時鐘。 軟件將 ADPS 設置為 0b011,即分頻係數為 128。由於使用 16Mhz 系統時鐘,AD 轉換時鐘為 125kHz(= 16MHz/128),需要 13 個時鐘進行轉換,需要用0.000104秒(= 1/125kHz*13)或 104 微秒來執行 AD 轉換。

ADCH,ADCL:
ADCH 和 ADCL 是存儲 AD 轉換結果的寄存器。 ADMUX 寄存器的 ADLAR 位控制結果的存儲方式。軟件將 ADLAR 設置為 0,轉換結果的前 2位存儲在 ADXH中,其餘 8位存儲在 ADXL 中。

2017年 12月 4日 天氣報告
氣溫:20.2@ 20:20
相對濕度:百分之 71%
天氣:天色大致良好

沒有留言:

張貼留言