序列AD晶元ADC12S021的時序問題

2021-07-13 13:36:11 字數 1600 閱讀 2006

adc124s021

4 channel, 50 ksps to 200 ksps, 12-bit a/d converter

在接觸adc124s021

這個晶元以前,我一直以為

ad晶元都是序列輸出的,好多個引腳(起碼一位數字輸出乙個管腳吧)。這個我用手拿起來都費勁的

10管腳小晶元居然是12位

ad,還是

4通道的。

我第一次寫微控制器程式就要控制這個小東西,結果開始的時候時序還搞錯了。偏偏用的微控制器還是貼片的at89s52

,不能**(反正我公司只有直插的那種**器),我弄了好長時間才發現是

ad時序的錯誤。後來嚴格按照晶元手冊上的時序來寫,終於成功採集到數了。

該ad晶元的時序圖如圖所示。按照圖示的時序具體操作步驟如下。(1)

cs=0;(2

)sclk=1

寫入bn

(7-0

分別在第1到

8個時鐘週期寫入)

sclk=0;(3

)讀取dbn

(db11-db0

分別在第5到

16個時鐘週期讀取),

sclk=1;(4

)重複進行(

1)、(

2)、(3)

1次(這個輸出的資料應該是前一次寫入的通道號或缺省的通道號的採集值,所以按照時序操作兩次確保採集到的數是我們想要的通道號的採集值)。

下面是具體的**(

**中的

cs sclk din dout

都是微控制器的io口

)…………

volatile unsigned char bdata ad_channel;

sbit ad_channel7 = ad_channel^7;

volatile unsigned char bdata valh, vall;

sbit valh0 = valh^0;

sbit vall0 = vall^0;

………………

unsigned int ad124s021 (unsigned char chanel)  

sclk = 0;

if (i >=4 && i < 8)

if (i >=8)

sclk = 1;     } 

cs = 1;

}    

return_val = (int)valh * 256 + vall;

return return_val; }

大概就這些內容了,希望能夠給比我還新的新手幫助。本人水平有限如果有什麼錯誤的地方,還請各位前輩批評指正。

當時電路的設計者估計考慮到電路板上其他晶元的供電都是5v

,就選用了

5v供電的

at89s52

,可是因為沒有**器給微控制器程式的除錯帶來了很大的麻煩(明明可以用

c8051f***

微控制器的,有這個的**器,氣死人了,哎)。

我覺得實際上沒有什麼微控制器程式是真正的「

簡單的」

,在除錯過程中總有一定機率遇到這樣或那樣的問題,包括程式本身跟電路設計缺陷。又一次因為電路設計的缺陷,我花

2個小時就寫完的簡單程式,調了兩天,板子才勉強可以用。

模擬轉換晶元 ADC晶元引數及介紹

dc晶元是將模擬的訊號轉換為真實可見的數字資訊的乙個轉換晶元,在現代科技中它有著舉足輕重的位置,是現代化發展中不可或缺的元器件之一。adc晶元主要看兩個基本指標,乙個是速度 speed,乙個是精度 resolution。顧名思義,速度代表著adc可以轉換多大頻寬 bandwidth的模擬訊號,頻寬對...

AD 轉換晶元使用需知

ad 晶元的常用濾波處理 全差分 ain1 ain1 全差分方式工作時,adc 轉換的是 ain1 與 ain1 引腳的差值,在增益為 1 時,測量的值等於 ain1 ain1 範圍 vref vref,當增益增加時,輸入的範圍要相應減少。差分輸入時,差分線之間最好放置乙個 100nf 的電容 偽差...

怎樣選擇合適的ADC晶元

2011 10 25 16 09 31 分享 標籤 adc 模數轉換器的文章網上非常多,目前自己也在選,這裡把找到的資料彙總整理一下,並加上一些自己的小看法,整理如下 積分型積分型ad工作原理是將輸入電壓轉換成時間 脈衝寬度訊號 或頻率 脈衝頻率 然後由定時器 計數器獲得數字值。逐次比較型 逐次比較...