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

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

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

分析設計需求

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

圖1:對16通道采樣的時序。

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

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

圖2:16通道SAR采樣。

圖2顯示的是基于DSI的多路復用器,能在多個輸入之間自動切換當前的采樣通道。圖3顯示的是硬件FIFO的概覽圖。

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

配置SAR組件

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

圖4:詳細設計—修改SAR組件。

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

// 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:詳細設計—SAR的輸出連接。

基于DSI的多路復用器

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

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

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

圖7:設計范圍資源的時鐘定義。

Count7單元屬于定制組件,不在標準組件庫的范圍內(nèi)。它是一個遞減計數(shù)器,輸出當前的計數(shù)器值給DSI。其默認值初始值為0x7F。因此通道選擇的范圍是從#15到#0。在主程序中添加以下代碼實現(xiàn)對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步:在完成當前采樣工作之前生成下一個觸發(fā)信號

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

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

2. 觸發(fā)信號必須確保不會破壞當前采樣工作。

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

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

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

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

圖8:SAR ADC時序。

FIFO控制

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

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

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

圖10:FIFO時序。

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

圖11:為FIFO生成EN的詳細設計。

設計測試

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

圖12:測試結(jié)果——一個采樣周期中的信號。

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

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

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

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

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

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

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

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

關鍵字: 亞馬遜 解密 控制平面 BSP

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

關鍵字: 騰訊 編碼器 CPU

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

關鍵字: 華為 12nm EDA 半導體

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

關鍵字: 華為 12nm 手機 衛(wèi)星通信

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

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

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

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

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

關鍵字: BSP 信息技術
關閉
關閉