如何在微控制器上運(yùn)行片上 AD 轉(zhuǎn)換器
我們已經(jīng)花費(fèi)了大量篇幅討論如何添加速度更快、精度更高的 A/D 轉(zhuǎn)換器。有些應(yīng)用程序需要更高的功能。但大多數(shù)制造商已經(jīng)在他們選擇的模塊上安裝了一個(gè)“免費(fèi)”的 A/D 轉(zhuǎn)換器——集成在微控制器或片上系統(tǒng) (SoC) 中。這些集成轉(zhuǎn)換器各不相同。讓我們不關(guān)注詳細(xì)的規(guī)格,而是看看制造商可能獲得的一些功能以及如何使用它們。
設(shè)置一些模擬通道
大多數(shù)集成 A/D 轉(zhuǎn)換器使用逐次逼近寄存器 (SAR) 架構(gòu)。對(duì)于半導(dǎo)體公司而言,SAR 是一個(gè)不錯(cuò)的中間選擇。簡(jiǎn)單,不占用小芯片太多空間,校準(zhǔn)容易。對(duì)于制造商而言,集成 SAR A/D 通常提供高達(dá)幾百 kHz 的采樣率和高達(dá) 12 位的分辨率。分辨率通常是可調(diào)的,例如沒(méi)有過(guò)采樣的 8 位,以及為降噪而過(guò)采樣的 12 位。
引腳數(shù)通常是一個(gè)考慮因素,尤其是對(duì)于非常小的、廉價(jià)的微控制器。對(duì)于具有更多引腳的較大部件,可能有相當(dāng)多的模擬通道,從 6 個(gè)到 12 個(gè)。問(wèn)題是芯片上只有一個(gè) A/D 轉(zhuǎn)換器,在它前面,有一個(gè)模擬多路復(fù)用器提供通道。多路復(fù)用的一個(gè)含義是沒(méi)有一些額外的電路。所有通道都具有相同的采樣率。這可能會(huì)影響具有不同類(lèi)型傳感器的應(yīng)用程序。
多花幾美元,一些集成解決方案可能會(huì)有一些改進(jìn)。兩個(gè)多路復(fù)用器支持差分輸入,而不是單端輸入,以實(shí)現(xiàn)更好的噪聲抑制。組中可能有一個(gè)特殊的通道可配置為與其他通道不同的采樣率。與微控制器本身的數(shù)字電源軌相比,外部電壓參考引腳可以允許更高的電壓源,以實(shí)現(xiàn)更寬的模擬輸入范圍,或更穩(wěn)定的電源以實(shí)現(xiàn)更高的精度。
簡(jiǎn)單到高級(jí)的數(shù)據(jù)收集
對(duì)于低采樣率應(yīng)用,一個(gè)好的經(jīng)驗(yàn)法則是讓微控制器盡可能長(zhǎng)時(shí)間地處于休眠狀態(tài)。在需要樣本時(shí)的簡(jiǎn)單配置中,A/D 子系統(tǒng)會(huì)喚醒,進(jìn)行轉(zhuǎn)換并創(chuàng)建結(jié)果。由于轉(zhuǎn)換器時(shí)鐘和模擬建立時(shí)間,請(qǐng)求和讀取之間存在一些延遲。還有許多其他模式可以發(fā)揮作用。
大多數(shù)轉(zhuǎn)換器可以編程為自由運(yùn)行、定期采樣和存儲(chǔ)結(jié)果。需要注意的一點(diǎn)是,采樣率不是無(wú)限可編程的,因?yàn)樗鼈兪菚r(shí)鐘源的二進(jìn)制倍數(shù)。隨著采樣率的增加,讀取 A/D 數(shù)據(jù)會(huì)消耗越來(lái)越多的微控制器可用處理時(shí)間。
移動(dòng)數(shù)據(jù)是任何微控制器都可以做的最耗時(shí)的操作之一。許多高級(jí)部件提供直接內(nèi)存訪(fǎng)問(wèn) (DMA),其中 A/D 子系統(tǒng)將數(shù)據(jù)直接寫(xiě)入編程的內(nèi)存位置。這對(duì)于對(duì)數(shù)據(jù)塊進(jìn)行采樣,然后在采集完成后對(duì)其進(jìn)行處理非常方便。
一些 A/D 子系統(tǒng)提供外部觸發(fā),等待收集樣本,直到某些硬件事件發(fā)生。某些部件提供比較窗口或限制。當(dāng)讀數(shù)低于低閾值、高于高閾值或介于或超出閾值范圍時(shí),將收集數(shù)據(jù)。這可以最大限度地減少微控制器的時(shí)間、存儲(chǔ)和工作,直到發(fā)生感興趣的事情。
片上 A/D 轉(zhuǎn)換器適用于何處
聽(tīng)起來(lái)有很多選擇?如果一個(gè)人只需要編程手冊(cè)從頭開(kāi)始,可能會(huì)有很多工作。許多寄存器需要按順序設(shè)置和管理,以使一切發(fā)生。供應(yīng)商已經(jīng)意識(shí)到人們不喜歡難以使用的部件。通常有可供下載的軟件驅(qū)動(dòng)程序可以完成大部分配置和讀取工作。
請(qǐng)記住,雖然供應(yīng)商提供的驅(qū)動(dòng)程序通常用于簡(jiǎn)單的用例,但更高級(jí)的功能可能需要編碼。瀏覽在線(xiàn)社區(qū)可能會(huì)找到創(chuàng)建和共享自定義驅(qū)動(dòng)程序的人。
一些用例非常適合這些片上 A/D 轉(zhuǎn)換器。一種是需要同類(lèi)型傳感器的多個(gè)通道;例如,八個(gè)溫度傳感器分布在發(fā)動(dòng)機(jī)周?chē)?。另一個(gè)是局部控制,例如設(shè)置閥門(mén)以獲得特定的壓力讀數(shù)。
微控制器功能越強(qiáng)大,其集成的 A/D 功能通常就越強(qiáng)大。如果有足夠的通道,并且采樣率和位分辨率對(duì)于應(yīng)用程序來(lái)說(shuō)足夠,那么“免費(fèi)”轉(zhuǎn)換器值得一看。