Bir mikrodenetleyici devresinde pilin uzun süre dayanması


26

Bir ATtiny85V'ye uzun bir süre, küçük bir bataryayla, muhtemelen bir bozuk para hücresiyle güç vermeyi umuyorum.

Yazılım tarafına baktım ve kodum bekçi zamanlayıcısı sürüyor, kullanılmayan analog ve dijital dönüştürücüler kapalı, yonga 1MHz'de çalışıyor. Ne kadar akım çekiyor ama umarım onu ​​en aza indirmişimdir.

Her birkaç saniyede bir uyanır, voltaj seviyesi ADC'leri kontrol eder, koçuna kaydeder ve uykuya geri döner. Bir seri hattın bağlı olduğunu tespit ederse, verileri dağıtır.

Ancak, şimdi devreye bir bütün olarak bakıyorum ve devreyi daha fazla pil dostu yapmak için yapmam gereken şeyler olup olmadığını merak ediyorum.

Bir bileşenin (mikrodenetleyicinin) tekrarlayan fakat değişken bir akım çekişine sahip olduğu uzun ömürlü (basit) bir devre tasarlamak söz konusu olduğunda temel doz ve yapılmaması gerekenler nelerdir?

Örneğin:

  • Bir gösterge LED büyük bir sorun mu var? Parlak olduğunda pili mi kullanıyor? Loşması için üzerine dev bir direnç takmalı mıyım, yoksa direnci direncin pili kullanması mı gerekir?
  • Aküden gelen akımı eşitlemek için bypass / dekuplaj kondansatörleri kullanmalı mıyım, yoksa kondansatör akünün gücünü boşa mı harcayacak?
  • Mikrodenetleyici sadece 1.8V'a ihtiyaç duyuyor, fakat benim 1.8V pilim yok. İki adet 1.x pil kullanmalı ve çok fazla voltaj göndermeli miyim? Pil ömrünü "kadar volt kullanmadan" uzatabilir miyim? Bunu nasıl yaparım?
  • Bir pimin YÜKSEK veya DÜŞÜK olup olmadığını kontrol etmek ekstra güç ister mi? No-op veya bir aritmetik ile karşılaştırıldığında, GP G / Ç pimlerinden birinin durumunu kontrol etmede çok fazla güç kullanımı var mı?

Akım, gerilim, güç nasıl hesaplanacağını (ve daha belirgin olarak nasıl ölçüleceğini) belli belirsiz biliyorum, ama bunlardan hangisinin pil ömrüne eşit olduğundan emin değilim. Coulombs'ta pil ömrünün önemli ölçümü nedir?

Piller gibi şeylerle dolu olduğuna dair belirsiz bir fikrim var:

  • amper saatlerinde olduğu gibi şarj
  • watt-saatlerde olduğu gibi enerji
  • watt gibi güç

ama devremin çalıştığı zaman ne yediği konusunda net değilim. Çok miktarda EE101 ve fizik ders kitabı okudum, fakat gerçekten herhangi bir laboratuar deneyimim yok. Başka bir deyişle, pillerle ilgili bir ton okudum, ancak pratikte çoğunun ne anlama geldiğinden emin değilim.

Dirençler pil ömrünü kullanıyor mu? Kapasitörler mi? Diyot yapar mı? Hepsinin var olduğundan şüpheleniyorum, ama hangileri önemli? Empedans? Güç dağılımı? Güncel? Voltaj?

Aküyü boşa harcamadan voltajı düşürmenin bir yolu var mı? Pil ömrünü uzatırken voltajı düşürmenin bir yolu var mı?


6
Bu çok çok geniş bir soru. Neredeyse birden fazla soru sormanız gerekiyor. LED güç sorusu için tam bir soru verebilirim.
Kortuk

1
Harika, mesai saatlerinden sonra ayırırım. Belki bu sadece geniş doz ve yapılmayacak şeyler. Bu tür cevaplar sadece bataryadan daha fazla yararlanmaya çalışan insanlara yardımcı olacağını düşünüyorum, ancak her türlü yetkili veya eğitici cevap vermek daha dar bir soru gerektiriyor.
Jack Schmidt

Evet, cevabımı sorunuza bölümlemek zorunda kalacağımı ve bir saatimi alacağımı farkettim.
Kortuk

