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

Гость @Ark
Именно такая градация у него: 0 - 0V...0.5V, 1 - 0.5V...1V. Выберите что-нибудь "по вкусу" .

Правильно! Поэтому в таком АЦП значение 0 - соответствует напряжению 0,25V (+/-0,25V), а значение 1 -

соответствует напряжению 0,75V (+/-0,25V), а совсем не опорному 1V.

Если же мы хотим чтобы нуль был в нуле, необходимо сместить все значения на - 0,25V.

Тогда 0 будет соотвествовать 0V (+/-0,25V), а 1 - соответствовать 0,5V (+/-0,25V). Что еще дальше от опорного напряжения. А опорному напряжению 1V (+/-0,25V) будет соответствовать значение 2, недоступное в данном диапазоне.

Увеличивая количество разрядов до 8, получим, что значение 255 никогда точно не соответствует опорному.

Опорному напряжению должно соотвествовать значение 256, на что и нужно делить.

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


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

Второй АЦП - "правильный". А первый - или так хитро сделан, или ошибка в даташит. Исключение из общего правила.
Вот вам пример еще одного (неправильного?) АЦП. АЦП встроен в контроллеры SiLabs типа C8051F35x. Тут правда не формула, а табличка.

post-3882-1301479345_thumb.png

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


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

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

 

Определяется конструкцией АЦП, которая, как правило, устроена таким образом, что VRef = 256.

 

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


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

..Когда все 1111..11, это означает, что входное напряжение, как минимум, равно опорному.

А может и гораздо больше.. :rolleyes:

То есть, число ступенек A = 2^N - 1.

..Разговоры про"конструкцию" - в пользу бедных.. :rolleyes:

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


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

..Когда все 1111..11, это означает, что входное напряжение, как минимум, равно опорному.

 

Как минимум равно Vref-LSB. С точностью до full scale error.

 

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

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


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

Сход постановил:

1. Делить можно на любое число, по вкусу.

2. Обратное преобразование в код (из напряжения) - также можно умножать на любое число. Дробную часть отбрасывать.

Результат не зависит от 255 или 256. (Вроде как).

 

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


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

Не понял наезда. По-вашему, вы один отстаиваете истину, а все остальные здесь - флудят?

Уровней - два. А делить надо на 1.

Какой наезд? Я ж про себя говорю. :)

Значит, уровней два? Ну и как они получатся делением 1 на 1? :)

 

Вот вам пример еще одного (неправильного?) АЦП. АЦП встроен в контроллеры SiLabs типа C8051F35x. Тут правда не формула, а табличка.

А вот это пример как раз "правильного" АЦП. У него есть коды от 0000 до FFFF включительно, итого 2^16 уровней.

 

Сход постановил:

Делить можно на любое число, по вкусу.

Результат не зависит от 255 или 256. (Вроде как).

Нет. Делить надо на то, что написано в даташит. Если не написано, делите на 256.

Если делить на 255 (ох, как сложно!), ошибка хоть и маленькая, но будет. Такой хоккей нам не нужен!

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


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

Значит, уровней два? Ну и как они получатся делением 1 на 1? :)
На самом деле всех интересует величина входного напряжения, а не собственно код АЦП. Но при обратном преобразовании получаются два значения напряжения 0В и 1В. Поэтому кажется, что 1В/1 :) Чтобы этот пример с двумя уровнями квантования был более наглядным величину опоры нужно брать отличную от единицы, например, 2В, 4В или более реальные значения 1,25В, 2,5В, 3В, 4,096В, 5В.

А вот это пример как раз "правильного" АЦП. У него есть коды от 0000 до FFFF включительно, итого 2^16 уровней.
Любопытно, а как вы себе представляете другой вариант 16-и разрядного АЦП? 16 разрядов дают коды от 0x0000 до 0xFFFF. Не больше и не меньше. Дискретов действительно 2^16=65536, но соответствие входного напряжения дискретному коду АЦП для общего случая опять же не определено строго и зависит от конструкции конкретного АЦП. Вот пример еще одного "неправильного" АЦП типа сигма-дельта SD16A из MSP430.

post-3882-1301482351_thumb.png

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


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

На самом деле всех интересует величина входного напряжения, а не собственно код АЦП. Но при обратном преобразовании получаются два значения напряжения 0В и 1В.

Не получаются. Если хотите, подайте на ЦАП с опорным напряжением 1V, на старший разряд. Получите 0 или 0.5V.

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


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

Попробуйте самостоятельно изготовить АЦП последовательного приближения.

11111111 получается, когда компаратор говорит, что входное напряжение все еще больше 11111110!

А так как это последний шаг (число шагов не может превышать некоторое количество) - то результат полагают равным 111111111.

 

Т.е. с 111111111 никто ничего не сравнивает.

Сравнивают 1111 1110 со входом.

 

А что такое 1111 1110 - это результат R2R ЦАП.

Вот и делайте выводы.

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


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

Т.е. с 111111111 никто ничего не сравнивает.

Сравнивают 1111 1110 со входом.

Почему это? Что мешает? На ЦАП код 11111111 можно подать?

 

И в ЦАП обычно выходное напряжение не дотягивает до опорного на единичку младшего разряда. А всех уровней будет 2^N.

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


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

11111111 получается, когда компаратор говорит, что входное напряжение все еще больше 11111110!

А так как это последний шаг (число шагов не может превышать некоторое количество) - то результат полагают равным 111111111.

 

Нет. С младшим разрядом АЦП последовательного приближения сравнивают обязательно. Иначе зачем он нужен был бы, этот младший разряд?

 

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


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

Гость @Ark
Вот и делайте выводы.

Все выводы давно сделаны.

Не зря опорники выпускают на 4,096В, а не на 4,095В. А кварцы - на 32768Гц, а не 32767Гц.

Максимальное значение в регистре (АЦП или таймера) отличается на единицу в меньшую сторону

от используемого опорного значения. Поэтому и делить всегда нужно на 2^N.

Лишний геморрой с пересчетом ни кому не нужен.

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


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

Странные люди.

Я ж сказал - если вы сами бы изготавливали...

Какой смысл сравнивать что-то с 111111111? Меньше - быть не может. Больше - все равно цифру не выдать больше.

 

Шаг сравнения с 1111 1110 - ПОСЛЕДНИЙ. После него принимается решение.

Алгоритм такой.

 

А последний разряд, Хаус, нужен для чисел других, например, 10000001. Там есть смысл сравнивать.

 

А единственная ситуация, когда (шаг алгоритма является последним && насыщение разрядности) - это в случае 11111111.

 

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


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

Какой смысл сравнивать что-то с 111111111? Меньше - быть не может. Больше - все равно цифру не выдать больше.

 

Кто вам сказал, что не может? Бывают напряжения между 111111110 и 111111111.

 

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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