來源:韋東山嵌入式專欄_ARM裸機加強版維基教程
作者:韋東山
本文字數:801,閱讀時長:2分鐘
ADC硬件原理模數轉換器即A/D轉換器,或簡稱ADC,通常是指一個将模拟信号轉變為數字信号的電子元件。通常的模數轉換器是把經過與标準量比較處理後的模拟量轉換成以二進制數值表示的離散信号的轉換器。故任何一個模數轉換器都需要一個參考模拟量作為轉換的标準,比較常見的參考标準為最大的可轉換信号大小。而輸出的數字量則表示輸入信号相對于參考信号的大小。
如圖,是把可變電阻上的電壓值變換的模拟信号通過ADC轉換,輸出數字信号。
對于數字信号我們需要得到它的幾個屬性
- 用多少位來存儲這個數據(假設10bit)。
- 最大值0b111111111
- 它對應的電壓是多少伏(模拟信号輸入的最大值是多少)我們就可以根據模拟信号(電壓)的最大值,來計算出對應的數值。
- 采樣/轉換速度。
對于程序員,我們不關心ADC的内部機制,我們隻關心:
- 怎麼啟動ADC
- 啟動之後怎麼得到數據,總之:我們都是通過寄存器操作的。
1-1-1
從圖1-1-1可以看出ADC有8個多路選擇器,顯然,以後我們寫程序的時候,我們可以8個多路選擇之一,下面是編寫程序要做的步驟:
ADC寄存器介紹
- 确定是哪一路信号:設置8:1MUX,選擇要測量哪一個引腳,(看原理圖選擇要測量的引腳)
- 設置工作時鐘(從工作室中,可以算出轉換一次,需要多長時間)
- 啟動
- 讀狀态,判斷ADC轉換是否成功。
- 讀數據
1.ADC 控制寄存器(ADCCON)
ADCCON控制寄存器,用于标志轉換是否完成,控制是否使能預分頻器,輸入通道選擇,工作模式,ADC是否啟動。它的各位含義如下圖所示。
2.ADC 啟動延時寄存器(ADCDLY)
ADCDLY 啟動延時寄存器用于啟動或初始化延時寄存器。它的各位含義如下圖所示
3.ADC 轉換數據寄存器(ADCDAT0)
ADCDAT0轉換數據寄存器,本節中隻用到該寄存器的前10位(用于保存轉換後的結果)。
「新品首發」STM32MP157開發闆火爆預售!首批僅300套
點擊“了解更多”閱讀更多相關文章,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!