BTW karım makezine.com/makeitlast'ı buldu , ki bu temelde böyle bir şey yapmak için bir yarışma olduğu için sonunda yararlı olabilir. Bence bugün başlıyor, bu yüzden bunun nasıl yapılacağına dair hiçbir ipucu yok. Her neyse, projem bağımsız ve yine de girmek için zamanım olacağından şüpheliyim :) Eğer böyle şeylerden hoşlanmazsanız, yarışma sona erene kadar beklemekten çekinmeyin.
Jack Schmidt,

Yanıtlar:


20

Sadece rastgele bir liste, şematik mesajınızı yayınlarsanız muhtemelen daha kolay olurdu:

1.8V lityum Madeni Para Hücrelerinin bulunması çok kolaydır, ancak seri arayüzünüzün 3.3v'ye ihtiyacı daha fazladır? Alma hakkınız 1.8V ile başa çıkmazsa.

Kaçak akım, voltajınız arttıkça genellikle artar, bu nedenle daha düşük genellikle daha iyidir. Ayrıca, akü özelliklerine karşı sistemin bozulma noktasını göz önünde bulundurun. Bataryanın 'ölüm' özellikleri kullandığınız batarya kimyasına göre belirlenir. Örneğin, uC'niz 1,7V'de çıktığında, bazı pillerde olduğu gibi daha yüksek voltajlı bir batarya kullanmak isteyebilirsiniz, çünkü batarya öldükçe çıkış gerilimi yavaşça düşer. Bir 3.3V pilden daha fazla ömre sahip olursunuz, ölmeye başladığında çıkışı yavaşça düşer ve tamamen 1.8V'a kadar çalışabilirsiniz. Bir 1.8V batarya kullanırsanız, batarya öldükçe oldukça çabuk kapanacaktır. Bunların hepsi seri arayüzünüzün veya diğer bileşenlerin geniş bir voltaj aralığıyla başa çıkabileceğini varsayar (AVR'nin yapabileceğini biliyorum).

Çok düşük güç tüketen bir LED kullanmıyorsanız ve akım çekişini kontrol etmiyorsanız, LED'ler çok fazla güç kullanırlar, muhtemelen AVR'den çok daha fazla akım çekerler. Sadece hata ayıklama için oradaysa, onu üretim için doldurmayın ya da yalnızca arada bir kez yanıp sönmesini ya da zamanını en aza indirecek bir şeyi yanıp sönmesini sağlayın ve kesinlikle mevcut çizimi kontrol edin.

Mümkünse, mümkün olduğu kadar az güç çekmek için seri arayüzünüzün kutupsal / dinlenme durumunu seçin, dinlenme durumu güç çekmemelidir. Çekme gerekirse, sinyal bütünlüğünü korumak ancak mevcut kullanımı en aza indirmek için mümkün olan en büyük direnci kullanın. Eğer güç çok büyük bir kaygı ise, iyiliğin iktidara gelmeyen parçalarını belirten anlamlı bir program kullanın. Örneğin eğer çekip çıkardıysanız, sinyalde çok sayıda 1'le sonuçlanan bir protokol kullanmak, seri arayüzü çoğu zaman çok fazla güç çekmeyen bir durumda bırakacaktır. Bu tür optimizasyonlar yalnızca seri veri yolunu yoğun şekilde kullanıyorsanız faydalı olacaktır. Çok hafif kullanıldıysa, sadece dinlenme durumunun güç çekmediğinden emin olun.

Genel olarak konuşursak, tüm talimatların (GPIO okumak, vb.) Aynı miktarda güç gerektirdiğini varsayabilirsiniz. Gerçekten doğru değil ama güç farkı çok az.

Güç kullanımı, açtığınız çevre birimlerinin sayısına / türüne ve mikro aktifin uykuya karşı geçirdiği zamanın miktarına bağlıdır. Yani ADC daha fazla güç kullanıyor, EEPROM ise oldukça fazla miktarda güç kullandığını yazıyor. Özellikle EEPROM'un yazdığı gibi bir şey genellikle oldukça büyük “parçalarda” yapılır, bu nedenle EEPROM'a yazmadan önce olabildiğince fazla bilgi toplamanız gerekir (tabii ki kullanıyorsanız). Mikro, ADC'nin uyku durumlarının 2'si sırasında okunmasını desteklediği ADC için, ADC dönüşümü nispeten uzun zaman alır, bu uyumak için iyi bir zamandır.

Muhtemelen sadece güç yönetimi, uyku durumları ve mikrodenetleyicinin bilgi föyünde kullanarak gücü en aza indirgeme bölümlerini okumalısınız: linky sayfa 35 on. AVR'yi mümkün olan en derin uyku durumunda tutun. Bunun tek istisnası, başlatma ve kapatma zamanını dikkate almanız gerektiğidir. Uyanma 25, vb. Alırsa, 10 döngü boyunca uykuya değmez.

Dirençler pil ömrünü kullanıyor mu? Kapasitörler mi? Diyot yapar mı?

Hepsi bir dereceye kadar yapıyor. Dirençler çoğu uygulamada en fazla yayılır:

P = V * I

P = V ^ 2 / R veya P = I ^ 2 * R (burada V, direnç boyunca voltaj düşüşüdür)

Diyotun (nispeten) sabit bir voltaj düşüşü vardır, bu nedenle güç tüketimi neredeyse yalnızca diyottan geçen akıma bağlıdır. Örneğin, 0.7V ileri gerilim düşümü olan bir diyot, akım diyot boyunca ilerliyorsa, P = 0.7 * I. Bu elbette bir basitleştirmedir ve diyotun IV özelliklerine göre çalışma modunu kontrol etmelisiniz.

Kondansatörler teorik olarak herhangi bir gücü dağıtmamalı, ancak gerçekte sınırlı bir seri direncine ve sıfır olmayan bir kaçak akıma sahiptirler, bu da bazı güçleri harcadıkları anlamına gelir, genellikle bu kadar düşük gerilimlerle endişelenmeniz gereken bir şey değildir. En az kaçak akım ve ESR ile kapasitör seçimi yapılmasının güç kazandığı söyleniyor.

Pil çekişini yumuşatmak için kullandıkça, bu güç kullanımında gerçekten bir faydası yoktur, filtreleme için daha fazladır. Ayrıca burada pil kimyası devreye giriyor, bazı kimyalar sürekli çizim ile daha mutlu olacak, bazıları dikenli akım çekimleriyle daha iyi anlaşacak.


1
P = V ^ 2 / R'nin önemli kısmı, R'nin sabit bir voltajla arttığından, güç kullanımının azalmasıdır.
Kortuk

Soğuk, bu yüzden daha fazla pil kullanmak için, muhtemelen daha yüksek gerilime ihtiyacım olacak (muhtemelen Andrew tarafından önerilen regülatörü kullanarak). Seri hattın ne kadar düşük voltaj alacağını görmek için bazı deneyler yapacağım. Ayrıca kullanılmayan pinleri çıktı olarak ayarladığınızdan emin olacağım. Seri yalnızca zaman zaman kullanılır, bu yüzden sadece dinlenme durumunu kontrol edeceğim. Kesinlikle yapabileceğim tüm çevre birimlerini kapatmaya çalıştım.
Jack Schmidt,

Kapasitörler için: bu yüzden muhtemelen bataryayı dışarı çıkarmak için kapasitöre ihtiyacım yok Akü kimyasını kontrol edin, ancak sahip olduğum akım boşaltma modelini kaldırabileceğini varsayalım, sonra ayarlamaya çalışmanıza gerek yok, değil mi?
Jack Schmidt,

P şeyi için teşekkürler. Sanırım şimdi anlıyorum. P = I * V, burada V voltaj düşmesidir, bu nedenle voltajın değiştirilemediği sürece pilin boşalmasını P veya I (veya P-saat veya I-saat) olarak ölçebilirim. V'yi "ücretsiz" olarak değiştirip değiştiremediğimden hala emin değilim.
Jack Schmidt,

1
Bahsettiğim kova artırma regülatörü Andrew gerçekten en iyi çözüm. Bahsetmedim, çünkü bu tür devrelerin yerleşimi genellikle kritiktir. Korkak performans göstermeden veya tonlarca EMI yayılmadan breadboard'ları zorlaştırıyorlar. Veri sayfasını dikkatlice okuyun, kritik yolların yerleşimi ve tanımlanması için tavsiyeler genellikle dahil edilir. Ayrıca kullanılan parçaların bazılarında daha sıkı kısıtlamalar olacaktır. Düşük ESR kapasitörleri vb.
Mark

