Memberi daya pada IC dari jalur GPIO

10

Saya punya aplikasi berdaya rendah yang akan ditenagai dari sel koin Li. Saya telah mencapai arus tidur yang memuaskan dengan MCU pilihan saya.

Namun aplikasi ADC IC adalah masalah yang berbeda: 900μA sementara tidak aktif - terlalu banyak untuk aplikasi sel koin.

Jadi saya pikir mengapa tidak mengisolasi daya ke ADC saat tidak digunakan. Dua ide terlintas dalam pikiran: FET sisi-atas pada ADC's Vdd atau hanya menghubungkan pin ADC's Vdd (atau Vss) ke salah satu pin GPU MCU (dengan asumsi arus berada dalam source / sink spec MCU).

Saya berasumsi akan ada banyak artikel, catatan aplikasi, dll yang membahas ide ini, tetapi saya belum menemukan apa pun secara online. Sebelum saya mulai bereksperimen, adakah yang bisa mengarahkan saya ke artikel / catatan aplikasi yang relevan secara online? Atau itu hanya ide yang buruk? dan jika demikian mengapa?

(Ya, tahu sebagian besar MCU memiliki ADC built-in. Untuk alasan di luar ruang lingkup kueri, saya benar-benar harus menggunakan IC ADC eksternal ini.)

Terima kasih!

jdesbonnet
sumber
Apa model ADC Anda?
Nick Alexeev

Jawaban:

8

Memberi daya pada perangkat melalui pin GPIO biasanya merupakan ide yang buruk. Dalam rezim daya sangat rendah, mungkin Anda bisa lolos begitu saja, tetapi saya tidak akan merekomendasikan itu kecuali Anda memiliki kendala yang sangat parah.

Anda telah mencatat bahwa Anda telah memeriksa bahwa persyaratan ADC lebih rendah dari kapabilitas drive pin. Itulah yang biasanya banyak orang tidak repot memeriksa. Jika konsumsi dalam batas yang diperlukan, maka Anda mungkin baik-baik saja pada hitungan itu. Namun, pastikan bahwa persyaratan saat ini sementara dari ADC juga terkandung dalam kemampuan drive GPIO. Paling tidak Anda akan memerlukan decoupling yang cukup berat pada pasokan ADC. Ingat fakta bahwa output GPIO bukan jalur suplai impedansi rendah, dan akan lebih lambat untuk menanggapi persyaratan saat ini sementara.

Kedua, karena Anda menggunakan ADC, dan pada saat itu ADC yang tidak dibangun menjadi UC (yang akan menjadi apa yang harus Anda lakukan untuk konsumsi daya yang sangat rendah), saya berasumsi Anda memiliki beberapa persyaratan yang tidak t puas dengan ADC internal. GPIO, bukan menjadi jalur suplai, dan yang lebih penting, menjadi GPIO dari mikrokontroler, pasti akan terkontaminasi oleh setidaknya frekuensi clock dari UC, harmoniknya, dan mungkin subharmonik. Karena Anda juga akan menggerakkan arus besar melaluinya, saya tidak akan terkejut jika efek lain juga masuk. Anda bahkan mungkin akhirnya melihat komponen kecil SPI / I2C / apa yang Anda miliki dalam pasokan, tergantung pada GPIO yang Anda gunakan dan seberapa berat decoupling itu. Jika resolusi ADC dan kinerja noise penting,

FET sisi tinggi adalah taruhan yang jauh lebih baik, dan lebih aman. Anda juga dapat mempertimbangkan menggunakan sejumlah IC terkait daya yang memiliki kontrol Aktifkan, seperti LDO dan sejenisnya. LDO yang dekat dengan pasokan ADC juga dapat membantu meningkatkan kinerja. Namun, perlu diketahui bahwa ini berarti ADC Anda harus berjalan pada tegangan yang sedikit lebih rendah. Ini akan terjadi dengan saklar transistor sederhana juga, dan dengan Rdson FET rendah efeknya, diakui, akan jauh lebih kecil, tetapi itu akan ada.

