日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

s5pv210——AD转换

發布時間:2023/12/20 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 s5pv210——AD转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以下內容源于朱有鵬嵌入式課程的學習,如有侵權,請告知刪除。

參考博客http://www.cnblogs.com/biaohc/p/6286569.html


一、ADC的主要相關概念

1、量程(模擬量輸入范圍)

(1)AD轉換器只能輸入電壓信號。

  • 其他種類的模擬信號要先經過傳感器(Sensor)的轉換,變成模擬的電壓信號。

(2)AD輸入端的模擬電壓要求有一個范圍。

  • 一般是0~3.3V或0~5V或者是0~12V等等。
  • 模擬電壓的范圍是AD芯片本身的一個參數。
  • 實際工作時給AD的電壓信號不能超過這個電壓范圍。


2、精度(分辨率resolution)

(1)AD轉換輸出的數字值是有一定的位數的。

  • 譬如說10位,意思就是輸出的數字值是用10個二進制位來表示的,這種就叫10位AD。這個位數表示轉換精度。
  • 10位AD,相當于把整個范圍分成1024個格子,每個格子之間的間隔就是電壓的表示精度。假如AD芯片的量程是0~3.3V,則每個格子代表的電壓值是3.3V/1024=0.0032265V。如果此時AD轉換后得到的數字量是447,則這個數字量代表的模擬值是:447×0.0032265V=1.44V。
(2)AD的位數越多,則每個格子表示的電壓值越小,將來算出來的模擬電壓值就越精確。

(3)AD的模擬量程一樣的情況下,AD精度位數越多精度越高,測出來的值越準。

  • 但是如果AD的量程不一樣,譬如2個AD,A的量程是0~50V,B的量程是0~0.5V,A是12位的,B是10位的,可能B的精度比A的還要高。
  • A的精度:50/1024=0.04883,B的精度:0.5/4096=0.000122


3、轉換速率

(1)AD芯片進行AD轉換需要耗費時間。

  • 這個時間需要多久,不同的芯片是不一樣的;
  • 同一顆芯片在配置不一樣(譬如說精度配置為10位時時間比精度配置為12位時要小,譬如說有些AD可以配轉換時鐘,時鐘頻率高則轉換時間短)時轉換時間也不一樣。

(2)一般數據手冊中描述轉換速率用的單位是MSPS

  • 第一個M是兆,S是sample,就是采樣;PS就是per second,總的意思就是兆樣本每秒,每秒種轉出來多少M個數字值;
(3)AD工作需要一個時鐘
  • 這個時鐘有一個范圍,配置時不要超出這個范圍。
  • AD轉換在這個時鐘下進行,時鐘的頻率控制著AD轉換的速率。
  • 但注意時鐘頻率和MSPS不是一回事,只是成正比不是完全相等。譬如S5PV210中的AD轉換器,MSPS = 時鐘頻率/5。


4、通道數

  • AD芯片有多少路analog input通道,代表了將來可以同時進行多少路模擬信號的輸入。


二、s5pv210的ADC控制器

1、S5PV210的ADC控制器

? ? ? ? ? ?

(1)ADC和(電阻式)觸摸屏的關系。電阻式觸摸屏工作時依賴于AD轉換,所以在210的SoC中,電阻觸摸屏接口和ADC接口是合二為一的。或者說電阻觸摸屏接口復用了ADC的接口。

(2)ADC在210的數據手冊的Section10.7;

2、ADC的工作時鐘框圖



  • ADCCLK是ADC控制器工作的時鐘,由PCLK_PSYS經過一次分頻后得到的;
  • PCLK_PSYS時鐘總線頻率為66MHz,一般設置分頻器為65,對用的ADC時鐘位1MHz,此時的轉換速率為1/200KHz;
  • 最大ADC時鐘可設置為5MHz,對應的最大轉換速率為1MSPS。

3、210的10個ADC通道


