串行數(shù)據(jù)轉(zhuǎn)換器接口知識問答
問:我應(yīng)該在什么時候選擇具有異步串行接口的數(shù)據(jù)轉(zhuǎn)換器?
答:異步通信方式允許設(shè)備之間交換信息,不必借助于時鐘。為了使用相同的數(shù)據(jù)格式 ,必須對設(shè)備初始化,其中包括設(shè)置一種傳輸速率(通常用波特率表示,或位數(shù)每秒)。還應(yīng) 該規(guī)定轉(zhuǎn)換結(jié)果如何開始傳送和結(jié)束傳送。我們使用容易識別的帶有起始位和停止位的數(shù)據(jù) 序列來傳送數(shù)據(jù)。傳送過程還包括奇偶校驗位,用來檢測設(shè)備出錯。
圖106示出了AD1B60數(shù)字化信號調(diào)節(jié)器與PC機異步通信端口之間的接線圖。這是一種3 線雙向接口(為了簡明,地線省去未畫)。應(yīng)該注意發(fā)送線與接收線在線路的另一端位置交換 。
圖106 AD1B60與PC機之間的異步通信接口
異步通信線路對僅限于設(shè)備分散式通信應(yīng)用場合是很有用的。因為在每次傳送中都包 括起始位和停止位,所以設(shè)備在任何時間只要輸出其數(shù)據(jù)就可以開始通信。另外設(shè)備之間 的接線數(shù)目也減少了,因為時鐘和控制信號線都不需要了。
問:有一種ADC產(chǎn)品說明在串行接口中推薦使用非連續(xù)時鐘,為什么?
答:這種技術(shù)要求可能是指ADC在轉(zhuǎn)換過程期間要求其時鐘信號無效。有的ADC有這種要 求,因為連續(xù)的時鐘信號能夠饋送到ADC的模擬部分,反過來會影響轉(zhuǎn)換結(jié)果。如果I/O端 口有一個幀脈沖,那么連續(xù)的時鐘信號在轉(zhuǎn)換期間可能變成不連續(xù)。這個幀脈沖用作門控信 號,只有在數(shù)據(jù)傳遞時才允許將串行時鐘送到ADC。
問:如何使設(shè)備與SPI或MICROWIRE接口標(biāo)準(zhǔn)兼容?
答:SPI(串行外圍接口)與MICROWIRE分別是美國摩托羅拉公司和國家半導(dǎo)體公司研制的 串行接口標(biāo)準(zhǔn)。大多數(shù)同步串行式數(shù)據(jù)轉(zhuǎn)換器都很容易與這兩種接口連接,但是在有些情況 下可能需要附加連接邏輯(glue logic)。
問:好,我放棄偏見,在我的當(dāng)前設(shè)計中決定使用串行ADC。我按照產(chǎn)品說明的技術(shù)要求 剛剛把線路接好。當(dāng)用MICROWIRE標(biāo)準(zhǔn)轉(zhuǎn)換結(jié)果時,ADC的輸出好像總是FFF HEX (不論 模擬輸入電壓如何變化),這是怎么回事?
答:這或許是通信問題。首先我們需要檢查ADC與處理器之間的連接問題,即定時和控制 信號線是否接好。我們還需要檢查一下處理器的中斷結(jié)構(gòu)。與時序有關(guān)的可能誤差有許多。你要想檢查這個問題,首先將所有的時序信號要么接到邏輯分析儀上,要么接到多通道示波 器 上(至少需要3個通道才能同時檢測全部時序信號)。你在儀器的熒光屏上應(yīng)該觀察到類似圖1 0.7所示的時序圖。首先保證從微處理器或從獨立的信號源產(chǎn)生一個啟動轉(zhuǎn)換命令CONVST) 。常見的錯誤是所施加的CONVST信號極性不對。雖然也能啟動轉(zhuǎn)換,但不是按照你期望的時 序轉(zhuǎn) 換 。另外應(yīng)該記住的是,通常要求CONVST信號有一個最小的脈沖寬度(典型值約為50ns)。一般 來自快速微處理器的寫脈沖或讀脈沖寬度都不能滿足這個要求。如果脈沖寬度太窄,可用軟 件方法插入等待周期來增大脈沖寬度。
圖107 串行ADC時序圖
其次應(yīng)該保證在讀周期開始之前微處理器一直在等待模數(shù)轉(zhuǎn)換完成。為了使微處理器產(chǎn) 生中斷信號,你的應(yīng)用軟件應(yīng)該知道完成A/D轉(zhuǎn)換所需要的時間,或等待ADC轉(zhuǎn)換結(jié)束(EOC) 發(fā)出的指示信號。還要保證EOC信號極性正確,以免ADC在轉(zhuǎn)換進程中會產(chǎn)生中斷。如果微處 理器對中斷不響應(yīng),你應(yīng)該檢查軟件中斷的設(shè)置。
另外,如果轉(zhuǎn)換器尋址不對,檢查一下串行時鐘序列(SCLK)的狀態(tài)也是很有必要的。正 如 前面的討論所述,有些DAC和ADC在連續(xù)時鐘作用下,工作不正常。除此以外,還有些DAC和A DC要求SCLK在某一指定狀態(tài)總得有一個閑音(idles)。
問:我現(xiàn)在已經(jīng)發(fā)現(xiàn)了我的軟件中的問題和一些解決方法,使問題有所改善。當(dāng)改變輸 入電壓時,ADC輸出的數(shù)據(jù)也發(fā)生變化,但是轉(zhuǎn)換結(jié)果好像不可識別,這是怎么回事?
答:可能產(chǎn)生的誤差源仍然很多。ADC的轉(zhuǎn)換結(jié)果或者直接用二進制數(shù)據(jù)形式表示,或者 用2的補碼形式表示(BCD碼用得不太多)。為了使微處理器接受合適的數(shù)據(jù)格式,應(yīng)該檢查它 的配置。如果微處理器的配置不能直接接受2的補碼,你應(yīng)該將轉(zhuǎn)換數(shù)據(jù)與100…00二進制數(shù) 進行異或操作,將其轉(zhuǎn)換成二進制數(shù)。
通常利用串行時鐘的前沿(上升或下降沿)選通ADC的數(shù)據(jù)輸出并且進入數(shù)據(jù)總線。然后 利用時鐘的后沿使數(shù)據(jù)進入微處理器。應(yīng)該保證微處理器與ADC在同一轉(zhuǎn)換條件下正常工作 ,保證所有準(zhǔn)備時間和保持時間都滿足要求。如果串行ADC的轉(zhuǎn)換結(jié)果恰好是期望值的一半 或二 倍時,這是一個告警信號,它說明這個數(shù)字結(jié)果(尤其是MSB)是由于受錯誤的時鐘邊沿作用 。同樣一個問題,對于串行DAC則表現(xiàn)為其輸出電壓恰好為期望值的一半或二倍。
驅(qū)動轉(zhuǎn)換器的數(shù)字信號應(yīng)該干凈。過沖或欠沖除對器件可能引起長期損壞以外,還能產(chǎn) 生轉(zhuǎn)換誤差和通信誤差。圖108示出了用來驅(qū)動單電源轉(zhuǎn)換器的時鐘輸入 具 有很大過沖的尖脈沖信號。在這種情況下,時鐘輸入驅(qū)動PNP晶體管的基極。按照慣例,將 器件的P型襯底內(nèi)部連接到最負的電位,這里為地。在SCLK線上大于地電位以下03V的幅度 完 全能使N型晶體管的基極和P型襯底之間的寄生二極管開始導(dǎo)通。如果經(jīng)常出現(xiàn)這種情況,而 且作用時間很長,可能會導(dǎo)致器件損壞。
圖108 過沖或欠沖波形及其損壞器件的機理
評論