12

Mark mükemmel bir cevap verdi ve yapacağım noktaların çoğunu vurdu. Benim de katkıda bulunmak istediğim birkaç şey var.

Mevcut ölçümleri yapmak için bataryaya geri dönüşün ortak olduğu, düşük ohm dirençli bir osiloskop kullanın. Mikrodenetleyicili akım çekimi basit değildir ve genel bir kural olarak, sayaçların ne olduğu hakkında iyi bir fikir vermek için FAR çok yavaştır. "Düşük-ohm" ne demek, beklenen akım çekişine bağlıdır. 1 ohm'luk bir direnç çizilen her 100mA için 100mV geliştirecektir ve bu muhtemelen sizin için çok fazladır. 10 ohm% 1 veya% 0.5 direnç deneyebilirim; Her 10mA'lık mevcut çizim için 100mV göreceksiniz. 18 ohm, her 5.5mA için 100mV verir. GERÇEKTEN düşük güç için gidiyorsanız, 1k ile kurtulmak mümkün olabilir; I = V / R: çekilen her 100uA akım için 100mV göreceksiniz. Yine de dikkatli ol; Yeterli akım çekerseniz, şönt boyunca çok fazla yere düşersiniz ve ölçümleriniz kapanır, Devre bahsetmiyorum bile muhtemelen işe yaramaz. :-)

Kapsam bağlı olduğunda, mikrodenetleyici için birkaç farklı çalışma frekansı deneyin. Daha yüksek bir saat hızında daha az güç harcadığınızı öğrenmek sizi şaşırtabilir, çünkü "uyanık" zamandan daha az zaman harcıyorsunuz.

Çekme / inme işlemlerini mümkün olduğunca ortadan kaldırın. Herhangi bir çıktıya sahip olmamalısınız, çünkü çoğu zaman onları boşta duruma getirebilirsiniz. Girişler, Mark'ın söylediği gibi, mümkün olduğunca yüksek bir değer kullanarak, mantıklı olana bağlanmalıdır.

Mikrodenetleyicinizin mümkün olduğunca kapalı olduğundan emin olun. Kullanılmayan pinleri çıkışlara çevirin ve bir duruma sürün (yüksek veya düşük, önemli değil). LED'leri açık bırakmayın. Diğer bileşenleri kapatabilir veya saatlerini durdurabiliyorsanız, yapın. Örneğin SPI Flash bellekleri genellikle düşük güç çeken ve daha da düşük güç çeken bir 'güç azaltma' komutuna sahiptir.

Diğerleri voltaj yönüne değindi ve ben de yorum yapmak istiyorum. Batarya ve devreniz arasında yüksek verimli bir kova / boost regülatörü kullanırsanız, MUCH'in daha iyi batarya kullanımı ile biteceksiniz. Regülatör, akü seviyesi ihtiyacınız olan 1.8V'den yüksek olduğunda kova modunda (voltaj düşüşü) olacak ve akü seviyesi 1.8V'nin altına düştüğünde artırma moduna (voltaj artışı) geçilecektir. Bu, pil iyi ve gerçekten bitinceye kadar devreyi çalıştırmanıza izin verecektir, bu da onları kullanırken alacağınız yüzde birkaç verimlilik kaybına değecektir. Regülatörü, kullanmak istediğiniz tüm aralıktaki verimliliğine göre seçtiğinizden ve regülatörü uygun şekilde boyutlandırdığınızdan emin olun; % 98 verimlilikte 1A sağlayabilen bir regülatör, muhtemelen 50mA veren% 60 verimliliktedir. Veri sayfalarını dikkatlice okuyun.


Güzel. Daha önce bir kapsam kullanmamıştım, ancak yerel laboratuarımızın bana bunu göstermekten mutluluk duyacağından şüpheleniyorum (şu anda akımı ölçmek için seri olarak çoklu sayacı kullanıyorum; çok iyi değil). - Ayrıca, uygun bir parça bulabileceğimi farz edersem, sadece 1-10mA kullanıyor olsam bile, regülatörü tavsiye eder misiniz? % 90 verimlilik yeterli mi (bu aralıkta ucuz bir tane bulduğumu hatırlıyorum), yoksa tasarruf ettiğimden daha fazla akım kullanıyor mu?
Jack Schmidt,