(1)注意ADC引腳和GPIO的區別;

  • SoC的引腳至少分2種:digit數字引腳和analog模擬引腳。
  • 我們以前接觸的GPIO都屬于數字引腳,ADC channel通道引腳屬于模擬引腳。數字引腳和模擬引腳一般是不能混用的

(2)210一共支持10個ADC通道

  • 分別叫AIN[0]~AIN[9],分別對應XadcAIN[0]~XadcAIN[9]引腳;
  • 理論上可以同時做10路AD轉換。

4、210的ADC特性

  • 精度10bit/12bit;
  • 最大轉換速率1MSPS;
  • 模擬電壓范圍0-3.3;
  • 可設置普通AD模式(即TOUCH SCREEN觸摸屏模式切換為普通AD模式);


5、ADC控制器的主要寄存器

(1)獲取ADC數據的方法:輪詢檢查標志位、中斷

  • 第一種方式:啟動轉換,然后循環檢查標志位,直到標志位為1,表明轉換完畢可以去讀取數據。
  • 第二種方式:設置好中斷,寫好中斷isr來讀取AD轉換數據。AD轉換完畢后,生成中斷信號給CPU,CPU進入中斷處理流程。
  • 第一種方法是同步的,第二種方式是異步的。

(2)AD轉換需要反復進行

  • 轉換完畢后要立即開啟下一次轉換,因此需要設計一種機制,能夠自動開啟下一次轉換。
  • 這個機制叫start by read,工作方法是:當我們讀取本次AD轉換的AD值后,硬件自動開啟下一次AD轉換。

(3)主要寄存器(這里探討通道n=0)

TSADCCONn寄存器

  • bit16設置AD轉換精度,10bit、12bit可選;
  • bit15只讀,狀態寄存器,查看是否轉換結束;
  • bit14預分頻器開關,設置為1;
  • bit13:6分頻倍率,如要設置3.3MHz,可設置為19,66/19+1=3.3,最大設置頻率為5MHz,所以此位最小值為13;
  • bit2設置為普通模式即可;
  • bit1是否開啟read star模式,read star模式意思是只要讀取AD轉換后的寄存器數據,就重新開始AD轉換,使用這種模式第一次讀數據要丟掉;
  • bit0開啟AD轉換,如果設置了read star模式,此位無效;



TSCONn寄存器:touch screen控制寄存器



TSDATXn寄存器,TSDATYn寄存器:數據寄存器

  • bit14查看輸出數據位ADC 還是TOUCH SCREEN;
  • bit11:0為轉換后的數據;


CLRINTADCn寄存器清中斷,寫入任意的數值就可以


ADCMUX寄存器:選擇當前正在操作的AD通道



三、代碼實戰

(1)AD控制器初始化;

(2)循環進行AD采樣;

(3)start by read模式

  • 開啟start by read模式,第一次讀,然后把第一次讀到的數據遺棄,這樣就能開啟下一次AD轉換,從而可以不斷地讀取AD值。
#define TSADCCON0 0xE1700000 #define TSCON0 0xE1700004 #define TSDATX0 0xE170000C #define TSDATY0 0xE1700010 #define CLRINTADC0 0xE1700018 #define ADCMUX 0xE170001C#define _REG_TSADCCON0 *(unsigned int*)0xE1700000 #define _REG_TSCON0 *(unsigned int*)0xE1700004 #define _REG_TSDATX0 *(unsigned int*)0xE170000C #define _REG_TSDATY0 *(unsigned int*)0xE1700010 #define _REG_CLRINTADC0 *(unsigned int*)0xE1700018 #define _REG_ADCMUX *(unsigned int*)0xE170001Cstatic void adc_init(void) {_REG_TSADCCON0 |= (1 << 16); //設置精度為12bit_REG_TSADCCON0 |= (1 << 14); //使能presaler_REG_TSADCCON0 &= ~(0xFF << 6); //設置時鐘_REG_TSADCCON0 |= (65 << 6);_REG_TSADCCON0 &= ~(1 << 2); //standby為normal模式_REG_TSADCCON0 &= ~(1 << 1); //read_start disable_REG_ADCMUX &= ~(0xF << 0); //設置mux開關為ACD1 } static void delay_1(void){volatile int x, y;for(x=0; x<5000; x++) {for(y=0; y<1000; y++);} } void adc_test(void) {unsigned int valx, valy;adc_init();while(1) {//開始ADC轉換_REG_TSADCCON0 |= (1 << 0);//讀取狀態位,是否轉換完畢,如果bit15位0的話,一直讀取while (!(_REG_TSADCCON0 & (1 << 15))) {0;}//讀取ADC轉換后的數據valx = _REG_TSDATX0;valy = _REG_TSDATY0;printf("x:bit14 = %d\n", (valx & (1 << 14)));printf("x:bit11-0 = %d\n", (valx & (0xFFF << 0)));printf("y:bit14 = %d\n", (valy & (1 << 14)));printf("y:bit11-0 = %d\n", (valy & (0xFFF << 0)));delay_1();} }

