Калибровка АЦП в ATTiny88

Я пишу встроенное приложение для ATtiny88 - одной из его задач является измерение напряжения двух последовательно соединенных автомобильных аккумуляторов 12 В.

Микроконтроллер питается примерно от 4,5-5 В (LM317), измеряемые напряжения (~24 В и ~12 В) подключаются к двум каналам АЦП через соответствующие делители напряжения. В моем приложении я должен использовать внутреннюю опорную ширину запрещенной зоны, теоретически равную 1,1 В.

Вероятно, мне следует выполнить какую-то процедуру калибровки, поэтому сейчас я понял что-то вроде этого:

  1. Подайте точное напряжение 24 В (12 В) от внешнего стабилизированного источника питания на делитель напряжения.
  2. Рассчитать коэффициент усиления для каждого используемого канала (24 (12) / среднее значение из канала АЦП)
  3. Сохраните эти коэффициенты в EEPROM и используйте их в качестве коэффициента масштабирования для расчета измеренных напряжений.

Я попытался измерить внутреннюю опорную ширину запрещенной зоны — к ней внутренне подключен один из каналов АЦП — но он всегда возвращает 1023 — максимальное значение для 10-разрядного АЦП.

У меня вопрос, как наиболее точно измерить напряжения? Опорное напряжение запрещенной зоны, вероятно, различается между разными чипами (в техническом описании указано 1-1,2 В). Есть ли лучший способ сделать калибровку, чем тот, который я делаю прямо сейчас? Пожалуйста помоги.

Ответы (2)

Эталон ширины запрещенной зоны определяет верхний предел диапазона АЦП, поэтому вы всегда получите показание 1023. Даже деление его на меньшую сторону не поможет, так как АЦП всегда будет измерять фиксированную часть своего эталона.

  • Поскольку он уже доступен на выводе, просто точно измерьте внутреннее опорное напряжение.
  • Подайте напряжение на свободный вход АЦП. Хотя это отделяет ваше напряжение от остальной части схемы, вы предполагаете, что входы имеют идентичные характеристики. И вам нужен дополнительный код, чтобы считать этот АЦП.
  • Подайте напряжение на используемый вход АЦП.
  • Подайте напряжение на вход 24 В вашего делителя напряжения. Это лучшее решение для калибровки, поскольку оно также исправляет ошибки, связанные с точностью резисторов делителя напряжения. (Наихудшая ошибка может быть оценена как удвоенная точность, поэтому 2%, если вы используете 1% резисторы. Так что лучше используйте 0,1%)

В то время как последний пункт позволяет откалибровать АЦП для определенного напряжения с высочайшей точностью, вы также можете выполнить измерение для нескольких напряжений. Таким образом, вы узнаете, есть ли смещение (0V не является 0x0000), нелинейный или другой эффект. Вот результат моей работы:

введите описание изображения здесь

Это калибровка 16-битного биполярного АЦП с некоторыми входными электронными устройствами, которые также влияют на качество измерения. В целом с линейностью все в порядке, и вы можете использовать линейную функцию для преобразования показаний АЦП в напряжение наоборот. Однако остаток (разница между считанным и ожидаемым значением АЦП) показывает эту волнообразную кривую. Эффект не большой, но он есть.

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

Хорошо, я думаю, это больше, чем то, что вам нужно знать. Последний пункт:

Всегда думайте о том, какая точность достижима и осуществима. Ваш АЦП имеет динамический диапазон 0,1% (1/1023), поэтому вам следует учитывать, когда вы используете резисторы 1% для делителя, но резисторы 0,1% будут в порядке. И если ваш мультиметр имеет точность 3%, это лучшее, что вы можете получить для калибровки. Наконец, 0,1% от 24 В составляет 24 мВ, поэтому решите, какая точность вам нужна.

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

Поскольку АЦП имеет хорошую линейность по своей конструкции, вы можете использовать практически любое напряжение для расчета коэффициента масштабирования, если вы знаете, что это такое.

Другим вариантом, хотя и более дорогим, является подключение к схеме внешнего эталона ширины запрещенной зоны и использование его в качестве эталона для АЦП.