使用應(yīng)廣單片機(jī)型號 Padauk PFS154 的超低功耗 LED 閃光燈,如何通過單塊電池的充電使 LED 盡可能長時間地閃爍呢?降低MCU功耗的第一步是使用低速振蕩器作為時鐘源。 在 PFS154 中,這稱為“ILRC”,根據(jù)電源電壓提供大約 52 kHz 的時鐘
LED 閃爍無疑是任何新興電子專家正在解決的第一組問題之一,可能是通過使用古老的 NE555 或者最近的微控制器來控制 LED。 事實證明,我們可以通過改變?nèi)魏维嵥榈膯栴}的約束條件來將其變成更困難的問題。
那么,如何通過單塊電池的充電使 LED 盡可能長時間地閃爍呢?
當(dāng)然,這也不是一個新問題。 我過去遇到過兩種有趣的方法:
項目是一個由分立晶體管制成的LED 閃光燈電路,功耗約為 50μA,并且能夠使用單個 AA 電池運(yùn)行多年。進(jìn)一步提高了標(biāo)準(zhǔn),并詳細(xì)研究了如何使用 CR2032 紐扣電池使 LED 在非常低的強(qiáng)度下發(fā)光多年。 他的項目日志確實值得一讀。 一個非常有趣的細(xì)節(jié)是,他得出的結(jié)論是,使用較低功耗的微控制器來控制 LED 實際上是最有效的選擇。 這可能有點(diǎn)違反直覺,但在查看他構(gòu)建離散版本的嘗試時顯得更加明顯。
許多微控制器提供高度優(yōu)化的低功耗睡眠模式,可用于在閃爍之間等待。 僅當(dāng) LED 需要閃爍時,微控制器才會激活。 此時,微控制器的有功功耗有多少并不重要,因為 LED 需要幾毫安的電流才能發(fā)出足夠的光。
輸入我之前在幾個項目中使用過的臭名昭著的“3 cent”Padauk 微控制器系列。 令我驚訝的是,這些器件提供了非常有競爭力的低功耗睡眠模式,似乎與幾種成本十倍的“低功耗”8 位微控制器相當(dāng)。 我研究了如何在 PFS154 上實現(xiàn)超低功耗 LED 閃光燈。
執(zhí)行
降低MCU功耗的第一步是使用低速振蕩器作為時鐘源。 在 PFS154 中,這稱為“ILRC”,根據(jù)電源電壓提供大約 52 kHz 的時鐘。 我發(fā)現(xiàn)的一個奇怪之處是,第一步必須激活高速和低速振蕩器,第二步僅禁用高速振蕩器。 直接切換到 ILRC 會導(dǎo)致 MCU 停止。 下面的代碼示例基于 free-pdk 包含的內(nèi)容。
在如此低的時鐘下運(yùn)行 PFS154 已將功耗降低至遠(yuǎn)低于 100 µA。 并非所有這些都是隨時鐘速率變化的動態(tài)功耗,因此進(jìn)一步的唯一方法是激活其中一種睡眠模式。
睡眠模式
PFS154 支持兩種睡眠模式:“STOPSYS”和“STOPEXE”。
STOPSYS 完全停止內(nèi)核和所有振蕩器。 從該狀態(tài)喚醒的唯一方法是通過更改引腳。
STOPEXE 停止內(nèi)核,但低頻振蕩器保持活動狀態(tài)并可用于為定時器提供時鐘。 內(nèi)核可以通過引腳變化或定時器事件喚醒。 看來,雖然數(shù)據(jù)表中沒有明確說明,8 位定時器和 16 位定時器都可以生成喚醒事件。 請注意,看門狗定時器在 STOPEXE 期間也會停止。 這與其他微控制器上的行為形成對比。
第一步,我使用萬用表來驗證睡眠模式期間的電流消耗與電源電壓,如上所示。 我基本上能夠重現(xiàn)數(shù)據(jù)表中的曲線,這證實了數(shù)據(jù)表是正確的,并且我的手持式萬用表實際上能夠準(zhǔn)確測量低至幾百 nA 的電流! 老實說,這不是我所期望的。
在此過程中,我發(fā)現(xiàn)了 PFS154 的一個特殊行為。 復(fù)位后,引腳更改喚醒始終默認(rèn)啟用。 看來引腳上非常小的變化就可以產(chǎn)生喚醒。 如果它們懸空,則只需觸摸引腳即可喚醒內(nèi)核。 有趣的是,這甚至適用于未在封裝外部布線的引腳,但它們?nèi)匀蛔鳛樾酒系暮副P存在。 通過觸摸 IC 的表面,可以生成喚醒事件! 除非您有興趣構(gòu)建一個黑客觸摸傳感器,否則建議禁用所有引腳作為喚醒源。
定時器喚醒的實現(xiàn)
由于我想構(gòu)建一個 LED 閃光燈,因此我使用 Timer2 以大約 1.6Hz 的頻率生成喚醒事件。 您可以在下面看到 STOPEXE 配置和定時器初始化的完整代碼。
一項重要的優(yōu)化是開啟“快速喚醒模式”。 正常喚醒模式需要大約 3000 個時鐘周期,在此期間消耗大約 40μA 的電流。 我發(fā)現(xiàn) 8 位定時器在 STOPEXE 模式下也可以用作 PWM 發(fā)生器。 然而,無法阻止它們喚醒 CPU,因此它們無法自主使用。
LED閃爍代碼
唯一剩下的部分是實際使 LED 閃爍的代碼。 這相當(dāng)簡單,如下所示。
處理器內(nèi)核將在定時器 2 生成每個事件后喚醒,打開 LED 75.5μS,然后再次讓內(nèi)核進(jìn)入睡眠狀態(tài)。 LED 直接連接到輸出引腳,無需串聯(lián)電阻,同時該引腳配置為低 I/O 驅(qū)動強(qiáng)度以限制最大電流。 這有點(diǎn)冒險,但允許將 LED 運(yùn)行到盡可能低的電壓——對于我使用的綠色 LED 來說約為 2.1V。
當(dāng)前消耗性能
嗯,代碼運(yùn)行良好,在電壓低至略高于 2V 的情況下,LED 以 1.6 Hz 的頻率閃爍。 您可以在這里找到完整的源代碼。
為了評估一切是否正常工作,我建立了一個簡單的功率模型,該模型考慮了睡眠模式電流、有源電流和 LED 使用的電流。 LED 電流是通過測量不同電源電壓下連接到微控制器的 LED 的導(dǎo)通電流并將其乘以占空比來確定的。 MCU 的有功電流也采用相同的方法。 您可以看到上面模型的輸出以及與測量值的比較。 我必須使用一個幾千歐姆的串聯(lián)電阻和一個并聯(lián)電容器,以確保電流紋波足夠平滑,以便在萬用表上獲得穩(wěn)定的讀數(shù)。
正如您所看到的,模型和測量結(jié)果之間有很好的一致性。 由于LED的占空比極低,主要功耗仍然是MCU和定時器。 這種貢獻(xiàn)高度依賴于電源電壓,因此可以在最低電壓下實現(xiàn)最高效的運(yùn)行。
3V 時的總電流消耗僅為 1 µA 左右! 這小于許多電池的自放電電流。 理論上,一塊容量約為 200 mAh 的 CR2023 電池可為這款閃光燈供電 200000 小時,即 22 年! 根據(jù)充電至 5V 的 330μF 電容器的電量,我能夠使電路運(yùn)行(如標(biāo)題圖片所示)超過 10 分鐘。
概括
盡管成本低廉,Padauk MCU 仍可用于極低功耗運(yùn)行。 當(dāng)然有一些方法可以進(jìn)一步改進(jìn)閃光燈電路,例如通過使用電感升壓轉(zhuǎn)換器來允許 LED 在更低的電壓下恒流運(yùn)行。
應(yīng)廣單片機(jī)產(chǎn)品應(yīng)用領(lǐng)域
玩具類:
RF/IR遙控直升飛機(jī),遙控車,PS游戲機(jī),兒童智能玩具,動物語音玩具,游戲方向盤,兒童學(xué)習(xí)機(jī)等
電子消費(fèi)類:
電子萬年歷、溫度濕度計、跑步計速器、按摩器、數(shù)碼復(fù)讀錄音、筆電子禮品、電子密碼鎖,鎳氫,鋰電池充電器,超聲波測距,防盜報警器,燈飾控制,舵機(jī)
深圳市逐高電子有限公司
我們是一家單片機(jī)代理、方案設(shè)計、芯片燒錄、配單等一條龍電子元器件服務(wù)商。公司擁有強(qiáng)大的資源優(yōu)勢和完整的產(chǎn)品線, 是臺灣應(yīng)廣單片機(jī)、 臺灣義隆單片機(jī)、臺灣九齊單片機(jī)一級代理。主要應(yīng)用于小家電、消費(fèi)類電子產(chǎn)品,LED照明控制等領(lǐng)域。
我公司設(shè)有專門的研發(fā)部門,具有雄厚的單片機(jī)開發(fā)實力,工程師都是具有多年單片機(jī)開發(fā)應(yīng)用經(jīng)驗,可為您提供較強(qiáng)的技術(shù)支援。
有先進(jìn)的開發(fā)能力,完善的售后服務(wù)及技術(shù)支援,現(xiàn)已成功開發(fā)出一系列電子產(chǎn)品方案。