基于PSoC5 DMA的多路輸入與ADC自動(dòng)控制設(shè)計(jì)
摘要:本文介紹使用Cypress PSoC5中DMA實(shí)現(xiàn)多路輸入切換以及ADC采樣保存的自動(dòng)控制,有效減少對(duì)CPU時(shí)間占用。
本文引用地址:http://cafeforensic.com/article/130721.htm概述
在系統(tǒng)設(shè)計(jì)中,很多時(shí)候會(huì)采用多路輸入,分時(shí)切換選通進(jìn)行ADC轉(zhuǎn)換,可以減少ADC器件的數(shù)量。
圖1是多路輸入選通的結(jié)構(gòu)圖。目前很多芯片內(nèi)部已經(jīng)含有多路選擇器,已經(jīng)無(wú)需外接了。但是對(duì)于多路選通的控制,在一般的系統(tǒng)設(shè)計(jì)中都是需要采用軟件代碼寫(xiě)寄存器的方式實(shí)現(xiàn)。這種方法通常是在A(yíng)DC轉(zhuǎn)換完成觸發(fā)中斷,軟件響應(yīng)中斷,再進(jìn)行下一路輸入的選通切換。所以,至少需要中斷響應(yīng),壓棧,寄存器讀寫(xiě),退棧,退出中斷幾個(gè)階段。
在這種系統(tǒng)中,如果需要對(duì)多路輸入做實(shí)時(shí)采樣,CPU就需要頻繁響應(yīng)中斷,主程序任務(wù)被頻繁打斷。顯而易見(jiàn),CPU時(shí)間額外開(kāi)銷(xiāo)會(huì)增加;在一些多任務(wù)系統(tǒng)中,還會(huì)因?yàn)樾枰腥蝿?wù)堆棧保存和切換[2],影響會(huì)更加明顯。并且因?yàn)檐浖幚碇芷诘仍颍娱L(zhǎng)硬件切換和轉(zhuǎn)換時(shí)間間隔,降低系統(tǒng)工作效率。
Cypress的PSoC5是基于A(yíng)RM Cortex-M3內(nèi)核的高性能芯片, 支持0.5~5.5V的寬范圍電壓輸入。更重要的是,PSoC5內(nèi)含非常豐富的可編程資源UDB(Universal Digital Blocks)[3],以及強(qiáng)大的DMA控制系統(tǒng),可以非常方便地實(shí)現(xiàn)對(duì)各種外圍資源的讀取和控制。
通過(guò)PSoC5的DMA進(jìn)行結(jié)構(gòu)和配置都非常靈活[3],可以通過(guò)對(duì)UDB,SRAM,ADC等資源的操作,實(shí)現(xiàn)多路輸入的全自動(dòng)切換,而不需要CPU響應(yīng)中斷和軟件干預(yù),無(wú)需占用CPU的時(shí)間。
在PSoC5中的多路輸入自動(dòng)切換控制
評(píng)論