Gömülü cihazlarda düşük güç tasarımı: pille yıllarca çalışmak
Pille çalışan bir sensör ya da IoT cihazının ömrünü uyku akımından çok uyanık kalınan süre belirler. Güç bütçesi, uyku modları, regülatör seçimi, kaçak akımlar ve doğru ölçümle pil ömrünü aylardan yıllara taşımanın pratik yolu.
Pille çalışan bir sensör ya da IoT cihazının ömrünü çoğu zaman uyku akımından çok uyanık kalınan süre belirler. Bu yazıda güç bütçesini nasıl çıkaracağınızı, uyku modlarını, regülatör seçimini, gözden kaçan kaçak akımları ve doğru ölçümü anlatıyoruz; amaç pil ömrünü aylardan yıllara taşımak.
Sahaya dağıtılmış bir cihazda pil değiştirmek, cihazın kendisinden pahalıya gelebilir: araç, personel, erişim izni, bazen de iş durması. Bu yüzden düşük güç tasarımı “sonradan optimize ederiz” denecek bir iş değil; donanım ve firmware kararlarının ilk gününden itibaren konuşulması gereken bir gereksinimdir.
TW Bilişim olarak gömülü donanım ve firmware projelerinde gördüğümüz tablo şu: pil ömrü hedefi kâğıtta yazılı değilse, prototip masada güzel çalışır ama sahada beklenenin çeyreği kadar dayanır.
Önce güç bütçesi: ortalama akım tek gerçek sayıdır
Pil ömrü, cihazın ortalama akımına bağlıdır. Ortalama akımı bulmanın yolu, bir çalışma periyodundaki her durumun akımını süresiyle çarpıp toplamak ve periyoda bölmektir:
Ortalama akım = (uyku akımı × uyku süresi + aktif akım × aktif süre + radyo akımı × iletim süresi) ÷ periyot
Örnek: Her 10 dakikada bir uyanan, ölçüm yapıp veriyi gönderen bir sensör düğümü.
| Durum | Akım | Süre (10 dk'da) | Yük (mA·s) |
|---|---|---|---|
| Uyku (RTC açık) | 5 µA | ~598 s | ~3 |
| Uyanık: MCU + sensör | 15 mA | 2 s | 30 |
| Radyo iletimi | 120 mA | 0,1 s | 12 |
| Toplam | 600 s | ~45 |
45 mA·s ÷ 600 s ≈ 75 µA ortalama. 3000 mAh'lik bir pil paketi teorik olarak 40.000 saat, yani yaklaşık 4,5 yıl eder. Kendi kendine deşarj, sıcaklık ve pil yaşlanması için %20–30 pay bırakınca gerçekçi hedef 3 yıl civarıdır.
Tablodaki asıl ders şu: uyku akımı toplam yükün yalnızca %7'si. Uyanık kalınan 2 saniyeyi 0,5 saniyeye indirmek, ortalama akımı neredeyse yarıya düşürür. Uyku akımını 5 µA'den 2 µA'e çekmek ise çok daha az fark yaratır.
Uyanık kalma süresini kısaltın
Düşük güçte en büyük kazanç “daha az çalışmak” değil, daha kısa çalışmaktır:
- Kesme (interrupt) tabanlı firmware: Bekleme döngüsünde (busy-wait) dönen bir MCU, hiçbir şey yapmadan tam akım çeker. Sensör hazır olduğunda kesmeyle uyanın.
- Sensör ısınma süreleri: Bazı sensörler ölçümden önce yüzlerce milisaniye ister. Datasheet'teki minimum süreyi kullanın; “garanti olsun” diye eklenen 1 saniyelik gecikmeler pil ömründen yer.
- Saat frekansı: Yüksek frekansta kısa çalışıp uykuya dönmek, düşük frekansta uzun çalışmaktan çoğu zaman daha verimlidir (race-to-sleep).
- Veriyi biriktirin: Her ölçümü ayrı göndermek yerine birkaç ölçümü tek pakette yollamak, radyonun açılma ve bağlantı kurma maliyetini paylaştırır.
Radyo genelde en büyük tüketicidir
Hücresel, Wi-Fi ve hatta BLE modüllerinde iletim anındaki akım, MCU'nun aktif akımının katları kadardır. Ayrıca bağlantı kurma (ağa kayıt, TLS el sıkışması) asıl veri gönderiminden uzun sürebilir.
- Wi-Fi her uyanışta yeniden bağlanıyorsa, bağlantı süresi bütçenin büyük kısmını yer. Sabit IP, kanal bilgisini saklama gibi yöntemler süreyi kısaltır.
- Hücresel modemlerde (LTE-M, NB-IoT) PSM ve eDRX gibi güç tasarrufu modları, modemin ağdan kopmadan uyumasını sağlar; operatör desteği sahada doğrulanmalıdır.
- Protokol seçimi de bütçeyi etkiler. Kablolu tarafta hangi hattı seçeceğinizi protokol seçimi yazımızda ele aldık.
Regülatör ve kaçak akımlar: görünmeyen tüketiciler
Uyku akımı hedefi birkaç mikroamper ise, devredeki her küçük kaçak önem kazanır:
- Regülatörün boşta akımı (quiescent current): Bazı LDO'lar hiç yük yokken onlarca mikroamper çeker; bu tek başına tüm uyku bütçesini aşabilir. Düşük Iq'lu bir LDO ya da hafif yükte verimli bir buck dönüştürücü seçin. Buck dönüştürücülerin verimi yüksek yükte iyidir ama mikroamper seviyesinde düşebilir; datasheet'teki hafif yük eğrisine bakın.
- Pull-up ve gerilim bölücüler: Pil gerilimini ölçen 100 kΩ'luk bir bölücü sürekli akım çeker. Bölücüyü bir MOSFET ile yalnızca ölçüm anında devreye alın.
- Sensör ve çevre birimlerinin beslemesi: Uykudayken gerekmeyen sensörleri bir yük anahtarı (load switch) ya da GPIO ile tamamen kapatın.
- Yüzen (floating) pinler: Tanımsız bırakılan girişler beklenmedik akım çekebilir; kullanılmayan pinleri tanımlı bir duruma getirin.
- LED'ler: “Çalışıyor” LED'i birkaç miliamper çeker. Sahada gerekiyorsa çok kısa yanıp sönen bir desen kullanın.
Pil seçimi: kapasite tek kriter değil
- Darbe akımı: CR2032 gibi düğme piller yüksek darbe akımında gerilim düşürür; radyo iletimi sırasında cihaz resetlenebilir. Yeterli bir tampon kondansatör ya da farklı bir pil kimyası gerekebilir.
- Kendi kendine deşarj: Uzun ömür hedeflenen cihazlarda pilin rafta kaybettiği enerji de bütçeye girer.
- Sıcaklık: Soğukta kullanılabilir kapasite düşer. Dış ortam cihazlarında bütçeyi en soğuk senaryoya göre yapın.
- Kesme gerilimi: MCU ve radyonun çalışabildiği en düşük gerilim, pilin ne kadarını gerçekten kullanabildiğinizi belirler.
Ölçmeden optimize etmeyin
Multimetre ortalama akımı doğru göstermez; milisaniyelik radyo darbelerini kaçırır. Doğru ölçüm için:
- Güç profilleme cihazı ya da şönt direnç + osiloskop ile akımı zaman ekseninde kaydedin.
- Uyku, uyanış ve iletim fazlarını ayrı ayrı görün; tablodaki bütçeyle karşılaştırın.
- Ölçümü gerçek firmware ve gerçek ağ koşuluyla yapın. Zayıf sinyalde modem çok daha uzun açık kalır.
- Akım profilini otomatik testlere eklemek, bir firmware güncellemesinin pil ömrünü sessizce kısaltmasını önler. Bu yaklaşımı HIL testi yazımızda anlattık.
Düşük güç ve güvenilirlik birlikte düşünülmeli
Uykudan uyanamayan bir cihaz, pili bitmiş bir cihazla aynı sonucu verir. Bu yüzden:
- Brown-out algılama, pil zayıfladığında cihazın belirsiz durumda takılmasını önler.
- Watchdog düşük güç modlarıyla uyumlu kurulmalıdır; ayrıntıları watchdog yazımızda bulabilirsiniz.
- Uzaktan güncelleme pil bütçesine dahil edilmelidir. OTA güncelleme sırasında radyo uzun süre açık kalır; pil düşükken güncellemeyi ertelemek iyi bir kuraldır.
Pratik checklist
| Madde | Net mi? | Not |
|---|---|---|
| Pil ömrü hedefi yazılı (yıl) | ☐ | En soğuk senaryoya göre |
| Durum bazlı güç bütçesi tablosu | ☐ | Uyku, aktif, radyo |
| Uyanık kalma süresi ölçüldü | ☐ | Busy-wait yok |
| Regülatör Iq değeri bütçede | ☐ | Hafif yük verimi |
| Bölücü ve sensör beslemesi anahtarlı | ☐ | Uykuda kapalı |
| Darbe akımı ve pil kimyası uyumlu | ☐ | Reset riski |
| Akım profili zaman ekseninde ölçüldü | ☐ | Gerçek ağ koşulu |
| Brown-out ve watchdog test edildi | ☐ | Düşük pilde |
SSS
Uyku akımını ne kadar düşürmek yeterli?
Hedefi pil ömründen geriye doğru hesaplayın. Uyku akımı toplam yükün küçük bir kısmıysa, önce aktif süreyi ve radyo kullanımını kısaltmak daha çok kazandırır.
Pil ömrünü datasheet değerleriyle hesaplamak yeterli mi?
Başlangıç için evet, karar için hayır. Gerçek firmware, gerçek sensör ve gerçek ağ koşulunda ölçülmüş akım profili olmadan tahmin iyimser kalır.
Enerji hasadı (güneş, titreşim) pili tamamen ortadan kaldırır mı?
Bazı uygulamalarda evet, ama hasat kaynağı kesildiğinde cihazın ne kadar dayanacağı yine bir depolama elemanı ve güç bütçesi gerektirir.
Mevcut bir cihazın pil ömrünü firmware ile uzatmak mümkün mü?
Çoğu zaman evet. Uyanma sıklığı, gönderim aralığı, sensör ısınma süreleri ve radyo bağlantı akışı firmware ile iyileştirilebilir. Donanımdaki kaçaklar ise kart revizyonu ister.
TW Bilişim bu konuda ne yapıyor?
Pille çalışan cihazlarda güç bütçesini çıkarıyor, akım profilini ölçüyor ve donanım ile firmware tarafındaki iyileştirmeleri birlikte planlıyoruz. Amaç, pil ömrü hedefini sahaya çıkmadan önce sayıyla doğrulamak.
Sonuç
Sıra basit: pil ömrü hedefini yazın → durum bazlı güç bütçesi çıkarın → uyanık kalma süresini ve radyo kullanımını kısaltın → regülatör ve kaçak akımları temizleyin → zaman ekseninde ölçün → düşük pil senaryosunu test edin. Bu sıra netse, pil ömrü tahmin olmaktan çıkar.
Pille çalışan bir cihazın güç bütçesini birlikte çıkarmak isterseniz: iletişim veya [email protected].