PSoC作為可編程的系統(tǒng)級芯片(SoC),,克服了SoC制設計制造周期長和成本高的缺點,。其集成了微控制器以及嵌入式系統(tǒng)中通常位于微控制器周圍的模擬及數(shù)字組件。它具有混合信號ASIC的優(yōu)勢,,同時又無需ASIC NRE或設計完成時間,。從而幫助客戶節(jié)約設計時間和板上面積,降低了功耗及系統(tǒng)成本,。
PSoC(可編程片上系統(tǒng))是Cypress半導體生產(chǎn)的包含有8位微處理器核和數(shù)字與模擬混合信號陣列的可編程片上系統(tǒng),。其應用領域與8位的MCU相同。區(qū)別于8位的MCU,,PSoC的周邊數(shù)字資源(如定時器,、PWM、UART等等)和周邊模擬資源(放大器,、比較器,、濾波器等等)以數(shù)字模塊和模擬模塊的方式提供。不同型號的PSoC芯片的差異主要在于其擁有的數(shù)字模塊和模擬模塊的數(shù)量的不同,。用戶可以根據(jù)自己的需要來定義這些模塊,。PSoC的集成開發(fā)環(huán)境PSoC Designer也預先為用戶定義了七十多個常用的數(shù)字和模擬資源供用戶選擇。如數(shù)字資源有:定時器,、PWM,、UART、SPI,、CRC,、PRS等等;模擬資源有放大器,、比較器,、濾波器等等;AD和DA轉換器由若干數(shù)字模塊和模擬模塊組合而成,。所有這些預定義的模塊被稱之為用戶模塊,。PSoC Designer也為用戶提供這些用戶模塊的API函數(shù)供用戶編程時調(diào)用。在PSoC Express出現(xiàn)以前,,開發(fā)PSoC的應用項目與MCU的應用開發(fā)相似,,使用PSoC Designer集成開發(fā)環(huán)境根據(jù)項目的需要調(diào)用和配置資源(用戶模塊),編寫代碼(C或匯編),編譯,,調(diào)試….
現(xiàn)在由于PSoC Express可以在更高的抽象概念水平上運行,,且無需匯編或C的軟件開發(fā),因此設計人員只需要數(shù)小時或數(shù)天時間即可完成對PSoC器件的新設計開發(fā),、仿真及編程,,而不再耗時數(shù)周乃至數(shù)月。由于其采用無縫多重處理器架構,、具有設計可視化功能,,包含豐富的驅(qū)動程序庫和多種傳輸函數(shù)的評估器以及軟仿真功能,因此系統(tǒng)開發(fā)工程師采用PSoC Express工具能夠更快地完成設計工作,,并實現(xiàn)更高的可靠性,。在PSoC Express中,尤其值得提到它的Monitor功能,,它使得PSoC的無代碼,、可視化應用開發(fā)變得透明化。對某些比較復雜的應用,,需要及時調(diào)節(jié)或修改某些參數(shù)時,,不會再有那種捉摸不定和黑匣子的感覺。使你的調(diào)試過程更從容,、更快,、更有效率。
透明化應用開發(fā)過程
使用PSoC Express的開發(fā)過程
1. 選擇輸入和輸出
運行PSoC Express,,選擇Design選項夾,,根據(jù)設計的需要選擇相應的輸入、輸出和接口驅(qū)動器,。如果有的話,,根據(jù)要求設定驅(qū)動器的參數(shù)。
2. 定義輸出的行為
根據(jù)不同的輸入變化,,來定義系統(tǒng)的輸出行為,。系統(tǒng)的輸入輸出的關系相對比較簡單的直接使用輸出驅(qū)動器的傳輸函數(shù)來定義輸入和輸出的相應關系。通過鼠標右鍵點擊輸出驅(qū)動器選擇傳輸函數(shù),,輸出驅(qū)動器提供三種傳輸函數(shù):優(yōu)先編碼器,、狀態(tài)編碼器和表格對應器。通過使用這三種傳輸函數(shù)建立起輸入和輸出的關系,。輸入輸出的關系相對比較復雜的則需要使用評估器(Valuator),,傳輸函數(shù)評估器包含6個傳輸函數(shù),它們除了輸出驅(qū)動器里提到的三種以外,,還有環(huán)狀延時(LoopDelay),、狀態(tài)機和閾值(SetPointRegin)三種傳輸函數(shù)。選擇更合適的傳輸函數(shù)來產(chǎn)生中間結果作為輸出驅(qū)動器的輸入。
3. 仿真和驗證
仿真為軟仿真,。它主要通過交互式的方式,,移動或單擊輸入器件旁的圖形或小窗口來改變輸入的值或狀態(tài),輸出驅(qū)動器和評估器的狀態(tài)或數(shù)值顯示圖形塊中的參數(shù)值隨即發(fā)生相應的變化,,通過觀察這個變化,,用戶可以評估和驗證他的設計是否實現(xiàn)他所要的結果。
4.生成系統(tǒng)文件及使用編程器下載十六進制編程文件到PSoC芯片,。
通常如果順利的話,軟件設計便大功告成,。PSoC芯片的運行結果將滿足設計工程師的預期,。但是,如果PSoC芯片的運行結果沒有滿足設計工程師的預期,,則他需要重新檢查他的整個設計過程,。有些項目需要通過仔細調(diào)節(jié)輸入驅(qū)動器的某些參數(shù),才能達到設計工程師的預期效果,。早先的PSoC Express版本,,由于沒有提供有效的調(diào)試方法,當用戶遇到諸如此類的問題時,,便會有手足無措的感覺,、或者仿佛感到PSoC芯片象一個黑匣子,其中間過程和中間結果不得而知,。調(diào)試過程非常盲目,。
現(xiàn)在PSoC Express 3.0版本為用戶提供了Monitor功能。它使用USB到I2C的轉接器將PSoC芯片和PC上的PSoC Express開發(fā)環(huán)境連接起來,,在用戶用PSoC Express開發(fā)項目時增加一個步驟,,即第一個階段選擇輸入和輸出時,從接口驅(qū)動器中選擇一個從的I2C驅(qū)動器加入到項目中即可,。幾乎所有的的PSoC芯片都包含有I2C資源,。當PSoC運行時,啟動Monitor功能,,就可以在PSoC Express開發(fā)環(huán)境的輸出窗口中看到所有中間變量的實時數(shù)據(jù),,它可以將多個中間變量的實時數(shù)據(jù)以動態(tài)曲線的方式給出。對有些驅(qū)動器,,在Monitor的功能里,,還提供調(diào)諧功能,并提供專用輸入驅(qū)動器參數(shù)調(diào)節(jié)窗口,,當你在這個窗口里調(diào)節(jié)某一個參數(shù)時,,馬上就可以看到受影響的曲線是如何變化的。通過這么一個簡單的工具和PSoC Express所集成的Monitor功能,使得無代碼的PSoC應用開發(fā)透明化,。使得用戶開發(fā)和調(diào)試項目變得更輕松而且更有趣,。
透明化應用開發(fā)實施
一個用Monitor功能實施透明化應用開發(fā)的實例是用PSoC Express開發(fā)并實現(xiàn)觸摸感應的項目。在這個項目里有一個觸摸感應按鍵和一個由8個感應塊組成的滑條,。有無感應按鍵
和手指在滑條上的位置信息被顯示在一個LCD上,。PSoC Express包含有三個高級的電容感應式觸摸感應輸入驅(qū)動器:CSD、CSA,、CSR,。它僅需要一顆PSoC芯片加極少的外部無源元件就可以在一個項目中同時實現(xiàn)多個觸摸感應按鍵和1或2個滑條的功能。其輸入感應器僅僅是在PCB板上被連到PSoC芯片IO口上的銅箔,。
1. 啟動并建立一個項目
首先從輸入驅(qū)動器庫中選擇并放置觸摸感應按鍵和滑條驅(qū)動器并設置參數(shù),,然后從輸出驅(qū)動器庫中選擇并放置LCD驅(qū)動器并設置參數(shù)。我們還需要從輸入驅(qū)動器庫中選擇并放置觸摸感應算法模塊驅(qū)動器,,這里選擇CSD算法,,并設置相關參數(shù)。最后從接口驅(qū)動器庫中選擇并放置從I2C驅(qū)動器,。所有模塊放置完畢,,通過鼠標右鍵點擊輸出驅(qū)動器LCD并選擇狀態(tài)編碼器傳輸函數(shù)來建立輸入和輸出之間的對應關系。如,,對按鍵,,當按鍵的值等于1時,LCD的第一排顯示Button0,,等于0時,,LCD的第一排不顯示。對滑條,,沒有手指觸摸時,,LCD的第二排顯示0,有手指觸摸時,,顯示手指在滑條上的位置值,。一旦輸入和輸出之間的對應關系建立好,便有紅線將對應的輸入和輸出連接起來,。(見圖一)到此,,主要的設計任務已經(jīng)完成。
圖1:從輸入驅(qū)動器庫中選擇并放置觸摸感應按鍵和滑條驅(qū)動器并設置參數(shù),。
現(xiàn)在可以用軟仿真來評估和驗證這個設計是否符號上面的要求,。如果正確,就可以通過Build來配置管腳和生成系統(tǒng)文件,,它包括產(chǎn)生用于編程的十六進制代碼,。然后啟動編程功能,,將十六進制代碼文件下載到PSoC芯片中。
由于觸摸感應按鍵和滑條的靈敏度受PCB板材,、印刷線路板的布線,、感應銅箔的尺寸大小、覆蓋物的介質(zhì)和厚度等諸多因素的影響,,所以對一個具體的應用需要通過反復地調(diào)節(jié)輸入驅(qū)動器的參數(shù)才能找到合適的靈敏度,。在此Monitor的作用被充分的體現(xiàn)出來。
2. 啟動Monitor功能
在啟動Monitor功能之前,,先用USB轉I2C橋?qū)C和應用板上的編程口連接起來,。然后點擊Monitor啟動Monitor功能。Monitor功能被啟動之后,,通過點擊Power Selection,,選擇供電電壓(5V、3.3V和外部供電),,可以通過USB轉I2C橋給應用板供電。一旦應用板得電,,就可以在PSoC Express的輸出窗口中看到滾動的數(shù)據(jù),。當從View菜單點擊Variables Chart時,一個圖形顯示畫面便顯示出來,。這個圖形顯示畫面的右面列出了所有的可以看到的中間變量,。當點擊Play按鈕時所有這些變量值以動態(tài)曲線的方式被顯示出來。這些曲線不同的顏色對應不同的變量,。你可以改變采樣的速率,,也可以將不需要看的曲線屏蔽掉。
在這個例子里,,可以通過觀察與感應電容相對應的RawCount的值及其他相關值的變化來調(diào)節(jié)感應鍵和滑條的靈敏度,。比如,當手指觸摸感應鍵時可以看到Button0_RawCount的變化量以及Button0_RawCount相對Baseline的差值,。當它太大或太小時,,可以通過改變輸入驅(qū)動器的參數(shù)使其有一個合適的值進而找到一個合適的靈敏度。這使得調(diào)試變得即簡單又直觀,。(見圖2)
圖2:通過改變輸入驅(qū)動器的參數(shù)實現(xiàn)簡單直觀的調(diào)試,。
3. 用Tuning進行調(diào)試
對有些輸入驅(qū)動器,PSoC Express在Monitor功能的基礎上還增加了Tuning的功能,。Tuning的作用在于不需要每次改變輸入驅(qū)動器的參數(shù)后重新對整個項目進行Build和下載代碼到芯片中,。它可以實施在線調(diào)試,即在線改變參數(shù),,參數(shù)改變以后立即可以看到輸出結果的變化,。當參數(shù)全部調(diào)好以后,,最后重新對整個項目進行一次Build和下載代碼到芯片里即可。圖三和圖四是CSD模塊的感應按鍵和滑條的Tuning窗口界面,。
圖3:CSD模塊的感應按鍵和滑條的Tuning窗口界面,。
圖4:利用Tuning窗口界面實施在線調(diào)試。
它通過在Monitor狀態(tài),,用鼠標右鍵點擊相應的輸入驅(qū)動器就可以打開它的Tuning窗口,。從Tuning窗口中可以看到對應按鍵和滑條的所有參數(shù)都集中在了窗口的左面,一目了然,。窗口的右面以棒圖的方式顯示感應按鍵或滑條的RawCount的值,。上面的一些橫線則代表噪聲閾值和手指閾值以及手指閾值的正和負的遲滯等參數(shù)。對滑條,,被計算出來的手指的位置用綠線表示,。這種直觀明了的調(diào)試方式進一步加快了調(diào)試的過程并增加了調(diào)試的樂趣。
作者:翁小平
資深主任應用工程師
賽普拉斯半導體公司
本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章,、圖片,、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權者,。如涉及作品內(nèi)容,、版權和其它問題,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。