Измерьте собственное напряжение VDD в ПИК с помощью АЦП


8
  • Процессор: PIC18F66K22
  • Компилятор: C18 (XC8 тоже подойдет)

Я только что сделал (и успешно протестировал) код для измерения напряжения на аналоговом выводе AN4.

Теперь я хочу попробовать что-то еще, не совсем уверенный, теоретически ли это возможно.

Моя тестовая плата имеет процессор PIC, с VDD, AVVD, подключенным к источнику питания (в диапазоне от 0 (если батарея разряжена / отсоединена) до 4,2 (полная батарея).

Могу ли я использовать АЦП для измерения VDD (-in) моей платы?

Почему бы нет?:

  • Это не вывод ANx, не знаете, как заставить его измерять АЦП? (Канал?)
  • Если напряжение на VDD (-в) падает, будет ли мой АЦП опорного напряжения также падение? (Поэтому, когда мой PIC получает только 3,3 В, АЦП все равно скажет, что это 100% (как максимальное напряжение на чипе, также эталоном является 3,3 В).

Почему / что ты спрашиваешь ?:

  • Могу ли я просто измерить канал 30 (VDDCORE)?
  • Могу ли я установить мой Vref к Vdd и измерить ссылку точность напряжения с преобразователем A / D. (Не уверен как)
  • Или я мог бы добавить провод от VDD-in к выводу ANx?

  • Будет ли внутренний VREF + (4,096 В) оставаться 4 + В, если вход VDD составляет около 3,4 В? Есть ли какой-то трансформатор, который делает это так?

  • Внутренний VREF + (4,096 В) немного ниже максимального значения батареи (4,2 В), значит ли это, что я могу повредить АЦП? Или просто, что результат будет максимальным, когда батарея полностью заряжена. (4,2 В из 4096 В)

Пожалуйста, учтите, что мои знания в области электроники "низкие". Я узнал намного больше о программной части в моем образовании, но я хотел бы узнать больше о (встраиваемой) электронике, поскольку она является важной частью встраиваемой инженерии. (Печально, что моя школа не видит этого.)

Ответы:


14

ПОС имеет внутренний источник опорного напряжения 1.024V, запрещенной зоны , выбранной настройки выбора канала битов в 11111.
Таким образом , если вы установите ссылку на ваш ADC модуля к Vdd , а затем сказать ему , чтобы измерить 1.024V благоговение, вы можете вывести обратно к тому , что ваш Vdd на самом деле является.

Обычно вы работаете с напряжением на выводе, который у вас есть A2D с чем-то вроде:
Vin = (ADCval / ADCrange) * Vref

Но в этом случае это Vin, который вы знаете (1.024v) и который вы хотите решить для Vref (ваш Vdd), поэтому:
Vref = (Vin * ADCrange) / ADCval
или, более конкретно, для вашего случая:
Vdd = (1.024 * 4096) / ADCval


Я попробую! ((завтра) и укажите это как ответ, если он работает) Другой коллега указал, что у него есть «ссылка на запрещенную зону». Спасибо за понимание расчета «шкалы», не знал этого!
Paul

Отлично! Спасибо за теорию в сочетании с конкретными деталями, это было исправлено в считанные минуты, мышление и тестирование заняли больше времени как фактическая разработка (после вашего ответа).
Paul
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.