Satu hal yang harus Anda perhatikan adalah bahwa menghubungkan jalur digital IC yang tidak berdaya ke GPIO dari UC yang didukung bukan ide yang baik. Anda pada akhirnya akan menyalakan ADC Anda melalui IO digitalnya dan menyebabkan perilaku aneh, dan berpotensi berbahaya. Khususnya, saya akan terkejut jika ADC Anda tidak merespons bahkan ketika MATI. Ini mampu menyebabkan degradasi jangka panjang, dan memakan keuntungan dari penghematan daya. Untuk mematikannya dengan baik, Anda harus menggunakan buffer translasi level untuk setiap jalur digital antara keduanya dengan kemampuan untuk menonaktifkan (tristate) output. Ini dapat dilakukan baik menggunakan pin EN, mungkin, atau menggunakan buffer dengan mekanisme lain untuk menonaktifkan (SN74LVC1T45 tristates jika pasokan di satu sisi ditarik ke tanah, misalnya). Apakah skema ini berguna tergantung pada konsumsi buffer dalam keadaan MATI, konsumsi dalam keadaan AKTIF, dan siklus tugas (fraksi waktu Anda ingin mengaktifkannya untuk), dan konsumsi ADC (900uA) yang Anda dapat menghemat dengan melakukan ini. Jika Anda sangat berhati-hati, Anda mungkin dapat menghindari kebutuhan buffer dengan memasang IO UC yang terhubung ke ADC sebelum mematikannya, dan dengan demikian menghasilkan efek yang sama.

Chintalagiri Shashank
sumber
Jawaban yang bagus Satu hal lagi yang perlu disebutkan adalah bahwa ADC mungkin akan menginginkan kapasitor decoupling pada pin kekuatannya. Arus masuk untuk kapasitor mungkin akan mengganggu jalur GPIO.
Rocketmagnet
5

Ya, Anda bisa melakukan itu, pastikan semua kendala terpenuhi. Saya sudah melakukan ini beberapa kali. Menggunakan output mikrokontroler untuk benar-benar memberi daya pada sirkuit kecil alih-alih menggeser kekuatannya dapat menjadi cara yang berguna untuk menghemat ruang. Saya menggunakan ini dalam satu proyek, misalnya, untuk menghidupkan ujung penerima analog ultrasound hanya bila diperlukan.

Selain masalah yang jelas dari arus terbatas yang tersedia dari pin output, Anda harus menonton suara dari mikro yang masuk ke sirkuit yang diaktifkan dan berurusan dengan arus transien yang ditarik oleh sirkuit. Menambahkan tutup ke tanah pada pin keluaran digital membantu dengan kedua masalah, tetapi Anda juga harus mempertimbangkan berapa banyak kapasitansi yang dapat dikendarai mikro saat menghidupkan atau mematikan saluran.

Ini bukan sesuatu yang harus Anda lakukan dengan ringan, dan Anda perlu memikirkan masalah ini dengan hati-hati, tetapi setelah Anda menyelesaikan pekerjaan rumah Anda dan itu masih masuk akal, silakan saja.

Olin Lathrop
sumber
5

Ya, Anda bisa melakukan ini. Dan banyak yang sudah. Sebagai contoh, Adafruit menunjukkan ini dilakukan untuk ds1307 RTC pada adruino, didukung oleh dua gpio (seperti vcc dan gnd) . Ini juga dilakukan untuk LCD Nokia, yang hanya membutuhkan 1 mA untuk layar (Led backlight adalah cerita yang berbeda, tetapi masih dapat dilakukan oleh gpio).

Sumber daya adalah sumber daya. Selama undian Anda saat ini rendah, (Atau Anda dapat mentolerir penurunan tegangan akibat penarikan arus pada pin port MCU ini), Anda dapat melakukannya.

Sekarang, itu tergantung pada seberapa bersih output gpio. Beberapa IC cenderung mengeluh tentang garis yang sedikit kotor daripada yang lain. ADC mungkin salah satu dari mereka yang bukan pilihan terbaik. Sumber kotor dapat memengaruhi resolusi atau keandalan ADC. Ini mungkin membuat ADC eksternal lebih buruk daripada yang internal. Seperti yang disebutkan orang lain, topi mungkin bisa membantu.

Tidak mungkin menggoreng ADC, jadi taruhan terbaik? Sambungkan, dan jalankan melalui beberapa pengujian kalibrasi. Jika berhasil, ikuti saja. Jika tidak, gunakan transistor npn atau fet serupa untuk memotong daya. Hanya satu hal. pastikan bahwa Anda mengganti pin data menjadi input ketika IC dimatikan, dan tunggu sampai setelah Anda menyalakan pin daya sebelum beralih ke mode yang diperlukan.

Pejalan kaki
sumber