關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于PSoC5 DMA的多路輸入與ADC自動(dòng)控制設(shè)計(jì)

基于PSoC5 DMA的多路輸入與ADC自動(dòng)控制設(shè)計(jì)

作者:李鵬剛 時(shí)間:2013-02-27 來(lái)源:電子產(chǎn)品世界 收藏

  概述

本文引用地址:http://2s4d.com/article/142465.htm

  在系統(tǒng)設(shè)計(jì)中,很多時(shí)候會(huì)采用多路輸入,分時(shí)切換選通進(jìn)行轉(zhuǎn)換,可以減少器件的數(shù)量。

  圖1是多路輸入選通的結(jié)構(gòu)圖。目前很多芯片內(nèi)部已經(jīng)含有多路選擇器,已經(jīng)無(wú)需外接了。但是對(duì)于多路選通的控制,在一般的系統(tǒng)設(shè)計(jì)中都是需要采用軟件代碼寫(xiě)寄存器的方式實(shí)現(xiàn)。這種方法通常是在轉(zhuǎn)換完成觸發(fā)中斷,軟件響應(yīng)中斷,再進(jìn)行下一路輸入的選通切換。所以,至少需要中斷響應(yīng),壓棧,寄存器讀寫(xiě),退棧,退出中斷幾個(gè)階段?! ?/p>

 

  在這種系統(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ù)堆棧保存和切換,影響會(huì)更加明顯。并且因?yàn)檐浖幚碇芷诘仍?,延長(zhǎng)硬件切換和轉(zhuǎn)換時(shí)間間隔,降低系統(tǒng)工作效率。

  Cypress的PSoC5是基于ARM Cortex-M3內(nèi)核的高性能芯片, 支持0.5~5.5V的寬范圍電壓輸入。更重要的是,PSoC5內(nèi)含非常豐富的可編程資源UDB(Universal Digital Blocks),以及強(qiáng)大的DMA控制系統(tǒng),可以非常方便地實(shí)現(xiàn)對(duì)各種外圍資源的讀取和控制。

  通過(guò)PSoC5的DMA進(jìn)行結(jié)構(gòu)和配置都非常靈活,可以通過(guò)對(duì)UDB,SRAM,ADC等資源的操作,實(shí)現(xiàn)多路輸入的全自動(dòng)切換,而不需要CPU響應(yīng)中斷和軟件干預(yù),無(wú)需占用CPU的時(shí)間。

  在PSoC5中的多路輸入自動(dòng)切換控制

  本設(shè)計(jì)中以4路輸入,12位精度ADC轉(zhuǎn)換為例。

  在PSoC5中使用硬件MUX,并使用UDB內(nèi)部的控制寄存器Control_Reg作為MUX的選通控制信號(hào)。PSoC5中ADC轉(zhuǎn)換器的EoC信號(hào)(End of Convert)[4] 作為DMA的觸發(fā)信號(hào)。

  需要使用兩個(gè)DMA數(shù)據(jù)流通道,一個(gè)是ADC完成轉(zhuǎn)換(EoC信號(hào)有效)后,把ADC中的數(shù)據(jù)寫(xiě)入SRAM中的buffer[]保存;另一個(gè)是把SRAM中的數(shù)組index[]依次寫(xiě)入到Control_Reg中控制MUX的選通。12bit ADC轉(zhuǎn)換精度,4路輸入,所以在SRAM中有兩個(gè)數(shù)組:uint16 buffer[4]和 uint8 index=[4] {0x0,0x1,0x2,0x3}。



關(guān)鍵詞: ADC 自動(dòng)控制

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