Medir el propio voltaje de entrada de VDD del PIC con ADC

8
  • Procesador: PIC18F66K22
  • Compilador: C18 (XC8 también está bien)

Acabo de crear (y he probado con éxito) el código para medir el voltaje en el pin analógico AN4.

Ahora quiero probar algo más, no estoy seguro de si es teóricamente posible.

Mi placa de prueba tiene un procesador PIC, con VDD, AVVD conectado a una fuente (desde 0 (si la batería está vacía / desconectada) hasta 4,2 (batería completa).

¿Puedo usar ADC para medir el VDD (-in) de mi placa?

¿Por qué no ?:

  • No es un pin ANx, ¿no estás seguro de cómo hacer que el ADC lo mida? (¿Canal?)
  • Si el voltaje en VDD (-in) cae, ¿también caerá el voltaje de referencia de mi ADC? (Entonces, cuando mi PIC solo obtenga 3,3V, el ADC seguirá diciendo que es del 100% (como el voltaje máximo en el chip, también la referencia es 3,3V).

¿Por qué / qué preguntas ?:

  • ¿Puedo medir el canal 30 (VDDCORE)?
  • ¿Puedo configurar mi Vref en Vdd y medir una referencia de voltaje de precisión con el convertidor A / D? (No estoy seguro de cómo)
  • ¿O podría agregar un cable de entrada VDD a un pin ANx?

  • ¿VREF + interno (4.096V) permanecerá 4 + V cuando el VDD-in sea alrededor de 3,4V? ¿Hay algún tipo de transformador que lo haga así?

  • El VREF + interno (4.096V) es un poco más bajo que el máximo de la batería (4,2V), ¿esto significa que puedo dañar el ADC? O simplemente que el resultado será máximo cuando la batería esté llena. (4,2 V de 4,096 V)

Tenga en cuenta que mi conocimiento de la electrónica es "bajo". He aprendido mucho más sobre la parte del software en mi educación, pero me gustaría saber más sobre la electrónica (integrada), ya que es una parte crucial en la ingeniería integrada. (Es triste que mi escuela no vea esto).

    
pregunta Paul

1 respuesta

13

Ese PIC tiene una referencia interna de intervalo de banda de 1.024 V, seleccionada al configurar los bits de Selección de canal en 11111.
Entonces, si configura la referencia de su módulo ADC a Vdd y luego le indica que mida la reverencia de 1.024 V, puede inferir de nuevo lo que realmente es su Vdd.

Normalmente, se calcularía el voltaje en un pin que has A2D con algo como:
Vin = (ADCval / ADCrange) * Vref

Pero en este caso, es Vin que conoces (1.024v) y quieres resolver para Vref (tu Vdd), así que:
Vref = (Vin * ADCrange) / ADCval
o más específicamente para su caso:
Vdd = (1.024 * 4096) / ADCval

    
respondido por el brhans

Lea otras preguntas en las etiquetas