總結

以上是生活随笔為你收集整理的s5pv210——AD转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 超碰97在线播放 | 国产亚洲小视频 | 激情三级在线 | 手机看片日韩日韩 | 日日摸夜夜添夜夜 | 成年人免费视频网站 | 亚洲免费专区 | 久久福利精品 | 亚洲一区av | h片在线免费观看 | 永久福利视频 | 国产夜色精品一区二区av | 天天操人人干 | 中文在线最新版天堂8 | 脱美女衣服亲摸揉视频 | 婷婷一级片 | 午夜爱爱毛片xxxx视频免费看 | 国产激情网址 | 国产成人自拍偷拍 | 吞精囗交69激情欧美 | 午夜视频欧美 | 91成年视频 | 亚洲色图10p| 午夜做爰xxxⅹ性高湖视频美国 | 朋友的姐姐2在线观看 | 恶虐女帝安卓汉化版最新版本 | 亚洲porn| fexx性欧美| 九一国产在线观看 | 动漫一区二区 | 日韩高清在线一区 | 99爱国产 | 国产一区二区三区四区五区美女 | 麻豆影视在线观看 | 91tv国产成人福利 | 91爱爱视频| 久久精品99久久久久久久久 | av一区二区三区四区 | 精品无人国产偷自产在线 | 肉感丰满的av演员 | www国产91 | 国产91网址 | 亚洲综合在线一区 | 激情欧美亚洲 | 做视频| 青青青手机视频 | 黄网av| 日韩一级影院 | 日韩av免费在线播放 | 日韩色在线观看 | 国产精品免费视频一区 | 欧美一二区视频 | 空姐吹箫视频大全 | 天天操 夜夜操 | 久久精品亚洲一区二区 | 91人人爱| 日韩av网站在线播放 | 亚洲视频一区二区在线观看 | 久久综合精品国产二区无码不卡 | 成年人国产 | 亚洲美女一区二区三区 | 欧美日韩在线网站 | 国产一区二区福利 | 美女尿尿网站 | 国产精品福利在线 | 麻豆视频网站在线观看 | 欧洲精品久久一区二区 | 91蜜桃网 | 日韩免费网站 | 欧美国产日韩在线观看 | 秘密基地电影免费版观看国语 | 国产一区二区三区四 | 欧美精品在线一区二区三区 | 日韩欧美在线观看 | 中文精品在线 | 午夜在线视频免费观看 | 91激情网| 久久国产精品99久久人人澡 | sm久久捆绑调教精品一区 | 精品国产青草久久久久96 | 奇米狠狠777 | 日韩激情精品 | 成人激情四射 | 在线观看h网站 | 视频一区二区三区精品 | 777奇米色| 精品人妻在线播放 | 妞干网av| 天堂av2019| 国产乱妇乱子 | 国产色一区二区 | 精品国产一区二区三区四区精华 | 91爱爱爱爱 | 波多野结衣 一区 | 杨幂一区二区国产精品 | 久久久久九九 | 久久亚洲一区二区 | 法国空姐 在线 | 综合激情网|