Skip to main content

İşlemci Güç Beslemesi

Bu sayfa, MCU tarafındaki güç davranışını ve firmware ile güç mimarisi arasındaki “sözleşmeyi” tanımlar. Güç katmanına ait regülatör, sigorta/TVS, adaptör girişi, batarya şarj ve ölçüm gibi donanım detayları Güç Katmanı dokümanında ele alınmıştır; burada odak, MCU’nun 3V3 besleme tercihi, brown-out/undervoltage davranışı, sleep/idle stratejisi ve bunun batarya hedefleriyle akım bütçesi üzerinden uyumudur.


Besleme topolojisi ve 3V3 tercihi

B107AA R6’da ana işlemci, sistemin ortak dijital besleme hattı olan 3.3V üzerinden çalışır. Bu tercih yalnızca “MCU 3V3 çalışsın” yaklaşımı değildir; kartın genel mimarisinde birden fazla alt bloğun (I2C çevre birimleri, sensörler, seviye dönüştürücü katmanları ve düşük güç ölçüm bileşenleri) aynı lojik seviyede buluşturulması amaçlanır. Böylece seviye dönüştürme ihtiyacı yalnızca gerçekten gerekli hatlarda kalır; karma seviye kaynaklı EMI hassasiyeti ve kaçak akım riskleri azalır; batarya modunda ise daha verimli bir güç davranışı elde edilir.

MCU beslemesi için kritik prensip, dijital 3V3 hattının sahadaki gürültüden mümkün olduğunca izole ve düşük empedanslı tutulmasıdır. Bu nedenle decoupling yerleşimi (MCU VCC pinlerine yakın 100nF + bulk kapasitör yaklaşımı) ve geri dönüş yolları (GND) güç katmanı tasarım prensipleriyle uyumlu yürütülmelidir.


Güç durumları ve çalışma senaryosu

Cihaz sahada “devamlı çalışma” yaklaşımıyla tasarlanmıştır. Şebeke varken GSM açık ve çalışma modundadır. Şebeke gittiğinde sistem, “enerji gitti” durumunu tespit eder ve tek seferlik bir bildirim/telemetri gönderimi yapar; ancak anlık enerji gidiş–gelişlerini (kısa kesintileri) yönetebilmek için GSM’i hemen kapatmaz. Bunun yerine bir bekleme penceresi (≈30 dakika) başlatılır. Bu pencere boyunca GSM açık kalır ve yalnızca anlamlı olaylar (ör. şebekenin geri gelmesi) için iletişim hazır tutulur.

Eğer 30 dakika sonunda şebeke hâlâ yoksa cihaz battery moduna geçer: GSM kapatılır ve periyodik telemetri için kullanılan RTC alarmı devre dışı bırakılır. Batarya beslemesi altında cihaz, derin uykuya geçmek yerine MCU’yu çalışır halde tutar; ana loop çoğunlukla boş döner ve yalnızca şebekenin geri gelmesi gibi kritik bir interrupt oluştuğunda aksiyon alır. Şebeke uzun süre geri gelmezse batarya tükenir ve sistem UVLO noktasında kapanır.


Bu akışta iki kavram kritiktir. Birincisi, firmware’in ana işleyişi “sürekli kontrol” yerine çoğunlukla interrupt/event temellidir; yani ölçüm problemleri, saha alarmları ve durum değişimleri bir “olay” üretir ve ana loop bu olayları işler. İkincisi, şebeke varken telemetri akışı RTC üzerinden zamanlanır; bu sayede periyotlar arasında CPU gereksiz iş yükü üretmez.


Veri gönderim periyotları

Periyot seçimi pompa durumuna göre farklılaştırılır: pompa çalışıyorken hedef telemetri periyodu 5 dakika, pompa çalışmıyorken hedef telemetri periyodu 15 dakika olarak ele alınır.

Bu periyotlar iki farklı tetik mekanizmasıyla işletilir.

Zamanlı gönderim (RTC alarm): Normal akışta telemetri, RTC alarm interrupt’ı ile tetiklenir. Alarm geldiğinde ilgili birimlerden veriler okunur, paket hazırlanır ve GSM üzerinden gönderilir. Gönderim tamamlandıktan sonra bir sonraki RTC alarmı, o anki pompa durumuna göre 5/15 dakika olacak şekilde yeniden kurulur.

Olay bazlı gönderim (interrupt ile anlık): Zamanlı gönderimi beklemeden, sahada anlamlı bir durum değişimi oluştuğunda telemetri anlık olarak gönderilir ve zamanlayıcı yeniden planlanır. Bu davranış özellikle pompa durumunun değişmesi gibi olaylarda kritiktir. Örneğin pompa çalışırken sistem 5 dakikalık periyotta ilerliyorsa ve 4. dakikada pompa durdu bilgisi bir interrupt/event olarak geldiyse cihaz 5. dakikayı beklemez; anında paketleyip gönderir ve ardından RTC alarmını 15 dakikaya kurar. Benzer şekilde pompa durmuşken pompa tekrar çalışmaya başlarsa anlık gönderim yapılır ve RTC periyodu 5 dakikaya çekilir.

