I/O實現ADC功能 |
答題得分者是:ScottWang
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
kib72377
高階會員 發表:1 回覆:217 積分:238 註冊:2004-11-12 發送簡訊給我 |
R-2R電阻網路 加 類比 比較器,
用逐次逼近法求解, 參考 A/D轉換器架構去做極可. 如果是想用最少I/O數實現, 那就用 PWM輸出(在給它平均或積分?) 加 類比比較器. PWM实现ADC和DAC - 鸟的天空也可以用定電流充放電時間去計數,來充當ADC. 這裡有一篇:(不過進不去,只看到庫存頁面) 利用MCU I/O埠簡易A/D轉換輸入方案實現有譜- 學技術- 新電子科技雜誌 |
ScottWang
版主 發表:32 回覆:486 積分:688 註冊:2009-04-27 發送簡訊給我 |
請參考這裡有C sample和電路圖.
http://ikalogic.com/tut_adc.php
------
高壓直流電源供應器,高壓模組,測試LED專用AC LED定電流源,全範圍可調電壓電流, 中低壓直流電源供應器,電壓放大器,電流放大器,帶通濾波器,高精度參考電壓, 標準電壓,恆流源(定電流源),恆壓源(定電壓源),大電流電源供應器. 接受訂製,設計生產各種特殊規格,高精度產品,學校實驗室,研究單位實驗設備, 另可接受其它電子專案設計,HV Power,Vmax=20KV,Imax=2000A. http://hvpower.myweb.hinet.net/ |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
謝謝前輩們的幫忙,但需要比較器成本就會提高
小弟的主管是說有到利用計算RC充放電的時間來做ADC的 目前找到比較有關的文章有 http://www.dzsc.com/dzbbs/20060810/200765194820406902.html http://hi.baidu.com/jim_xie/blog/item/1c650e3fc984b8e854e72397.html 但小弟不太了解的是,假設已經知道充放電時間,要怎麼對應到ADC的數值 是要建table來查表嗎^^? 不知道前輩有沒有相關的經驗呢? 再次謝謝各位 |
ScottWang
版主 發表:32 回覆:486 積分:688 註冊:2009-04-27 發送簡訊給我 |
我記得很久以前有看過利用89C2051的P1.0(Ain0),P1.1(Ain1)的內部比較器來做類比的輸入資料讀取,詳情倒是忘了,再找看看能否找到.
=================== 想到了. 目前想到的做法是: 1. 設定timer. 2. 由89C2051的Port P1.2送出Hi,啟動timer. 3. 由Port P3.6讀取信號,判斷為Hi或Lo,若為Hi,則停止Timer. 4. 抓取timer資料,程式利用公式或查表法進行計算電壓值. 動作簡略說明: 當要偵測Vin輸入的一個電壓時,MCU要先設定Timer,再由P1.2送出Hi電壓,並啟動timer,此Hi電壓經由RC(R1xC1)的時間後,會在P1.0(Ain0)形成另一個變化的電壓,此電壓與P1.1(Ain1)進行比較,若P1.0(Ain0)的電壓低於P1.1(Ain1),則P3.6所讀到的值為Lo,反之為Hi. 當P3.6所讀到的值為Lo時,表示參考電壓小於輸入電壓,因此timer繼續計數,程式繼續做檢查P3.6的工作. 當P3.6所讀到的值為Hi時,即將timer停止,不再計數,並將timer的值取出,再由公式或查表法進行計算電壓值. 目前想到的大概就是這樣,希望對你有些助益. 89C2051的P1.0(Ain0),P1.1(Ain1)的內部比較器,由P3.6內部讀取結果. http://voltsandbytes.com/8051-tutorial-3-io-port-programming-in-c/
------
高壓直流電源供應器,高壓模組,測試LED專用AC LED定電流源,全範圍可調電壓電流, 中低壓直流電源供應器,電壓放大器,電流放大器,帶通濾波器,高精度參考電壓, 標準電壓,恆流源(定電流源),恆壓源(定電壓源),大電流電源供應器. 接受訂製,設計生產各種特殊規格,高精度產品,學校實驗室,研究單位實驗設備, 另可接受其它電子專案設計,HV Power,Vmax=20KV,Imax=2000A. http://hvpower.myweb.hinet.net/ |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
ScottWang
版主 發表:32 回覆:486 積分:688 註冊:2009-04-27 發送簡訊給我 |
沒有看到你說的第一個連結裡的5F 6F,但是裡面的作者有提到有加比較器,第2個連結的話,應該才是你要的,沒有加比較器,純粹利用I/O Port和以Timer去計算RC的時間,這種方式倒是不錯,只是沒試過不知其可用的最高頻率為何.
它用3支腳去做說明,但沒有講到ADC的輸入端,所以實際在使用時,應該是只要兩支腳就可以了,一支腳做MCU的輸入,一支腳做開關,做為是否開始計算RC時間時用,先輸出為Lo,做為放電用,再輸出為Hi,準備開始計時,Vin則接一個電阻再接到電容,MCU檢查輸入的那支腳是否變為Hi,若有變為Hi,再去抓出Timer的時間,以做進一步處理.
------
高壓直流電源供應器,高壓模組,測試LED專用AC LED定電流源,全範圍可調電壓電流, 中低壓直流電源供應器,電壓放大器,電流放大器,帶通濾波器,高精度參考電壓, 標準電壓,恆流源(定電流源),恆壓源(定電壓源),大電流電源供應器. 接受訂製,設計生產各種特殊規格,高精度產品,學校實驗室,研究單位實驗設備, 另可接受其它電子專案設計,HV Power,Vmax=20KV,Imax=2000A. http://hvpower.myweb.hinet.net/ |
㊣
版主 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
不好意思沒說清楚,我指的是連結中5樓跟6樓的說明
方法就跟前輩後面那段描述是差不多的意思 ^^ ===================引 用 ScottWang 文 章=================== 沒有看到你說的第一個連結裡的5F 6F,但是裡面的作者有提到有加比較器,第2個連結的話,應該才是你要的,沒有加比較器,純粹利用I/O Port和以Timer去計算RC的時間,這種方式倒是不錯,只是沒試過不知其可用的最高頻率為何. 它用3支腳去做說明,但沒有講到ADC的輸入端,所以實際在使用時,應該是只要兩支腳就可以了,一支腳做MCU的輸入,一支腳做開關,做為是否開始計算RC時間時用,先輸出為Lo,做為放電用,再輸出為Hi,準備開始計時,Vin則接一個電阻再接到電容,MCU檢查輸入的那支腳是否變為Hi,若有變為Hi,再去抓出Timer的時間,以做進一步處理. |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
阿正前輩:
謝謝提供資料^^ 我大概看了一下,若沒有誤會他的意思的話,似乎也是用比較器做ADC對嗎^^? 5.2 AD 功能的实现 P89LPC901 内部比较器与 PWM 输出电压逐次比较实现 AD 功能 再次感謝前輩們的協助 小弟主要是要做PS3的搖桿,他有12顆類比按鍵,所以才有這需求 ===================引 用 ㊣ 文 章=================== http://www.zlgmcu.com/philips/yingrong/lpc900/P89LPC901-ADC_DAC-UART.pdf FYI. |
㊣
版主 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
是的. 使用T1 mode6,類比較器(內部比較器)
example code中convert function(取5次後平均), RC值若與電路不同須另外設delay time. FYI ===================引 用 taishyang 文 章=================== 阿正前輩: 謝謝提供資料^^ 我大概看了一下,若沒有誤會他的意思的話,似乎也是用比較器做ADC對嗎^^? 5.2 AD 功能的实现 P89LPC901 内部比较器与 PWM 输出电压逐次比较实现 AD 功能 再次感謝前輩們的協助小弟主要是要做PS3的搖桿,他有12顆類比按鍵,所以才有這需求 ===================引 用 ㊣ 文 章=================== http://www.zlgmcu.com/philips/yingrong/lpc900/P89LPC901-ADC_DAC-UART.pdf FYI.
------
------------------------------------------------------------------------- 走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!? |
DavidLo
高階會員 發表:17 回覆:225 積分:168 註冊:2004-07-21 發送簡訊給我 |
|
kib72377
高階會員 發表:1 回覆:217 積分:238 註冊:2004-11-12 發送簡訊給我 |
|
ScottWang
版主 發表:32 回覆:486 積分:688 註冊:2009-04-27 發送簡訊給我 |
剛開始你沒有說明AD是用在那裡,我以為你是想用在#4第2個連結的AD來做為一般用途的ADC,雖然覺得有些怪怪的,但是並沒有察覺到怪在那裡.
後來你說明了用途,我重新再看了一下在第2個連結裡的內容,那個沒有用比較器的純I/O方式,它的方式只能用於測量電阻,但是卻不能用於測量一般如0~1~2~3~4~5V變化的電壓,因為輸入端的I/O無法判斷其由0~5之間變化的值,即使設定Timer也沒有用,但若是像連結內容所用的判斷電阻,因為電阻的一端是接到I/O,當電壓由0V轉變到5V,然後電流流經電阻的另一端向電容充電,在這個過程裡,可以用Timer來換算充電時間,而電容的兩端電壓,可能充電到I/O可以辨認的Hi最低電壓,例如2.4V,此時MCU停止Timer,這樣就可以由Timer的時間找出電阻與電容和充電電壓的關係.
------
高壓直流電源供應器,高壓模組,測試LED專用AC LED定電流源,全範圍可調電壓電流, 中低壓直流電源供應器,電壓放大器,電流放大器,帶通濾波器,高精度參考電壓, 標準電壓,恆流源(定電流源),恆壓源(定電壓源),大電流電源供應器. 接受訂製,設計生產各種特殊規格,高精度產品,學校實驗室,研究單位實驗設備, 另可接受其它電子專案設計,HV Power,Vmax=20KV,Imax=2000A. http://hvpower.myweb.hinet.net/ |
ssejack
高階會員 發表:87 回覆:143 積分:106 註冊:2005-06-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |