當(dāng)前位置:首頁(yè) > 模擬 > 模擬
[導(dǎo)讀] 通過ADC進(jìn)行信號(hào)采樣是MCU應(yīng)用的常見任務(wù),這可以將連續(xù)模擬信號(hào)轉(zhuǎn)換為一系列離散的數(shù)字?jǐn)?shù)據(jù)供MCU處理。在某些應(yīng)用中,單個(gè)ADC需要以高采樣率對(duì)多個(gè)通道進(jìn)行采樣。例如電源監(jiān)測(cè)系統(tǒng)的管理子系統(tǒng)需要對(duì)多個(gè)穩(wěn)壓電源的

 通過ADC進(jìn)行信號(hào)采樣是MCU應(yīng)用的常見任務(wù),這可以將連續(xù)模擬信號(hào)轉(zhuǎn)換為一系列離散的數(shù)字?jǐn)?shù)據(jù)供MCU處理。在某些應(yīng)用中,單個(gè)ADC需要以高采樣率對(duì)多個(gè)通道進(jìn)行采樣。例如電源監(jiān)測(cè)系統(tǒng)的管理子系統(tǒng)需要對(duì)多個(gè)穩(wěn)壓電源的輸出進(jìn)行采樣,以監(jiān)測(cè)系統(tǒng)的工作狀態(tài);再如在基于傳感器的應(yīng)用中,MCU需要對(duì)多個(gè)傳感器進(jìn)行采樣以實(shí)現(xiàn)系統(tǒng)反饋。

我們有位客戶想使用一片賽普拉斯的PSoC4實(shí)現(xiàn)用1MSps采樣率采樣16個(gè)通道的設(shè)計(jì),16個(gè)通道的總采樣時(shí)長(zhǎng)不能超過19μs。但PSoC4內(nèi)置的多路復(fù)用器(SARMUX)只支持8個(gè)通道。本文將介紹如何通過PSoC內(nèi)部的可編程模塊克服這一設(shè)計(jì)難題。

分析設(shè)計(jì)需求

首先我們需要仔細(xì)分析設(shè)計(jì)需求??蛻舭?6個(gè)輸入的完整采樣視為一個(gè)采樣周期。如圖1所示,一個(gè)采樣周期的最大時(shí)長(zhǎng)限制為19μs。每個(gè)采樣周期之間可使用中斷服務(wù)請(qǐng)求(ISR)存儲(chǔ)采樣結(jié)果。

圖1:對(duì)16通道采樣的時(shí)序。

若要用一個(gè)8通道SAR來實(shí)現(xiàn)這個(gè)目標(biāo),我們需要使用PSoC4片內(nèi)的通用可編程數(shù)字模塊(UDB)實(shí)現(xiàn)定制設(shè)計(jì)。該設(shè)計(jì)使用PSoC4片內(nèi)的數(shù)字信號(hào)互聯(lián)(DSI)實(shí)現(xiàn)多路復(fù)用器切換采樣通道,并且在采樣周期結(jié)束時(shí)將采樣結(jié)果緩沖在基于數(shù)據(jù)通路(datapath)的FIFO中,然后通過中斷服務(wù)子程序(ISR)全部讀取出來。

數(shù)據(jù)通路是UDB模塊中最靈活的部分。每個(gè)UDB模塊包含一個(gè)數(shù)據(jù)通路,每個(gè)數(shù)據(jù)通路包含一個(gè)具有多個(gè)寄存器的8位ALU。UDB結(jié)構(gòu)和數(shù)據(jù)通路功能的詳細(xì)介紹請(qǐng)參閱PSoC4技術(shù)參考手冊(cè)。每個(gè)數(shù)據(jù)通路可實(shí)現(xiàn)一個(gè)8字節(jié)FIFO。我們需要四個(gè)FIFO來緩沖16個(gè)12位SAR采樣結(jié)果。

圖2:16通道SAR采樣。

圖2顯示的是基于DSI的多路復(fù)用器,能在多個(gè)輸入之間自動(dòng)切換當(dāng)前的采樣通道。圖3顯示的是硬件FIFO的概覽圖。

圖3:用于緩沖采樣結(jié)果的四個(gè)8字節(jié)FIFO。

配置SAR組件

