新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 擁有USB的PSoC應(yīng)用于風(fēng)扇控制

擁有USB的PSoC應(yīng)用于風(fēng)扇控制

作者: 時間:2013-09-06 來源:網(wǎng)絡(luò) 收藏
如欲測量熱敏電阻(由具有很高電阻溫度系數(shù)的固體半導(dǎo)體材料構(gòu)成的熱敏類型的溫度檢測元件)的阻值,則把一個熱敏電阻和一個10k基準(zhǔn)電阻器連接至可以使用模擬多路復(fù)用器MUX1的引腳。連續(xù)時間模擬塊被配置為一個緩沖器,其輸入與模擬MUX總線1相連。該列中剩余的兩個塊和一個數(shù)字塊被配置為一個14位ADC,如上述示意圖7所示。

  該ADC的設(shè)定輸入范圍為0V~2.6V.電流DAC被接通,并針對一個200μA電流進行了設(shè)置。即使在20℃的溫度條件下,負載電壓也為2.4V.對于ADC的輸入范圍而言這是合適的。

  最后考慮的是4個模擬塊和5個數(shù)字塊的資源使用。這似乎超出了可用資源的范疇。資源不僅是可配置的;而且還是動態(tài)可重構(gòu)的。由于轉(zhuǎn)速計和ADC永遠不會同時使用,因此它們可以共享數(shù)字資源。配置一個ADC并加以使用。然后配置一個轉(zhuǎn)速計并使用。

  在該應(yīng)用中,4個數(shù)字塊實際上起到了5個數(shù)字塊的作用,也就是說數(shù)字塊資源的利用率達到了125%。

  I2C從屬用戶模塊具有極佳的易用性。對于本例而言,端口5的靠下的7個引腳被用來設(shè)定地址。該用戶模塊只需要一個至其即將使用的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)用負責(zé)設(shè)定I2C地址、定義為I2C用戶模塊和程序的其余部分所共有的存儲空間、并啟動該外設(shè)。

  下面的代碼列表示出了用于該風(fēng)扇應(yīng)用的控制環(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)之下。

  圖8:示意圖

  上述示意圖8出了完整的設(shè)計方案(所有的元件都被連接到了其適當(dāng)?shù)囊_)。

  該設(shè)計可以很容易地進行修改,以增設(shè)更多的自動調(diào)溫器。只需將每個自動調(diào)溫器連接至其自己的引腳并讀出其電阻即可。該通信接口以往采用的是I2C,只需采用適當(dāng)?shù)挠脩裟K便可輕而易舉地改為SPI、UART或。

  采用可編程系統(tǒng)級芯片的賽普拉斯CY8C24794微控制器為實現(xiàn)與各種傳感器和外圍設(shè)備的連接奠定了基礎(chǔ)。其動態(tài)可重構(gòu)性有利于實現(xiàn)極高的片上資源利用率。對于我來說,它是理想的嵌入式系統(tǒng)控制器選擇。


上一頁 1 2 3 4 下一頁

關(guān)鍵詞: USB PSoC 風(fēng)扇控制

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