Düşük güçte önyükleme çalışmıyor


9

Genelde 5V @ 8MHz'de (Arduino Pro 3.3V 8MHz profili ve önyükleyici kullanarak) çalışan özel bir Arduino ATMega328 kartım var. Bu kurulumu kullanmamın ana nedeni, ana güç bağlantısı kesildiğinde ve pil gücünden (madeni para hücresinden 3V) çıkmaya başladığında kartı uyku moduna geçirebilmemdir. 5V ve 3V kaynakları birlikte diyot OR'ed ve 5V girişi INT0'a bağlıdır. Kodda, INT0'ın düştüğünü tespit ettiğinde, uyku modunu başlatır ve dahili bir sayımı tutmak ve çipin geri alınması gerektiğini kontrol etmek için 1Hz'lik bir döngü tutan bekçi zamanlayıcı dışında her şey kapanır. Bu işleri güzelce 5V güç, daha sonra pil takıldığında, ilk uygulandığında daha sonra5V bağlantısı kesildi. Uyuyor ve 5V geri getirildiğinde uyanıyor ve sayımını kaybetmediğini görebiliyorum.

Ancak, sorun önce 3V uygulandığında ortaya çıkar . Açıkçası önyükleme yapıp yapmadığından emin değilim. Ancak yapması gereken önyükleme, INT0'ın (Dijital 2) düşük olup olmadığını kontrol edin ve eğer öyleyse, uykuya doğru gidin. Mevcut çekimi izleyerek, birkaç saniye boyunca birkaç mA'ya güç verdiğini, sonra yaklaşık 0.3mA'ya düştüğünü görüyorum (uyku modunda olması gerekenden daha yüksek). Ama 5V'yi tekrar uyguladığımda hiçbir şey yok . Güç çekimi geri gider, ancak yanıt vermez (FTDI seri üzerinden).

Belki 3V'de önyükleme yapamayacağım bir şey var mı ... teorik olarak iyi çalışmalı.

Güncelleme: D13 üzerine bir LED düşürdüm ve göz kırpma çizimini denedim. 3V veya 5V'den başlarken iyi çalışır. Ancak, ürün yazılımımı çalıştırıp 3V'den başlattığımda, LED çılgınca yanıp sönmeye başlar. Kodumda herhangi bir şey olarak D13 kurulumunu bile yapmadığımdan dolayı neye sebep olduğu hakkında hiçbir fikrim yok. Ama bu beni bootloader ile ilgilendiren bir şey yapıyor ...


1
BOİ ne olarak ayarlanmıştır ve başlangıçta mevcut çekiliş nedir?
Ignacio Vazquez-Abrams

2.7V olarak ayarlanmıştır. 3V'de akım çekimi ilk birkaç saniye boyunca yaklaşık 4mA'dır, daha sonra düşer ve LED delinir.
Adam Haile

Önyükleyici olmadan, yani ISS aracılığıyla denediniz mi?
Ignacio Vazquez-Abrams

Hayır, henüz denemedim. Garip olan şey, sadece göz kırpma eskizini çalıştırırken iyi
Adam Haile

2
Akünün üzerindeki her sensör veya yük dahil olmak üzere kablo tesisatınızın nasıl bağlandığını göstermek için bir diyagram ekleyebilir misiniz? Ne tür bir sikke hücresi kullanıyorsunuz, bu bir Lityum İyon (şarj edilebilir) veya alkalin mi?
Ron J.

Yanıtlar:


6

Yani ... olan bitenlerin hepsi koddaydı. Kodumun başlangıcında, düşük olduğunda INT0'da bir kesme başlattığım ortaya çıkıyor. Sorun, 3V yedekleme gücüne başladığında, INT0 her zaman düşüktü çünkü INT0 5V hattına bağlandı (uykuya geçmeyi nasıl bildiğini). INT0 düşük olduğundan ve kesme düşükken tetiklediğinden, programın geri kalanına hiçbir zaman çalışmayacak şekilde sürekli bir kesilmeye neden oluyordu. Bu kesintinin yalnızca tam uyanma moduna girdikten sonra etkinleştirilmesine geçildi ve şimdi iyi çalışıyor.


4

Tam olarak ne olduğu ve verilen bilgi miktarına göre neden belirlenemedi. Bununla birlikte, tanımlanan semptomları en azından kısmen açıklayacak en az bir potansiyel sorun görüyorum.