Bu yaklaşım telemetrinin “durum değişimlerine hızlı tepki vermesini” sağlarken, periyodik gönderim sayesinde sistemin düzenli heartbeat benzeri davranışını korur. Uygulamada önemli bir nüans vardır: pompa durumunun gürültü nedeniyle kısa süreli gidip gelmesi (flapping) istenmez. Bu nedenle pompa durum değişimi, giriş tarafında debounce/filtreleme veya yazılım tarafında minimum süre/histerezis ile doğrulanarak “gerçek durum değişimi” olarak kabul edilmelidir.

Not: Bu periyodik telemetri akışı yalnızca şebeke varken aktiftir. Şebeke kesildiğinde periyodik RTC alarmı kapatılır; kısa süreli kesintiler için GSM grace penceresinde (~30 dk) açık tutulur. Kesinti 30 dakikayı aşarsa cihaz battery moduna geçer ve GSM kapalı şekilde bekler.


Brown-out ve undervoltage davranışı

Sahada en maliyetli arızalardan biri, besleme gerilimi düşerken MCU’nun “belirsiz bölgede” çalışmasıdır. Bu durum flash/EEPROM yazımı sırasında veri bozulması, modem kontrol hatlarında kararsızlık ve yanlış röle sürüşleri gibi sonuçlar doğurabilir. Bu yüzden iki katmanlı bir yaklaşım benimsenir.

Donanım/MCU seviyesi: Brown-out (BOR)

MCU’nun Brown-out Detector (BOR) seviyesi, 3.3V sistem için güvenli çalışmayı garanti edecek biçimde seçilmelidir. AVR ailesinde tipik olarak 2.7V BOR seviyesi, 3.3V sistemlerde pratik bir güvenlik eşiğidir. Ancak nihai karar; MCU datasheet’inde belirtilen frekans–gerilim çalışma aralığı ve karttaki 3V3 regülatör karakteristiğiyle birlikte verilmelidir.

Yazılım seviyesi: Undervoltage politikası (histerezisli)

Batarya gerilimi veya 3V3 hattı (tasarımda hangi nokta ölçülüyorsa) belirli bir eşiğin altına düştüğünde firmware “yük azaltma” moduna geçer. Bu modda GSM kapatılır, yazma operasyonları (EEPROM/flash) güvenli koşullar sağlanana kadar ertelenir ve ürün politikasına göre röle/çıkışlar fail-safe duruma çekilir. Eşikler mutlaka histerezisli tanımlanmalıdır; aksi halde eşik çevresinde gidip gelme (flapping) yaşanır.


Sleep/idle stratejisi

Bu platformda düşük güç stratejisi, iki farklı işletim konumuna göre ele alınır.

Normal mod (Şebeke var, GSM açık)

Şebeke varken ana amaç, “minimum güç” değil stabil haberleşme ve deterministik davranıştır. Buna rağmen CPU’nun boşta kaldığı anlarda idle benzeri modlara girmek ısınmayı ve gereksiz tüketimi azaltır. Ana loop event kuyruğu boş olduğunda idle’a düşebilir; UART/I2C/SPI gibi çevre birimleri veri akışının gerektirdiği kadar açık tutulur. RTC alarm, periyodik telemetriyi tetikler ve periyot aralarında CPU’nun mümkün olduğunca boşta kalması hedeflenir.

Batarya modu (Şebeke yok)

İlk faz Power Lost (grace penceresi)’dir: Şebeke kesildiğinde cihaz bir kez “enerji gitti” telemetrisini yollar, GSM’i açık tutar ve yaklaşık 30 dakikalık bir bekleme penceresi başlatır. Bu pencerenin amacı, sahada sık görülen kısa kesintilerde cihazın haberleşmeyi kaybetmeden hızlı şekilde normale dönebilmesidir. Bu fazda periyodik telemetri için kullanılan RTC alarmı kapatılır; cihaz yalnızca anlamlı olaylarda (ör. şebeke geri geldi) iletişim kurmaya hazır kalır.

İkinci faz Battery Wait’tir: 30 dakika sonunda şebeke hâlâ yoksa GSM kapatılır ve cihaz batarya üzerinde “açık” kalarak bekler. Ana loop event-driven mimari gereği çoğunlukla boş döner; cihazın anlamlı bir iş yapmasını gerektiren temel olay şebekenin geri gelmesi bilgisidir.

