作者: Vairamuthu Ramasamy和Shruti Hanumanthaiah,賽普拉斯半導體 在第三部分中,我們探討了如何應對具有電容式感應和LED照明的系統的常見設計挑戰。現在我們來介紹針對此類應用的低功耗設計考慮因素。 低功耗設計考慮因素 為了優化功耗,電容式傳感器通常以掃描-休眠-掃描-休眠的重復程序進行掃描。應按照特定時間間隔掃描傳感器,且器件會在連續掃描之間進入休眠狀態。一個掃描-休眠周期被稱為刷新間隔。 下面給出了掃描-休眠-掃描-休眠周期的時序圖。 圖1:掃描-休眠-掃描周期 現在我們來著重研究刷新間隔內的器件功率模式。當傳感器被掃描時,稱器件處于活動模式。傳感器掃描完成后,器件繼續處于活動模式,這期間CPU處理傳感器數據,驅動LED、蜂鳴器等輸出,并將傳感器數據傳輸到主機。這步完成后,器件才進入休眠模式。 在活動模式下,以下模塊啟動。 1.以MHz速度運行的主時鐘 2.電容式感應引擎 3.CPU 4.通信模塊,例如I2C或SPI 5.用于實現PWM以進行LED亮度控制的定時器。我們稱之為“快速定時器”,因為它能提供微秒時基。 6.用于維持刷新間隔的定時器。我們稱之為“慢速定時器”,因為它提供毫秒時基。 在休眠模式下,以下模塊啟動。 1.用于維持刷新間隔的慢速定時器。該定時器還能將器件從休眠模式中喚醒。 2.通信模塊,例如I2C(啟用喚醒地址匹配)或SPI 為實現最佳的功耗,應使用如下方法: 1.當掃描傳感器時,CPU進入休眠狀態 2.在掃描某個傳感器的同時,處理之前掃描過的傳感器的數據。這樣就避免了器件在所有傳感器掃描完成后處理傳感器數據的過程中處于活動狀態。 這些方法確實有助于優化功耗,但如果設計中包含LED亮度控制等高級功能,那么功耗優化就會退居次席。這是因為LED亮度控制需要在器件的整個執行周期內發生,因此要求快速定時器一直處于啟動狀態,也就是使MHz時鐘處于開啟狀態。這會導致更高的功耗。然而在功耗優化與LED亮度控制之間仍存在折衷方案。我們看看應該如何做。 1.CPU休眠 有些高級器件,包括賽普拉斯的PSoC4等ARM cortex-M器件,能在CPU進入休眠狀態的同時讓定時器等外設在后臺運行。我們以前了解了有兩種方法可以實現PWM: a.在基于固件的實現方案中,我們使用定時器中斷來驅動PWM。最好的方式是:只要中斷未被觸發就讓CPU處于休眠狀態。一旦觸發中斷,CPU立即喚醒以服務該中斷。ISR必須保持越短越好,以獲得更佳的功耗。 b.當使用硬件PWM時存在兩種情況。第一種情況是使用具有比較功能的定時器,該定時器不能直接驅動引腳。這種情況的功耗比較低,原因在于確定PWM的占空比時ISR只驅動引腳而不驅動邏輯,因此CPU喚醒的時間較短。第二種情況是使用能直接驅動輸出引腳的定時器。這種情況下不需要喚醒CPU來服務任何ISR,因此能進一步改善功耗。 以下的圖2給出了不同情景的CPU狀態。為了簡化,圖中未顯示CPU喚醒以處理傳感器數據的部分。 圖2:基于固件和硬件的PWM實現方案中的CPU狀態 2.在休眠模式下驅動LED 采用以上討論的功耗降低方法實現的優化效果并不明顯,因為只有CPU處于休眠狀態。主時鐘和定時器仍然開啟,并消耗功率。 一種解決方法是采用由低功率休眠模式下的時鐘驅動的定時器。這種情況下可將主時鐘關閉,并使器件進入休眠模式。如果有一個以上的定時器能在休眠模式下運行,那么其中一個可用來實現PWM,其它的用來維持刷新間隔。否則,這兩個工作都將通過慢速定時器來實現。 如果采用慢速定時器實現PWM以及維持刷新間隔,那么我們需要注意在功耗優化與PWM的占空比粒度之間進行權衡。如果要求的粒度低,應設定好定制器的周期,使其不能過于頻繁地產生中斷和喚醒器件。 例如,慢速定時器以32KHz的時鐘運行,刷新間隔為120ms。如果要求占空比以10的步長變化,例如10%、20%、30%等,而且所需PWM頻率是100Hz,那么定時器可加載周期值32,這樣每隔1ms生成中斷。如果要求的占空比粒度增加,那么中斷必須出現得比1ms更加頻繁。此時的功耗將比之前更高。 在很多SoC中,休眠模式下工作的時鐘其精度比主時鐘的精度要低很多。典型的休眠模式時鐘容差很大,可達到±60%。而且,為了節省BOM成本通常不使用外部晶體。這種情況下,可定期根據主時鐘校正休眠時鐘,這樣生成的PWM將與由主時鐘計時的定時器所生成的PWM一樣精確。 我們來了解一種借助主時鐘校正休眠模式時鐘的方法。定時器用休眠模式時鐘計時,并根據主時鐘周期的數量使用固件延遲程序生成固定延遲。固件邏輯在延遲的末尾讀取定時器計數。這就是定時器校正值。可將校正值或其倍數加載到定時器以創建延遲。 校正值 = 休眠模式時鐘 x 固件延遲 圖3:休眠模式時鐘校正法的方框圖演示 我們可以使用這種方法計算休眠模式時鐘的精確度。存在兩個誤差來源: 1. 主時鐘的精確度(e) 這會直接反映在固件延遲中,進而反應在校正值中。 2. 校正值的舍入誤差 (r) 假設最大有1位變化,誤差計算方法如下 最大舍入誤差 = 1/(固件延遲 ×休眠模式時鐘) 當休眠模式時鐘最低時,該誤差最大。使用較大的固件延遲能減少該誤差。 現在,校正值的最大誤差 = e + r。 現在考慮這種情況:休眠模式時鐘是32 KHz ± 50%,主時鐘的精確度為±2 %,固件延遲為1ms。 這種情況下,最慢的休眠時鐘是16 KHz,e = 0.02,r = 0.0625。因此,校正值的最大誤差 = 0.0825 或 8.25 %。注意,使用10ms的固件延遲可將誤差降至2.63%。 3.用喚醒式接近傳感器優化功耗 在觸摸按鍵應用中實現LED亮度功能同時保持低功耗的一種創新方法是使用喚醒式接近傳感器。 無線鼠標、移動電話、平板電腦、遙控背光以及筆記本鍵盤背光等應用均采用了這種技術,能在用戶接近設備時喚醒系統。這些應用利用接近傳感器確定何時從低功耗模式切換至全功能的活動模式。 圖4:使用喚醒式接近傳感器的應用 當電容式觸摸感應器件運轉在低功耗模式時,只掃描接近傳感器,同時關閉背光以表明器件處于非活動狀態。只掃描接近傳感器,這樣能降低平均功耗。當用戶手部接近UI面板時,接近傳感器可檢測手的出現,并喚醒設備。從低功耗模式喚醒后,電容式感應器件進入活動模式,并掃描所有按鍵傳感器以檢測觸摸情況。此外,背光開啟可幫助用戶觸摸正確的按鍵。 賽普拉斯的CapSense MBR3等器件已經在可配置的單芯片SoC中實現了喚醒式接近功能以及電容式感應和亮度控制功能。 |