第一節 S5PV210的ADC
S5PV210的ADC可支持10bit和12bit,它支持10路輸入,然后將輸入的模擬的信號轉換為10bit或者12bit的二進制數字信號。
在5MHz的時鐘下,最大轉換速率是1MSPS。本章只是涉及到初步的ADC轉換,并不會講解觸摸屏相關知識,其結構圖如下:
在Mini210S中,adc相關的原理圖如下:
通道0的輸入被接到可調電阻上,通過調節可調電阻,adc能轉換出不同的值。
第二節 程序相關講解
完整代碼見詳細代碼下載鏈接。
1. main.c
main()函數很簡單,主要是調用了adc_test()函數來測試adc,adc_test()的定義位于文件adc.c中。
2. adc.c
函數adc_test()的代碼如下:
void adc_test(void)
{
printf('rn##################adc test################rn');
while(1)
{
printf('adc = %drn',read_adc(0));
delay(0x100000);
}
}
通過一個while循環不斷的讀取通道0經過adc轉換的值,核心函數是read_adc(),它主要包括5個步驟:
第一步 設置時鐘。
相關代碼如下:
TSADCCON0 = (1<<16)|(1 << 14) | (65 << 6);
首先使用12bit adc,然后使能分頻,最后設置分頻系數為66。
第二步 選擇通道。
代碼如下:
ADCMUX = 0; //設置寄存器ADCMUX,選擇通道0。
第三步 啟動轉換。
代碼如下:
TSADCCON0 |= (1 << 0);
while (TSADCCON0 & (1 << 0));
首先設置寄存器TSADCCON0的bit[0],啟動A/D轉換,然后讀bit[0]以確定轉換已經啟動。
第四步 檢查轉換是否完成。
代碼如下:
while (!(TSADCCON0 & (1 << 15)) );
讀寄存器TsdACCON0的bit[15],當它為1時表示轉換結束。
第五步 讀數據。
代碼如下:
return (TsdATX0 & 0xfff);
由于我們使用的12bit的模式,所以只讀寄存器TsdATX0的前12bit。
第三節 實驗現象
串口終端上會不斷的打印出數字,數字的范圍是0~4095,這是因為我們使用的是12bit的ADC。
我們通過調節可變電阻可以改變ACD轉換值。效果如下:
上一篇:WM8960音頻播放
下一篇:S5PV210初始化系統時鐘
- 熱門資源推薦
- 熱門放大器推薦
設計資源 培訓 開發板 精華推薦
- ADP166CB-EVALZ,ADP166 LFCSP LDO 線性穩壓器評估板
- LT1024 的典型應用 - 雙通道、匹配皮安、微伏輸入、低噪聲運算放大器
- 使用 Analog Devices 的 LTC5800IWR-IPRB 的參考設計
- ESP32C3墨水屏擺件
- 語音報警
- 使用 Analog Devices 的 LTC1258CMS8-4.1 的參考設計
- MD1822DB1,基于 MD1822 + TC7920 的演示板:三級高速 100V 2.0A 脈沖發生器
- OM40003: LPCXpresso54018開發板
- REF193 精密微功耗、低壓差電壓基準的典型應用
- TAR5S43 點穩壓器(低壓差穩壓器)的典型應用
- 納祥科技2W 24位數字功放NX4920,可用于AI語音播報、WIFI播放器
- 常用解調器的定義和工作原理
- 從性能與網絡傳輸出發,講講鐵威馬MAX系列為什么一騎絕塵
- 惠普選中Hailo下一代人工智能加速器,革新零售業與酒店業運營模式
- 跨國商務溝通困局破解之道:時空壺 W4Pro 全場景應用解析
- 從矢量降噪到雙向同傳,時空壺 W4Pro 如何重構 AI 同傳技術標準?
- LoRa+NB-IoT雙模融合,地下車庫信號盲區電梯場景等的冗余通信
- LoRa與UWB的“定位之戰”,成本敏感場景高精度需求的場景切割
- 時空壺X1再升級:引領AI同傳新時代,革新演講翻譯體驗
- ARXML 規則下 ECU 總線通訊與 ADTF 測試方案