Şebeke geri geldiğinde batarya şarja geçer; MCU normal açılış akışını tamamlar, GSM yeniden bağlanır ve telemetri periyot düzeni (pompa durumuna göre 5/15 dk) tekrar devreye alınır. Şebeke uzun süre geri gelmezse batarya tükenir ve sistem UVLO noktasında kapanır. Bu kapanış beklenen bir davranıştır; enerji tekrar geldiğinde batarya şarj olur, cihaz yeniden açılır ve bir “yeniden başlatma/enerji geldi” telemetrisi ile normal çalışma döngüsüne döner.


Akım tüketim bütçesi ve batarya hedefleri

Güç tasarımında doğrulanması gereken ana metrik, ortalama akım tüketimidir. Cihazın farklı zaman dilimlerinde farklı modlarda çalışması nedeniyle ortalama tüketim, görev döngüsü (duty-cycle) üzerinden hesaplanır.

Ortalama akım hesabı (genel formül)

Bir periyot için ortalama akım aşağıdaki gibi ifade edilebilir:

Iavg=Itxttx+Imeastmeas+IidletidleTI_{avg} = \frac{I_{tx}\,t_{tx} + I_{meas}\,t_{meas} + I_{idle}\,t_{idle}}{T}

Burada ItxI_{tx} ve ttxt_{tx} GSM üzerinden gönderim akımı/süresi; ImeasI_{meas} ve tmeast_{meas} ölçüm/okuma akımı/süresi; IidleI_{idle} ve tidlet_{idle} ise CPU’nun boşta (idle) kaldığı süreyi temsil eder. Pompa çalışırken T=300sT=300\,s, çalışmıyorken T=900sT=900\,s alınır. Olay bazlı (anlık) gönderimlerde periyot, olay sonrası yeniden kurulduğu için hesap, ilgili zaman aralığına göre değerlendirilmelidir.

Batarya ömrü (yaklaşık)

Batarya kapasitesi CC (mAh) ve verim η\eta ile kaba ömür tahmini:

SaatCηIavg\text{Saat} \approx \frac{C\,\eta}{I_{avg}}

Bu hesap, şebeke yokken periyodik telemetriyi kapattığımız ve kesintiyi iki fazda yönettiğimiz için üç farklı karaktere ayrılır. Şebeke varken GSM açık ve 5/15 dk telemetri döngüsü aktiftir. Şebeke kesildiğinde önce Power Lost (grace penceresi) fazına girilir: GSM yaklaşık 30 dakika açık kalır, ancak periyodik RTC telemetri alarmı kapalıdır; tüketim ağırlıklı olarak GSM’in bağlantıda kalma akımı + MCU’nun idle davranışıyla belirlenir. Kesinti 30 dakikayı aşarsa Battery Wait fazına geçilir: GSM kapalıdır, RTC telemetri alarmı kapalıdır; MCU çoğunlukla boş loop/idle davranışında çalışır ve tüketim ağırlıklı olarak MCU + temel çevre birimlerinin bekleme akımı ile belirlenir.

Pratikte batarya hedefini tutturmanın ana anahtarı, şebeke kesildiğinde periyodik RTC telemetri alarmını devre dışı bırakmak; kısa kesintiler için grace penceresini kontrollü yönetmek ve 30 dakika sonunda hâlâ şebeke yoksa modemi tamamen kapatmak ile batarya bekleme sürecinde gereksiz çevre birimlerini kapalı tutmaktır.


Uygulama notları (firmware–güç sözleşmesi)

Bu sayfadaki güç stratejisinin sahada beklenen sonucu vermesi için firmware tarafında şu prensipler korunmalıdır.

ISR’lar kısa olmalı; ağır işler ana döngüde yapılmalıdır. Modem kontrol hatları deterministik yönetilmeli; modem aç/kapa sırası ve timeout’lar net tanımlanmalıdır. Şebeke kesildiğinde “enerji gitti” tek seferlik gönderim yapılmalı; periyodik RTC telemetri alarmı devre dışı bırakılmalı ve GSM grace penceresi boyunca açık tutularak kesintinin kalıcı olup olmadığı izlenmelidir. Kesinti 30 dakikayı aşarsa GSM kapatılmalı ve cihaz Battery Wait davranışına geçirilmelidir. Şebeke geri geldiğinde sistem yeniden başlatma akışı içinde GSM bağlantısını kurmalı ve telemetri periyot düzenini o anki pompa durumuna göre 5/15 dk olacak şekilde tekrar aktive etmelidir.

Undervoltage eşiklerinde yük azaltma politikası histerezisli olmalı; eşik çevresinde gidip gelme engellenmelidir. Olay bazlı telemetri tetiklerinde (pompa durum değişimi gibi) debounce/histerezis uygulanarak gürültü kaynaklı kısa süreli değişimlerin telemetriyi spamlemesi önlenmelidir.