《電子技術(shù)應用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > 具有USB的PSoC在風扇控制中的應用

具有USB的PSoC在風扇控制中的應用

2011-03-08

  在選擇微控制器的過程中,,一個重要的特征是其與周圍環(huán)境的全面連接能力,?;谖⒖刂破鞯南到y(tǒng)必須具有一個至傳感器的簡易型廉價接口以及通信接口等等。賽普拉斯公司的可編程系統(tǒng)級芯片(PSoC)架構(gòu)提供了適合各種應用且靈活性和經(jīng)濟性極佳的解決方案,。
  本文將著重介紹CY8C24794 PSoC芯片,。如下文所述,它具有四個主要部分:PSoC內(nèi)核,、數(shù)字系統(tǒng),、模擬系統(tǒng)和包括一個全速USB端口的系統(tǒng)資源,。這種架構(gòu)使得用戶能夠創(chuàng)建與各應用的要求相吻合的定制外設配置。USB接口再加上可配置模擬和數(shù)字外設,,使得CY8C24794在與其外部環(huán)境的連接中擁有了最佳的通用性,。

CY8C24794架構(gòu)

 

   PSoC內(nèi)核包括:
  ·一個8位、4MIPS CPU
  ·16kbytes程序快速擦寫ROM
  ·1Kbytes數(shù)據(jù)RAM
  ·精度達±0.25%的內(nèi)部24MHz振蕩器(在USB應用中)
  ·睡眠和看門狗定時器
   ·低速32kHz振蕩器
  ·通用型輸入/輸出引腳IO(GPIO)允許把任何引腳用作數(shù)字輸入或輸出,,并將大多數(shù)引腳用作模擬輸入或輸出。每個引腳均可被用作一個數(shù)字或模擬中斷,。
  數(shù)字系統(tǒng)由4個數(shù)字PSoC塊組成,。如下圖所示,每個塊都是一個8位資源,,既可單獨使用,,也可與其他塊相組合以形成外設。
 

CY8C24794數(shù)字系統(tǒng)

    可能的外設包括:
  ·PWM(8位~32位)
  ·具有不工作區(qū)的PWM(8位~24位)
  ·計數(shù)器(8位~32位)
  ·具有可選奇偶性的8位UART
  ·SPI主控器和從動器
  ·循環(huán)冗余校驗器/發(fā)生器(8位~32位)
  ·偽隨機序列發(fā)生器(8位~32位)
  這些數(shù)字塊可通過一系列通用總線與任何GPIO相連,。這些總線還為進行信號多路復用和邏輯運算創(chuàng)造了條件,。
  下圖所示的模擬系統(tǒng)包括6個可配置塊,每個塊由一個運算放大器電路組成,,從而實現(xiàn)了復雜模擬信號流的生成,。模擬外設具有非常高的靈活性,并可通過客戶化設計來支持特定的應用要求,。

 

CY8C24794模擬系統(tǒng)

  一些更加常用的PSoC模擬部件是:
  ·濾波器(雙極點和四極點帶通,、低通和陷波濾波器)
  ·放大器(多達2個,具有至48倍的可選增益)
  ·儀表放大器(1個,,具有至93倍的可選增益)
  ·比較器(多個2個,,具有16種可選門限)
  ·DAC(多達2個,具有6位~10位分辨率)
  ·SAR型ADC(多達2個,,具有6位分辨率)
  當與數(shù)字塊組合時,,用戶還能夠生成額外的部件,包括:
  ·增量型ADC(多達2個,,具有6位~14位分辨率)
  ·增量-累加(ΔΣ)型ADC(1個,,在62.5ksps采樣速率條件下具有8位分辨率)
    附加的系統(tǒng)資源可提供適用于完整系統(tǒng)設計的更多功能。這些資源包括:
  ·具有5個可配置端點和256bytes RAM的全速USB(12Mbps),,只需要2個外部串聯(lián)電阻器,。
  ·硬件I2C通過兩根電纜提供了100kHz和400kHz通信。支持從模式,、主模式和多主模式,。
  ·數(shù)字時鐘分頻器提供了三種適合不同應用的可定制時鐘頻率??赏ㄟ^布線使時鐘與數(shù)字和模擬系統(tǒng)相連,。
  ·兩個乘法累加單元(MAC)提供了具有16位結(jié)果的快速帶符號8位乘法和32位累加運算功能,,旨在幫助進行通用數(shù)學和數(shù)字信號處理。
  ·抽取器提供了一個針對數(shù)字信號處理應用(包括ΔΣ型ADC的形成)的定制硬件濾波器,。
  ·低電壓檢測(LVD)中斷能夠指示電壓電平的下降,,而先進的POR(上電復位)電路則免除了增設一個系統(tǒng)監(jiān)控器的需要。
  ·內(nèi)部1.3V基準提供了一個用于模擬系統(tǒng)(包括ADC和DAC)的絕對基準
  ·通用型模擬多路復用器系統(tǒng),。
    當選擇一個控制器時,,設計師必須了解需要多少個模擬輸入。對于只需要6個輸入的系統(tǒng),,8個輸入是否足夠,?需求會不會進一步提高?一個特殊的控制器系列能夠處理多少個模擬輸入,?CY8C24794通過允許將其多達6個I/O端口與一個模擬多路復用器相連的方法(從而可將48個引腳用于模擬信號)解決了該問題,。下圖對此進行了詳細的圖示。
 

