用PSoC 4簡化你的設計流程!「臥龍會」

點擊上面“臥龍會IT技術”關注我們

我們與你一起暢享IT世界!

用PSoC 4简化你的设计流程!「卧龙会」
用PSoC 4简化你的设计流程!「卧龙会」

轉自網絡

用PSoC 4简化你的设计流程!「卧龙会」

最近我被要求設計一款雙通道訊號轉換器,從雙極輸入電壓到雙極輸出電流;我馬上假設這應該是一個純類比設計,但有些事情卻困擾了我。其中一個明確的需求是,每個通道要有一顆根據輸入訊號變化亮度的雙色LED,並以紅燈或是綠燈來分別指示訊號為正或是負。

這會遇到兩個問題;第一, LED驅動會需要升壓,所以沒有接近零的死區;第二,我可以預見一個狀況是當訊號為負,LED (以及可能是輸出)卻呈現正值,反之亦然。這種狀況的機械當量稱作為後座力(backlash)。我認為並非要採用可變電壓來驅動LED,而是採用PWM驅動器如Linear的LTC6992,但我仍會產生一個偏移,也無法解決後座力的問題。

此外,我會需要兩顆PWM驅動器(每個通道一顆),這也可能得增加額外的電路讓LED由紅變綠;於是一個合乎邏輯的作法是去找適合的低階微控制器(MCU)。

我先從Microchip的產品找起,但我發現適合的是存儲器容量較小的16C系列,意味著得使用匯編語言。我曾在其他的開發案使用過16C系列,卻遇到指令集不足(該系列MCU是RISC架構元件)以及存儲器區段(memory segmentation)問題;因為這樣的偏見,我又找了NXP的元件以及Freescale的ARM Cortex-M0芯片。

因為選擇太多,我開始猶豫不決。不過以前我曾在一個案子採用Freescale的CodeWarrior開發環境,卻發現我們得額外付費才能取得我們需要的支援服務,這又讓我產生偏見。

總之我現在可以告訴你,我已經成為Cypreess的 PSoC 的支持者。我曾採用PSoC 1做過許多個小規模設計案,以及用PSoC 5做過一個大型設計;我也聽過一些關於採用ARM Cortex-M0核心的PSoC 4的一些熱門討論,但看到 PSoC 4 的價格,實在是令我驚喜。

還好我的設計案在價格上有一些機動性,而且據瞭解,PSoC的配置靈活性通常能減少一些外部元件的運用;當然,我們已經有仿真器以及一些經驗,所以我決定進一步看看這款元件以及搭配的PSoC 4 Pioneer Kit開發工具(可兼容Arduino外殼)。該款開發工具採用多才多藝的PSoC 4200系列元件,這也成為我的設計案出發點。

Cypress提供了很棒的開發環境PSoC Creator,能讓你進行產品配置、編程以及除錯;PSoC的架構介於 MCU 與 FPGA 之間,除了處理器核心,該元件具備一些可配置的類比電路,以及一些可編程數位電路(不過與FPGA的又不太相同)。開發者也能隨著元件取得一系列所需功能IP進行配置;該開發環境如下圖所示。

PSoC Creator開發環境

如果你需要ADC,只要從開發環境右方的元件選擇區選擇該功能區塊並拖曳下來;如果你需要PWM,也是一樣的步驟。要運算放大器或是SPI控制器嗎?也沒問題!把它們連結在一起以取得一個架構圖,然後選擇哪些接腳與不同的功能關聯,完成了硬件編譯,就可以準備好撰寫應用程序。

每個你所配置的元素都有其代碼與標頭,在開發環境的“Workspace Explorer”區域可以找到;所有的API呼叫包含在標頭檔案中,能輕易地複製剪貼到你的程序碼中。在開發環境的右下角可以看到符號與“Open Datasheet”選項,每個零件都有自己的規格表,你能在進行配置前先取得,或是在配置完成後按鼠標右鍵來取得。

PSoC Creator還包含免費的Keil C編譯器,可提供的支援也是免費的;令我個人滿意的是,此係統並非以Eclipse為基礎。如果你真的想要冒險,你也可以採用一種Cypress稱為“datapaths”的技巧,打造小型硬件機器或其他功能。甚至還可以使用 Verilog語言。

(原文轉自: Exploring the PSoC 4,by Aubrey Kagan;本文作者為Emphatec工程經理)

臥龍會,臥虎藏龍!是由多名十幾年IT技術設計師組成,不泛20年的經理級別的設計工程師。更多精彩文 章,長按下面二維碼關注!

大家喜歡用微博的,關注我們微博

臥龍會微博:@臥龍會IT技術

我們同步更新到微博!

掃碼加入2000人臥龍會,這裡全是IT高手!


分享到:


相關文章: