Mesurer la tension d'entrée VDD de PIC avec ADC

8
  • Processeur: PIC18F66K22
  • Compilateur: C18 (XC8 est très bien aussi)

Je viens de créer (et de tester avec succès) du code pour mesurer la tension sur la broche analogique AN4.

Maintenant, je veux essayer autre chose, je ne sais pas si c'est théoriquement possible.

Ma carte de test a un processeur PIC, avec VDD, AVVD connecté à une alimentation (allant de 0 (si la batterie est vide / déconnectée) à 4,2 (batterie pleine).

Puis-je utiliser l'ADC pour mesurer le VDD (-in) de ma carte?

Pourquoi pas?:

  • Ce n'est pas une broche ANx, vous ne savez pas comment faire pour mesurer l'ADC? (Canal?)
  • Si la tension du VDD (-in) chute, ma tension de référence ADC chutera-t-elle également? (Donc, lorsque mon PIC n'obtient que 3,3 V, l'ADC dira toujours que c'est 100% (comme la tension maximale sur la puce, la référence est également de 3,3 V).

Pourquoi / que demandez-vous?:

  • Puis-je simplement mesurer le canal 30 (VDDCORE)?
  • Puis-je régler ma Vref sur Vdd et mesurer une référence de tension de précision avec le convertisseur A / N. (Je ne sais pas comment)
  • Ou je pourrais ajouter un fil de VDD-in à une broche ANx?

  • Le VREF + interne (4.096V) restera-t-il 4 + V lorsque l'entrée VDD est autour de 3,4V? Y a-t-il une sorte de transformateur qui le rend possible?

  • La VREF + interne (4.096V) est un peu inférieure au maximum de la batterie (4,2V), cela signifie-t-il que je peux endommager l'ADC? Ou tout simplement que le résultat sera maximum lorsque la batterie est pleine. (4,2V sur 4096V)

Veuillez noter que ma connaissance de l'électronique est "faible". J'ai appris beaucoup plus sur la partie logicielle dans mes études, mais j'aimerais en savoir plus sur l'électronique (embarquée) car c'est une partie cruciale de l'ingénierie embarquée. (C'est triste que mon école ne voie pas ça.)

Paul
la source

Réponses:

14

Ce PIC a une référence interne de bande interdite de 1,024 V, sélectionnée en définissant les bits de sélection de canal sur 11111.
Donc, si vous définissez la référence de votre module ADC sur Vdd, puis lui dites de mesurer la révérence de 1,024V, vous pouvez déduire ce que votre Vdd réellement est.

Normalement, vous calculez la tension sur une broche que vous avez A2D avec quelque chose comme:
Vin = (ADCval / ADCrange) * Vref

Mais dans ce cas c'est son Vin que vous connaissez (1.024v) et que vous voulez résoudre pour Vref (votre Vdd), donc:
Vref = (Vin * ADCrange) / ADCval
ou plus spécifiquement pour votre cas:
Vdd = (1.024 * 4096) / ADCval

brhans
la source
Je vais essayer ça! ((demain) et mettez cela comme réponse si cela fonctionne) Un autre collégial a souligné qu'il avait une "référence Bandgap" Merci pour la perspicacité sur le calcul de l '"échelle", ne le savait pas!
Paul
Parfait! Merci pour la théorie en combinaison avec les détails spécifiques, cela a été corrigé en quelques minutes, la réflexion et les tests ont pris plus de temps que le développement réel (après votre réponse).
Paul