SAR被配置成單端模式采樣單個(gè)輸入通道,輸入電壓范圍在0~Vdd之間,1MSps采樣率。在收到采樣觸發(fā)信號(hào)后,SAR就開始輸入信號(hào)采集,采集結(jié)束后產(chǎn)生一個(gè)“SDONE”信號(hào),該信號(hào)被送入DSI網(wǎng)絡(luò),并被命名為“ADC_SDONE”。PSoC Creator標(biāo)準(zhǔn)組件庫(kù)中提供的SAR組件無法支持輸出采樣結(jié)果到DSI總線上。因此,我們需要把SAR組件導(dǎo)入到項(xiàng)目中并加以修改,如圖4中的紅色部分所示。

圖4:詳細(xì)設(shè)計(jì)—修改SAR組件。

圖5所示的是SAR組件的輸出連接。在SAR_Start函數(shù)之后,我們還需要添加一行代碼,使得SAR能將采樣結(jié)果輸出到DSI網(wǎng)絡(luò),如下所示:

// start SAR component and wait for conversion trigger

SAR_Start();?

// enable SAR sampling result output on DSI

*((reg32 *)(SAR_SAR_CHAN_CONFIG_IND + (uint32)(0 << 2))) |=

SAR_DSI_OUT_EN;

圖5:詳細(xì)設(shè)計(jì)—SAR的輸出連接。

基于DSI的多路復(fù)用器

如圖6中藍(lán)色部分所示,通過DSI控制的硬件多路復(fù)用器取代SARMUX,以用于切換16個(gè)通道。采用SWITCH_CLK時(shí)鐘觸發(fā)Count7單元,以生成通道選擇信號(hào),這樣每次通道轉(zhuǎn)換可分為兩個(gè)階段:信號(hào)采集和轉(zhuǎn)換。

圖6:基于DSI的MUX和觸發(fā)信號(hào)生成。

信號(hào)采集完成之后,信號(hào)將保持在SAR中,此時(shí)可切換輸入通道。因此用于顯示信號(hào)采集階段完成的SDONE可用于通道切換。實(shí)際上,SWITCH_CLK是基于DSI信號(hào)“ADC_SDONE”(SDONE)定義的時(shí)鐘,其設(shè)置見圖6的“cydwr”頁(yè)面。

圖7:設(shè)計(jì)范圍資源的時(shí)鐘定義。

Count7單元屬于定制組件,不在標(biāo)準(zhǔn)組件庫(kù)的范圍內(nèi)。它是一個(gè)遞減計(jì)數(shù)器,輸出當(dāng)前的計(jì)數(shù)器值給DSI。其默認(rèn)值初始值為0x7F。因此通道選擇的范圍是從#15到#0。在主程序中添加以下代碼實(shí)現(xiàn)對(duì)Count7的控制。

/* Enter critical section */

interruptState = CyEnterCriticalSection();

/* Set the Count Start bit */

MYCOUNT7_AUX_CTL |= (1 << 5);

/* Exit critical section */

CyExitCriticalSection(interruptState);

// set default value of count7 as 0x7F

MYCOUNT7_COUNTER = MYCOUNT7_PERIOD;

生成SAR的采樣觸發(fā)

第1步:在完成當(dāng)前采樣工作之前生成下一個(gè)觸發(fā)信號(hào)

由于針對(duì)SAR只有一個(gè)實(shí)際輸入,因此一旦完成對(duì)當(dāng)前通道的采樣,SAR就需要為下一次采樣觸發(fā)信號(hào)。許多信號(hào)都適用于此目的,但觸發(fā)信號(hào)選擇應(yīng)遵循以下兩個(gè)規(guī)則:

1. 在觸發(fā)信號(hào)和當(dāng)前采樣完成之間不應(yīng)存在間隔,甚至觸發(fā)信號(hào)可以提前發(fā)生,這樣就可以降低延遲。

2. 觸發(fā)信號(hào)必須確保不會(huì)破壞當(dāng)前采樣工作。

