Ukur sendiri tegangan VDD-in PIC dengan ADC

8
  • Prosesor: PIC18F66K22
  • Kompiler: C18 (XC8 juga baik-baik saja)

Saya baru saja membuat (dan berhasil menguji) kode untuk mengukur tegangan pada pin analog AN4.

Sekarang saya ingin mencoba sesuatu yang lain, tidak yakin apakah secara teori itu mungkin.

Papan uji saya memiliki prosesor PIC, dengan VDD, AVVD terhubung ke persediaan (mulai dari 0 (jika baterai kosong / terputus) hingga 4,2 (baterai penuh).

Bisakah saya menggunakan ADC untuk mengukur VDD (-in) dari board saya?

Kenapa tidak?:

  • Ini bukan pin ANx, tidak yakin bagaimana membuat ADC mengukurnya? (Saluran?)
  • Jika tegangan pada VDD (-in) turun, apakah tegangan referensi ADC saya juga turun? (Jadi ketika PIC saya hanya mendapat 3,3V ADC masih akan mengatakan itu 100% (sebagai Tegangan maks pada chip, juga referensi adalah 3,3V).

Mengapa / apa yang Anda tanyakan ?:

  • Bisakah saya mengukur Saluran 30 (VDDCORE)?
  • Bisakah saya mengatur Vref ke Vdd dan mengukur referensi tegangan presisi dengan konverter A / D. (Tidak yakin bagaimana)
  • Atau saya bisa menambahkan kawat dari VDD-in ke pin ANx?

  • Apakah VREF + (4.096V) Internal akan tetap 4 + V ketika VDD-in sekitar 3,4V? Apakah ada semacam transformator yang membuatnya begitu?

  • VREF + internal (4.096V) sedikit lebih rendah dari maks baterai (4,2V), apakah ini berarti saya dapat merusak ADC? Atau hanya saja hasilnya akan maksimal ketika baterai sudah penuh. (4,2V dari 4,096V)

Harap diingat bahwa pengetahuan saya tentang Elektronik "rendah". Saya telah belajar lebih banyak tentang bagian perangkat lunak dalam pendidikan saya, tetapi saya ingin tahu lebih banyak tentang Elektronik (Tertanam) karena merupakan bagian penting dalam Rekayasa Tertanam. (Sangat menyedihkan bagaimana sekolah saya tidak melihat ini.)

Paul
sumber

Jawaban:

14

PIC itu memiliki referensi celah pita 1.024V internal, dipilih dengan mengatur bit Channel Select ke 11111.
Jadi jika Anda menetapkan referensi modul ADC Anda ke Vdd dan kemudian kirim untuk mengukur penghormatan 1.024V, Anda dapat menyimpulkan kembali ke apa Vdd Anda sebenarnya adalah.

Biasanya Anda akan mengetahui tegangan pada pin yang Anda A2D miliki dengan sesuatu seperti:
Vin = (ADCval / ADCrange) * Vref

Tetapi dalam hal ini Vin nya yang Anda tahu (1.024v) dan Anda ingin menyelesaikan untuk Vref (Vdd Anda), jadi:
Vref = (Vin * ADCrange) / ADCval
atau lebih khusus untuk kasus Anda:
Vdd = (1.024 * 4096) / ADCval

brhans
sumber
Saya akan coba ini! ((besok) dan tuliskan ini sebagai jawaban jika berhasil) Rekan lain menunjukkan bahwa ia memiliki "referensi celah pita" Terima kasih atas wawasan tentang perhitungan untuk 'skala', tidak tahu itu!
Paul
Sempurna! Terima kasih untuk teori yang dikombinasikan dengan detail spesifik, ini diperbaiki dalam hitungan menit, pemikiran & pengujian membutuhkan lebih banyak waktu sebagai pengembangan aktual (setelah jawaban Anda).
Paul