I/O模擬多路復用器實際是兩根總線

                                   圖4:CY8C24794 I/O模擬多路復用器總線/系統(tǒng)連接
    一個I/O模擬多路復用器實際是兩根總線,,如果需要的話,,可在內(nèi)部進行連接。它實質(zhì)上就是一個大型交叉開關,,允許將 任何引腳連接至一個模擬控制系統(tǒng)的模擬陣列,。每個引腳都具有一個開關,當被選擇時則與一根模擬總線相連,。如果模擬陣列和數(shù)字塊被配置成一個ADC,,則將能夠檢測多達48個輸入信號的電壓。
    與模擬多路復用器總線相連的還有一個電流源,。該電流DAC是可選的,,并具有兩個調(diào)節(jié)范圍,即:0μA~20μA或0μA~400μA,。如欲讀出一個電阻值,,則只需:
  1 將電阻連接至一個引腳
  2 把該引腳連接至模擬總線
  3 啟動電流DAC
  4 利用同樣連接至該總線的ADC來測量負載電壓。該電壓是電阻與電流的乘積,。
    為了獲得超高準確度,,一種方法是犧牲一個引腳來換取一個基準電阻器。將該電阻器連接至總線,,并測量其兩端的負載電壓,。然后,斷開該電阻器,、連接所需的電阻器并測量其負載電壓,。這兩個電壓讀數(shù)之比就等于兩個電阻器的阻值之比。電流準確度中的任何誤差都將下降,。此時,,測量的準確度完全取決于基準電阻器的準確度,。
    加至模擬多路復用器上的一個放電開關可被用來測量電容。當受到DC電流的激勵時,,與電阻器將產(chǎn)生一個DC負載電壓

 

不同,,電容器生成的是一個斜坡電壓。該斜坡速率與激勵電流成正比,,而與測量電容成反比,。為了方便該轉(zhuǎn)換速率的測量,模擬部分被配置成一個采樣比較器,。電容器被連接至總線,,從而產(chǎn)生一個轉(zhuǎn)換信號。當該信號達到比較器的調(diào)整點時,,放電開關進入工作狀態(tài),導致電容器放電回零,。開關隨后釋放,,該循環(huán)繼續(xù)進行。這個過程被稱為弛張振蕩,。顯然,,這種循環(huán)的頻率與施加的電流成正比,而與電容成反比,。比較器輸出被饋至數(shù)字部分,,這里已經(jīng)配置了一個頻率計數(shù)器或周期定時器。電容可從測量數(shù)字信號推導出來,。
    有多種換能器可將信號轉(zhuǎn)換成電容,,比如顯微機械加工加速器。電容的一項重要應用是測量手指的存在與否,。該技術(shù)可被用于電容性觸摸開關的移植,,這種觸摸開關正在逐漸取代消費類電子產(chǎn)品(比如:MP3播放器、筆記本電腦和移動電話)中的按鈕和開關,。電容性觸摸開關提供了一種獨特的用戶體驗,,而且不易受到潮濕以及其他環(huán)境因素的損壞。
  風扇控制應用
    PSoC器件的常見應用之一便是風扇控制,。PSoC架構(gòu)的超群集成度使得實際風扇控制應用的元件數(shù)量減少了25個以上,。我們將研究下面方框圖中所示的一種速度受控型風扇實例。
 

設計方案框圖

     對所需的溫度進行測量,,并將測量值用于定義期望的風扇速度(調(diào)整點),。最初,對于20℃以下的溫度,,該參數(shù)為2000RPM,;對于70℃以及更高的溫度,,該參數(shù)則為7000RPM,并且隨著這些極限值之間的溫度呈線性變化,。這些是初始值,;它們必須能夠由主機通過I2C接口來改變。輸送至風扇的功率由一個脈寬調(diào)制器(PWM)來控制,。其頻率應接近1kHz,。一個轉(zhuǎn)速計被連接至風扇,用于測量其速度,??刂扑惴ㄇ蟮闷谕俣扰c測量速度之差(誤差),并用它來確定PWM的合適占空比,。與溫度一樣,,這些控制參數(shù)的設定值也必須能夠通過I2C主機來改變。
    PWM是利用一個數(shù)字塊來實現(xiàn)的,。所做的一項改進是采用了另一個數(shù)字塊來生成一個具有50.2%(128/255)占空比的偽隨機脈沖流,。當把該信號連接至PWM啟動引腳時,PWM的工作頻率將是一個連續(xù)啟動的PWM的50.2%,,如下圖所示,。
 