根據(jù)上述規(guī)則,可選擇SDONE和EOC用于觸發(fā)。但使用EOC將使每通道采樣時(shí)間至~1.4μs,這是因?yàn)橛|發(fā)信號(hào)上升沿時(shí)刻和SAR開始采樣之間存在開銷。SAR需要至少5個(gè)SARADC_CLK時(shí)鐘來將DSI觸發(fā)信號(hào)轉(zhuǎn)換為信號(hào)采樣開始。我們的設(shè)計(jì)要求更加苛刻。EOC信號(hào)與SARADC_CLK上升沿同步。在穿過DSI網(wǎng)絡(luò),并到達(dá)SAR的SOC(開始轉(zhuǎn)換)之后,就已經(jīng)略滯后于采樣時(shí)鐘的上升沿。因此,它需要6個(gè)SARADC_CLK時(shí)鐘或大約340ns觸發(fā)產(chǎn)生耗時(shí)。

我們必須尋求另一種觸發(fā)信號(hào)。幸運(yùn)的是在SAR工作時(shí),其可存儲(chǔ)一個(gè)觸發(fā)信號(hào),但僅限一個(gè),用于下一次掃描。因此我們可以使用SDONE觸發(fā)轉(zhuǎn)換。讓觸發(fā)產(chǎn)生耗時(shí)與SAR轉(zhuǎn)換時(shí)間并行,SAR就可在當(dāng)前轉(zhuǎn)換完成之前存儲(chǔ)該觸發(fā)事件。現(xiàn)在對(duì)16通道的采樣我們能有1μs的轉(zhuǎn)換時(shí)間(見圖12中的SDONE周期)。

第2步:在每次采樣周期結(jié)束時(shí)暫時(shí)停止觸發(fā)信號(hào)生成

在每次采樣周期結(jié)束時(shí),我們需要暫時(shí)停止觸發(fā)信號(hào)生成,否則持續(xù)不斷的采樣將使FIFO溢出。如圖6的紅色部分所示,在選擇通道0時(shí),需關(guān)閉同步的D觸發(fā)器(DFF)以暫時(shí)停止觸發(fā)器輸出。而在FIFO被ISR清空后,則需使用0x7F重置Count7單元,從而重新啟用DFF輸出。同時(shí),應(yīng)使用固件觸發(fā)的方式在新周期中開始第一通道的采樣,如圖8所示。

圖8:SAR ADC時(shí)序。

FIFO控制

UDB可配置為8字節(jié)FIFO,用于存儲(chǔ)來自DSI網(wǎng)絡(luò)的數(shù)據(jù)。圖9顯示了配置數(shù)據(jù)通路的概覽圖。FIFO時(shí)鐘將數(shù)據(jù)采樣到FIFO。F0 Load和F1 Load負(fù)責(zé)啟用或禁用FIFO。兩個(gè)狀態(tài)信號(hào)可提示FIFO Full事件。

圖9:針對(duì)8字節(jié)FIFO的數(shù)據(jù)路徑配置。

圖10所示的是FIFO的工作時(shí)序。12位SAR結(jié)果分別存儲(chǔ)在LSB_FIFO和MSB_FIFO中。Count7單元可對(duì)從15到0的通道進(jìn)行排序。因此通道15到8存儲(chǔ)于FIFO上部,通道7到0存儲(chǔ)于FIFO下部。加載信號(hào)根據(jù)FULL狀態(tài)和啟用信號(hào)而生成。

圖10:FIFO時(shí)序。

最后四個(gè)通道的結(jié)果一旦存儲(chǔ)完畢后就會(huì)觸發(fā)ISR讀取FIFO。FIFO Enable使用Count7單元的位(如圖11的紅色部分所示),同時(shí)該位也與SWITCH_CLK(SDONE)同步。這樣可確保EN變化不會(huì)破壞FIFO采樣。

圖11:為FIFO生成EN的詳細(xì)設(shè)計(jì)。

設(shè)計(jì)測(cè)試

圖12所示的是一個(gè)采樣周期。十六個(gè)SDONE和EOC脈沖表示通道轉(zhuǎn)換。十六個(gè)FIFOCLK和一個(gè)FIFO的FULL信號(hào)可對(duì)最后四個(gè)結(jié)果進(jìn)行緩沖,用于說明FIFO的工作狀態(tài)。請(qǐng)注意,SDONE和FIFOCLK之間的間隔是1μs。

圖12:測(cè)試結(jié)果——一個(gè)采樣周期中的信號(hào)。

圖13是多個(gè)采樣周期的波形。將數(shù)據(jù)從FIFO存儲(chǔ)到SRAM的兩個(gè)周期之間的間隔是大約9.56μs。

圖13:測(cè)試結(jié)果——多個(gè)采樣周期。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