1
frekans ile oynamak çok iyi bir nokta, bana cep telefonumdaki wifi radyonun hücresel modemden daha fazla güç kullandığını ama wifi çok daha hızlı uyuyabildiğini ve bunun nedeniyle genel olarak daha iyi olmakla sonuçlandığını hatırlatıyor.
Mark

2
Akım çekişinin "patlak" olacağı senaryolarda zaman-ortalama mikrokontrolcü akım kullanımını tahmin etmenin bir diğer yolu, gerçekten büyük bir kapasitör şarj etmek ve pil voltajını simüle etmek için düşük-sessiz akım regülatörünü beslemektir. 100.000 uF'lik bir kapasitör miliamper saniyede 0.01 volt düşecektir. Beş dakikada (300 saniye) 0.3 volt düşerse, ortalama akım çekişiniz 100uA'dır.
supercat,

Düzenleyicilerin verimliliğinin önemi çok önemlidir. Bu nedenle, o aralıkta uygun bir regülatör seçmek için mevcut tüketim aralığınızı tahmin etmeniz gerekir
gustavovelascoh

4

Devrenizde akım tüketimini ölçmek için mikroamper aralığında bir multimetre kullanmanızı öneririm. Daha sonra, akü özellikleri göz önüne alındığında, uzun ömür hesaplayabilirsiniz. Akü farklı yükler için farklı deşarj özelliklerine sahip olacağından, amper saat / akım olması şart değildir. Ancak, bir yaklaşım olarak yararlı olabilir.

1 MHz'de, eğer PIC mikroskopları ile karşılaştırılacak bir şey varsa, en azından 100µA, biraz güç emeceğinizi düşünüyorum. Fakat bu, LED'inizden geçen 5mA ila 20mA arasında boğulacak, bu yüzden önce bundan kurtulmalısınız.


Soğuk, LED silindi. Doğru bir ölçüm almakta zorlanıyorum. Şu anda 0.9mA gibi görünüyor, bu yüzden belki de yazılımım düşündüğüm kadar güç vermiyor. Arduino (ve kalp atışı LED'i) ile birlikte 8-9mA gibi, bu yüzden en azından küçük yardımcı oluyor.
Jack Schmidt,

1

Günümüzde, bazı durumlarda nA aralığına kadar, hassas akım ölçümleri yapmak için son derece kullanışlı olan geliştirme kitleri ve breakout panoları bulunmaktadır. Zaten kesinlikle µCurrent Gold'u kontrol etmediyseniz . Bu statik ölçümler için iyidir, ancak zamanla ölçümlerin kaydedilmesi için daha azdır.

ΜCurrent'i kullanmaya devam etmenin bir yolu, çıkışa bir fark amp değeri bağlamaktır. Sonra bunu bir osiloskopa veya analog girişlere sahip bir mantık analizörüne besleyebilirsiniz. Üzerine tam bir somun ve cıvata yazdım , bunun için doğru araçlara sahip olmayan bir bütçeyle insanlara yardımcı olabileceğini hissediyorum.

Sadece devrenizdeki voltajın ne yaptığından değil, akımdaki her küçük yükselmeye nasıl tepki verdiğinden de öğrenebileceğiniz şeyler şaşırtıcı. Pil teknolojilerini ve doğrulama testlerini seçerken birkaç kez kıçımı kurtardı. 😎


0

Tüm cevapların zaten önemli noktaları var. Deneyimden bir tane ekleyeceğim.

Derin uyku modunda 10uA'dan daha az, hatta 1uA'dan daha az tüketen cihazlar geliştirirken, tahtanın temizliği fark yarattı. Bir keresinde beklenen akım tüketimi ile 10 panodan 7'sine sahiptim. Hepsi aynıydı ve hepsi işe yaradı. Onları ultrasonik temizleyicide temizledikten sonra, tüm tahtalar beklenen sonuca ulaştı.

Ve son olarak, tüm elementlerinizin veri sayfalarını kontrol ederek beklenen / hedeflenmiş tüketiminizi tahmin edin. Onları iyi idare edersen, tahminine ulaşırsın. Bu, mikrodenetleyicide kullanılmayan tüm pimleri içerir. ADC'nizi kapatsanız bile, kapalıyken pim yapılandırmasının harici bağlantınıza bağlı olarak en iyi olduğundan emin olun.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.