Voltaj kaynağını seçmek için diyot kullandığınızı ve bir kaynağın 3V pil olduğunu söylediniz. ~ 0.6V düşen standart diyotlar kullanıyorsanız, MCU'ya giden besleme voltajı sadece ~ 2.4V'dir. 0.15-0.45 arasında voltaj düşüşü olan Schottky diyotları kullanıyorsanız, besleme voltajı potansiyel olarak 2.5V kadar düşüktür. BOD voltajı 2,7 volt olarak ayarlanmıştır, bu nedenle teorik olarak MCU asla bataryayla önyükleme yapmaz.

Neden 5v'de başlayabilir, 3v'ye düşebilir ve tekrar geri getirebilirsiniz- Emin değilim. BOİ kodunu devre dışı bırakıyor olabilirsiniz ... belki… Neden işe yaradığından emin değilsiniz, ancak muhtemelen çalışacağı garanti edilmez.

Voltajlar değiştiğinde osiloskopumda neye benzediğini görmek için 5v ve 3.3v ile bir diyot anahtar devresi kurdum. 3.3v'de 5v'ye geçiş yaparken, voltaj başlangıçta biraz salınır. MCU uykudan çıkmaya çalıştığında bu durum bazı sorunlara neden olabilir. VCC ve GND arasına bir başlık koymak sinyali çok güzelleştirdi. 5v'den 3.3v'ye geçerken, herhangi bir salınım yoktu, sadece temiz bir düşüş vardı.

Bu bilgilerden, BOİ eşiğini düşürmeniz veya BOİ'yi kapatmanız ve VCC ve GND arasına bir ayırma kapağı koymanız gerektiği görülmektedir. Muhtemelen INT0'da bir aşağı çekme direncine sahip olduğunuzdan emin olmalısınız ve MCU veri sayfası bölümlerini uyku ve uyanma ile ilgili tüm hususları açıklayan MCU veri sayfası bölümlerini okumalısınız - oldukça ilgili. Şerefe


2

Bence sorun önyükleyicinizle ilgili, ama düşündüğünüz gibi değil.

Bir Arduino başladığında, bir seri ana bilgisayar aramak veya program verilerini flaştan yüklemek gibi çeşitli görevleri yerine getiren bir önyükleyici, uyuyan bir Arduino'dan çok daha fazla enerji alacaktır.

Arduino'nuzun başlamamasının nedeni, önyükleyicinin doğru bir saat kaynağı gerektirmesidir, ancak 3v'yi uygulamak o saati bozar ve belki de çökecek veya 3.3v'nin kararlı bir kaynak için uygulanmasını bekleyecektir.

Veri sayfasına bakın:

telif hakkı ATMEL

Uyku sırasında (bootloader'ı çalıştırırken) akım çekilmesinin muhtemelen 2mA civarında olacağını, uyku akımının yaklaşık 0.8 mikroamp olduğunu görüyoruz . Bu kesinlikle doğru akım olmadan başlangıçta bir karartmaya yol açabilir.

Belki sadece 5v güçle açmalısınız, ya da belki daha yüksek bir akım, daha yüksek voltajlı aküye ihtiyacınız vardır.


Bu Blink'in de işe yaramayacağı anlamına gelmez mi? Ayrıca, birkaç Arduino'dan bozuk para hücrelerinden hiçbir sorunla karşılaşmıyorum. Kısa bir süre için çok fazla akım sağlayabilirler.
Cybergibbons

-5

Araçlar> Burn Bootloader'a giderek arduino'nuzu yeniden başlatmayı deneyin


1
Bunu nasıl yapacağınız hakkında daha fazla ayrıntı ekleyebilir misiniz? Çok spesifik değil: Arduino'ya ne bağlayabilirsiniz? Herhangi bir risk var mı? Teşekkürler!
Anonim Penguen

güvenli olmak için her şeyi fişten çekin, ancak herhangi bir risk olmamalı
DeveloperACE

Önyükleyiciyi nasıl yakacağınız aşağıda açıklanmıştır: arduino.stackexchange.com/a/474/37 . Cevabınız bunu nasıl yapacağınızı açıklamıyor.
Şapkalı Adam
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.