Pemantauan baterai saat ini rendah

13

Saya ingin menjalankan micro-controller dari lipo 1S melalui regulator linier 3V. Saya perlu mengukur tegangan baterai. Masalah dengan menggunakan pembagi tegangan adalah bahwa itu akan menguras baterai dari waktu ke waktu yang mungkin atau mungkin tidak memiliki sirkuit perlindungan. Karena AVR yang saya gunakan memiliki impedansi input yang disarankan tidak lebih tinggi dari 10K, saya tidak dapat membuat pembagi terlalu besar.

Adakah yang bisa menyarankan solusi yang akan memungkinkan saya untuk memantau tegangan ini tanpa membunuh baterai yang tidak terlindungi selama beberapa bulan? Sirkuit mungkin memasuki mode tidur nyenyak untuk waktu yang lama yang berarti solusi pembagi tegangan akan mengkonsumsi daya paling besar.


Saya akhirnya menggunakan solusi Hanno dan Andy. Terima kasih atas semua masukannya. Sayangnya, hanya dapat memilih satu jawaban.

s3c
sumber

Jawaban:

16

Pembagi tegangan harus bergabung dengan MCU dalam mode tidur nyenyak lalu ... Ini dapat dicapai dengan FET saluran P (misalnya) .... Ketika MCU bangun, ia akan ingin mengukur tegangan baterai jadi apa yang bisa dilakukan adalah menyalakan sirkuit yang dibentuk di sekitar saluran P FET yang menghubungkan baterai + V ke pembagi tegangan: -

masukkan deskripsi gambar di sini

Input ADC ditunjukkan di sebelah kanan dan tidak akan ada tegangan yang mencapai itu kecuali MCU telah mengaktifkan BC547 melalui resistor 10k. Tanpa aktivasi, FET saluran P dimatikan dan hampir membuka sirkuit. Jika Anda dapat memprogram MCU untuk memiliki pull-down pada pin kontrolnya ketika tidur yang seharusnya, lain tambahkan (katakanlah) 10k resistor dari titik itu ke tanah - ini memastikan P channel FET benar-benar mati.

Peringatan kecil, pilih fet P channel dengan arus bocor rendah jika tidak ada masa pakai baterai, tetapi kebanyakan fets akan berada di bawah 100nA dan banyak di wilayah 1nA.

Satu hal terakhir - bagaimana pengatur tegangan bekerja pada arus siaga saat mikro mati - apakah Anda perlu menjaganya juga?

Andy alias
sumber
Saya menggunakan MCP1802 yang memiliki arus 25uA Q, bagian ini berfungsi dengan baik. Terima kasih atas sarannya, tepatnya jenis solusi yang saya cari.
s3c
mengapa Anda menggunakan P-Chan dengan transitor dan bukan fet N-Channel tunggal?
jme
@ jme - ADC dan MCU direferensikan ke ground dan karenanya masuk akal untuk mengganti feed tegangan yang lebih tinggi. Jika saya menggunakan perangkat saluran N masih akan ada saluran secara permanen melalui resistor atas dan melalui dioda parasit di MCU ketika sedang dalam mode tidur.
Andy alias
@ Andyaka id apa N-Fet terbalik sehingga dioda terbalik untuk tidak membiarkan arus mengalir ke resistor ADC?
jme
3
@ jme "Mengapa tidak menggunakan sakelar sisi rendah (mis. N-ch FET atau μC i / o pin)?" adalah pertanyaan yang bagus. Inilah sebabnya. Tegangan baterai bisa lebih besar dari Vcc. Ketika sakelar sisi rendah dibuka, maka tegangan baterai akan muncul pada pin A / D. Hal itu dapat menyebabkan terbakarnya A / D, atau kebocoran baterai melalui dioda perlindungan pada pin A / D. Utas terkait.
Nick Alexeev
2

Ketika Anda perlu mencari tahu hanya ketika baterai akan mati (atau memberi peringatan sesaat sebelum itu), Anda tidak perlu mengukur tegangannya secara langsung. Tegangan output regulator akan turun di bawah 3V sebelum baterai mencapai tegangan minimum. Jadi Anda bisa mengukur tegangan suplai pengontrol mikro.

Tergantung pada kemampuan aktualnya, Anda dapat melakukannya tanpa menggunakan pembagi tegangan. Sebagai contoh, lihat lembar data ADC untuk PIC12F1822, (di halaman 141): Diagram blok ADC

