Перейти к содержанию
    

Какую величину надо использовать при пересчете данных с АЦП (пусть 8-разрядного) в реальные вольты на его входе: 255 или 256?

По идее опорному соответствует вроде 255, но в даташитах делят на 256.

Разница, конечно, небольшая, но хотелось бы прояснить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уточняйте в даташите АЦП. Там обычно приведена формула для расчета.

Чаще всего просто делят на 256. Потому, что такое деление вычисляется с помощью арифметического сдвига результата на 8 бит вправо. Но, например, в 12-и разрядном АЦП (макс значение кода = 4095) микроконтроллера MSP430 более точная формула выглядит так: NADC=4095 * (Vin - VR-) / (VR+ - VR-), где NADC это код АЦП, Vin - напряжение входного сигнала, VR+ - напряжение "верхней" опоры, VR- - напряжение "нижней" опоры. Если VR- соединяется с общим проводом входного сигнала, то выражение упрощается до NADC=4095 * Vin / VREF, где VREF это величина напряжения опоры. Соответственно для вычисления значения входного напряжения нужно воспользоваться обратным преобразованием Vin=VREF * NADC / 4095

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

255.

Но смысла никакого. Даже если кажется, что точнее будет. Не будет.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уточняйте в даташите АЦП. Там обычно приведена формула для расчета.

...

Но, например, в 12-и разрядном АЦП (макс значение кода = 4095) микроконтроллера MSP430 более точная формула выглядит так: NADC=4095 * (Vin - VR-) / (VR+ - VR-)

Так в том-то и вопрос. В даташите АЦП (которые мне попадались) делят на 256. Вы привели пример с "255" (условно говоря).

На 256 делят только исходя из простоты или могут быть конструктивные особенности, с которыми связана формула?

 

255.

Но смысла никакого. Даже если кажется, что точнее будет. Не будет.

Ненамного, но будет. По крайней мере у края диапазона.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну вы, блин, даете! (с)

На сколько частей разделен диапазон [0:255]? На 256. Если не верите, нарисуйте на бумажке в клетку. Вот и делите на 256.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На сколько частей разделен диапазон [0:255]? На 256. Если не верите, нарисуйте на бумажке в клетку.

Ха:) А на сколько частей разделён диапазон [0..1]? Неужели на 2? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ха :) А на сколько частей разделён диапазон [0..1]? Неужели на 2? :)

Ну конечно! :)

Есть 0, и есть 1. Сколько всего?

Нужно брать включительно

Вот массив из двух элементов какие индексы имеет? Правильно, 0 и 1.

И АЦП выдает коды 0...255. Итого 256 ступенек.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

или могут быть конструктивные особенности, с которыми связана формула?
Да, могут быть конструктивные особенности, например, доп. смещение на 0,5 LSB. Особенности шкалы в частности могут касаться АЦП с дифференциальными входами и возможностью представления измеренного сигнала как униполярного или как биполярного.

 

 

Нужно брать включительно
Нет. нужно внимательно читать документацию на АЦП. Бывают особенности конструкции при которых вводится доп. смещение на 0,5 LSB, чтобы диапазон изменения кода приблизить к границам диапазона измерения (к величине VREF). При этом NADC(max) соответствует VREF, а не VREF-0,5LSB. Или в случае когда при униполярном питании нужно "чистый" ноль измерять.
Изменено пользователем rezident

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет. нужно внимательно читать документацию на АЦП. Бывают особенности конструкции

Ну, может у MSP430 что-нибудь особенное придумано. Разбираться не буду, вам виднее.

В общем же случае - как сказал.

Ваш АЦП выдает код 0? А код 4095 выдает? Тогда всего ступенек (уровней) 4096.

 

Чаще всего из-за простоты, но в большинстве случаев это соответствует реальному устройству АЦП.

Так "из-за простоты" или "соответствует реальному"? У вас "и тому дала, и тому дала" :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В том 8-ми разрядном АЦП, который рисуют в учебниках, для пояснения принципа работы, 255 ступенек и нуль.

Что соответствует регистру, число возможных состояний которого 256.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нужно брать включительно

Это кто ж вам сказал такую ерунду? :)

Вопрос изначально был - на сколько делить. Так вот, делить надо на число интервалов, а не на число точек.

Вот смотрите, как это выглядит в нашем вырожденном случае:

АЦП=0 - 0в

АЦП=1 - VREF

и итоговая формула:

V = VREF*АЦП/1

Если АЦП выдаёт числа 0..2, то формула:

V = VREF*АЦП/2

И наконец, если АЦП выдаёт числа 0..N, то формула:

V = VREF*АЦП/N

А никак не N+1.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос изначально был - на сколько делить. Так вот, делить надо на число интервалов, а не на число точек.
Ой, да что вы спорите. Входное напряжение, равное опорному, дает на выходе АЦП число 255. Решается элементарная пропорция Uвх/Uref = Nизм/Nmax, математика, 4-й класс.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ой, да что вы спорите. Входное напряжение, равное опорному, дает на выходе АЦП число 255.

Конечно.

..Но, в дэйтшитах-то, действительно, делят на 256, о чем и вопрос автора..

 

..Похожий "прикол", для начинающих, с таймерами.

Таймер досчитывает до 255, и в следующем такте сбрасывается.. :rolleyes:

..А вот если он сбрасывается по регистру сравнения, сбросится ли он по моменту достижения равенства регистров, или опять-таки, в следующем такте..?

Этот нюанс бывает сложно уяснить из документации.. :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуем еще раз.

Имеем 2-разрядный АЦП, выдающий 4 значения: 0, 1, 2, 3. Опорное напряжение у него 1V.

 

Примем, что ступеньки не смещены на 1/2 младшего разряда. Таким образом, получим:

0 - 0V, 1 - 0.25V, 2 - 0.5V, 3 - 0.75V

Вес младшего разряда равен 1V/2^N.

Обычно именно такой код АЦП и выдает. Не "добирает" до опорного одну ступеньку.

 

Можно сместить на полразряда, но и тогда младший разряд будет иметь вес 2^-N.

0 - 0.125V, 1 - 0.375V, 2 - 0.625V, 3 - 0.875V.

 

Можно и на целый разряд сместить:

0 - 0.25V, 1 - 0.5V, 2 - 0.75V, 3 - 1V.

Допускаю, что где-нибудь и такие АЦП имеются.

 

А вот чтобы данному коду соответствовало напряжение:

0 - 0V, 1 - 1/3V, 2 - 2/3V, 3 - 1V

таких АЦП я не встречал. А вы?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

..А вот чтобы данному коду соответствовало напряжение:

0 - 0V, 1 - 1/3V, 2 - 2/3V, 3 - 1V

таких АЦП я не встречал. А вы?

У двухбитного АЦП коду 11 будет соответствовать опорное напряжение, то есть, в вашем примере, 1 вольт.

А если опорное 3 вольта, то, значит, 3 вольта.. :rolleyes:

И ступеньки 1,2,3 вольта.. И нуль, который должен быть равен нулю, а не "смещен" куда-то..

А что не нравится?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...