PWM實現(xiàn)方案

  這種方案的好處是輸出頻率現(xiàn)在擁有了一個±3%的高頻抖動。這顯著地降低了峰值諧波EMI輻射,。

  脈沖寬度的改變將在軟件的控制之下進行,。
  轉(zhuǎn)速計電路由兩個數(shù)字塊(被配置為一個16位定時器)和一個連續(xù)模擬塊(被配置為一個比較器)組成,用于調(diào)節(jié)風扇的轉(zhuǎn)速計信號,。
  風扇速度是通過測量兩個脈沖之間的時間長度來確定的,。比較器與列比較器總線0相連,后者又與定時器的捕獲信號相連,。風扇的標稱轉(zhuǎn)速為2000rpm~7000rpm,。選定的風扇具有4個極點,因此標稱范圍將具有133Hz(2000×4/60)和467Hz的標稱頻率,。當采用一個用于實現(xiàn)定時器同步的2MHz系統(tǒng)時鐘時,,可以測量長達328mS或31Hz的脈沖寬度。
  一個熱敏電阻將被用來測量溫度,。所選的產(chǎn)品型號是muRata NTH5G16P33B103J07TH,,其溫度-電阻關系如下。
  muRata NTH5G16P33B103J07TH溫度-電阻關系

 

         如欲測量熱敏電阻的阻值,,則把一個熱敏電阻和一個10k基準電阻器連接至可以使用模擬多路復用器MUX1的引腳,。連續(xù)時間模擬塊被配置為一個緩沖器,其輸入與模擬MUX總線1相連,。該列中剩余的兩個塊和一個數(shù)字塊被 配置為一個14位ADC,,如下圖所示,。
 

 

溫度計實現(xiàn)方案

  該ADC的設定輸入范圍為0V~2.6V。電流DAC被接通,,并針對一個200μA電流進行了設置,。即使在20℃的溫度條件下,負載電壓也為2.4V,。對于ADC的輸入范圍而言這是合適的,。
  最后考慮的是4個模擬塊和5個數(shù)字塊的資源使用。這似乎超出了可用資源的范疇,。PSoC資源不僅是可配置的,;而且還是動態(tài)可重構(gòu)的。由于轉(zhuǎn)速計和ADC永遠不會同時使用,,因此它們可以共享數(shù)字資源,。配置一個ADC并加以使用。然后配置一個轉(zhuǎn)速計并使用,。在該應用中,,4個數(shù)字塊實際上起到了5個數(shù)字塊的作用,也就是說數(shù)字塊資源的利用率達到了125%,。
  

  I2C從屬用戶模塊具有極佳的易用性。對于本例來說,,端口5的靠下的7個引腳被用來設定地址,。該用戶模塊只需要一個至其即將使用的RAM空間的指針。
  就本例而言,,下列變量將被存儲于I2C存儲空間中,。
  struct I2C_Space{/Memory Common to I2C 
    char cTem

 

p;
    char cTempLowerLimit;
    int  iFanLowerRPM;
    char cTempUpperLimit;
    int  iFanUpperRPM;
    int  iControlWeightFactor;
    int  iTachRPM;   
  } MyI2C_Space;
    以下是使I2C接口正常運作所需的全部代碼:
  EzI2Cslave_SetAddr((PRT5DR & 0x7f0));/Port 5 controls I2C address
  EzI2Cslave_SetRamBuffer( 11, 11,(BYTE *) &MyI2C_Space );
  EzI2Cslave_Start(void)
  這些功能調(diào)用負責設定I2C地址、定義為I2C用戶模塊和程序的其余部分所共有的存儲空間,、并啟動該外設,。
  下面的代碼列表示出了用于該風扇應用的控制環(huán)路。
  while(1){
   while(bSleepTimerTick !=0);
   bSleepTimerTick = 0;
  
   LoadConfig_ADC();
   MyI2C_Space.cTemp = cGetTemp();
   UnloadConfig_ADC();
  
   LoadConfig_Tach();
   MyI2C_Space.iTachRPM = iReadTach();
   UnloadConfig_Tach();
  
   UpdatePWM();
  }
  請注意,,ADC和轉(zhuǎn)速計始終處于被配置和重構(gòu)的狀態(tài)之下,。
  下圖示出了完整的設計方案(所有的元件都被連接到了其適當?shù)囊_)。
 風扇控制示意圖

點擊看原圖

 


                                                       圖8:風扇控制示意圖
  該設計可以很容易地進行修改,,以增設更多的自動調(diào)溫器,。只需將每個自動調(diào)溫器連接至其自己的引腳并讀出其電阻即可。該通信接口以往采用的是I2C,,只需采用適當?shù)挠脩裟K便可輕而易舉地改為SPI,、UART或USB。
  采用可編程系統(tǒng)級芯片的賽普拉斯CY8C24794微控制器為實現(xiàn)與各種傳感器和外圍設備的連接奠定了基礎,。其動態(tài)可重構(gòu)性有利于實現(xiàn)極 高的片上資源利用率,。對于我來說,,它是理想的嵌入式系統(tǒng)控制器選擇。
  

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。