PIC memiliki referensi tegangan internal, dan dapat mengukur nilainya ('FVR buffer' yang masuk ke dalam multiplexer). Tetapi juga dapat menggunakan tegangan suplai sebagai referensi untuk pengukuran ADC (pemilih ADPREF di atas).

Karena itu, orang hanya dapat mengukur referensi tegangan sehubungan dengan tegangan suplai, dan mendapatkan tegangan suplai sebagai hasilnya. Dalam kasus 12F1822, referensi internal adalah 2.048V, dan ADC memiliki resolusi 10 bit. Jadi ketika tegangan suplai turun di bawah 3.0V, hasil ADC lebih tinggi dari 699:

SEBUAHDCreskamult=1024VsayanVref
SEBUAHDCreskamult=10242.048VVskamuhalhally

Perhatikan bahwa tegangan suplai yang lebih rendah berarti hasil ADC lebih tinggi, karena tegangan input dan tegangan referensi ditukar dengan cara yang biasa. Anda dapat mengonversi rumus ini untuk mencari tahu tegangan suplai aktual, mengingat hasil ADC.

hli
sumber
0

Apakah Anda benar-benar membutuhkan regulator linier? Menjalankan μC pada tegangan baterai penuh akan membuat segalanya jauh lebih mudah. Selain itu, regulator dan μC akan selalu mengkonsumsi daya, bahkan dalam mode hemat daya, terus menguras baterai. Lihatlah lembar data dan ingatlah itu.

Karena input ADC (dari sampel-dan-tahan ADC yang umum, seperti itu dalam AVR μC) hanya akan menenggelamkan arus ketika benar-benar mengambil sampel suatu nilai, impedansi input rendah transien dapat dikompensasikan dengan hanya menambahkan kapasitor:

skema

mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab

Frekuensi pengambilan sampel maksimum tentu saja akan dibatasi dengan cara ini karena kapasitor akan memerlukan waktu untuk mengisi ulang melalui resistor besar sebelum pengambilan sampel berikutnya dilakukan, tetapi saya berasumsi Anda tidak akan mengukur lebih dari, katakanlah, satu detik lagi pula.

Waktu yang diperlukan untuk mengisi ulang kapasitor dapat diatur dengan memvariasikan kapasitasnya dan / atau R1. R1 lebih besar = lebih sedikit "kehilangan" energi + maks lebih rendah. frekuensi pengambilan sampel. Kapasitas yang lebih kecil akan diisi lebih cepat untuk resistor yang diberikan dan seterusnya.
Anda akan ingin memaksimalkan nilai R1, dan kemudian mungkin perlu meminimalkan nilai C1 untuk mencapai frekuensi sampling yang diinginkan.

Kapasitas minimum tergantung pada jumlah muatan yang akan ditarik ADC untuk sampel, yang pada gilirannya ditentukan oleh kapasitas buffer sampel ADC. Untuk perangkat AVR saya sepertinya ingat bahwa nilai ini ditentukan dalam datasheet. Untuk μC lain saya tidak tahu, tetapi 1μF dalam diagram mungkin akan lebih dari cukup dalam hal apa pun, dan mungkin dapat dikurangi dengan faktor 10 atau lebih. Spesifikasi ADC akan memberi tahu.

Edit:

Saya menemukan ini dalam lembar data Atmel untuk ATmega1284p. Kapasitor buffer S&H ditentukan hingga 14 pico -farads, jadi beberapa nano -farad untuk C1 harus banyak.

Sirkuit input analog dari lembar data ATmega1284p

Lihat misalnya diskusi di sini .

JimmyB
sumber
Regulator linier pada gilirannya akan dikontrol oleh pendeteksi tegangan arus ultra rendah, yang secara efektif menghilangkan baik UC dan regulator dari rangkaian jika baterai terkuras di bawah nilai tertentu.
s3c
Ok, tetapi apakah regulator diperlukan untuk pasokan μC, atau dapatkah μC diaktifkan langsung oleh Vbat, dalam hal ini dapat berfungsi tanpa pembagi tegangan.
JimmyB
Saya tampaknya mengerti sekarang bahwa Anda sebenarnya tidak bertanya bagaimana perangkat dapat dibangun untuk menggunakan daya minimum, tetapi hanya bagaimana memastikan LiPo tidak dihancurkan. Apakah ini benar?
JimmyB
Ya, regulator diperlukan untuk pasokan UC. Menggunakan daya minimal lebih disukai tetapi bukan perhatian utama saya.
s3c
Seperti apa output dari detektor tegangan yang Anda sebutkan?
JimmyB