Diusha 0 31 марта, 2011 Опубликовано 31 марта, 2011 · Жалоба В ту-же тему задачка: при оверсемлинге N-отсчетов суммируются и сдвигаются вправо на М. Например, если хотим получить 10 бит из восьми, то суммируем 16 отсчетов и сдвигаем вправо на 2. Если все отсчеты были равны 255, то результат будет 1020, а не 1023. И насколько делить в этом случае? А слабо из 8 бит получить 24? ;) А делить однозначно либо на 255*4 либо на 256*4, а этот выбор - собсно сабж темы. Но уж точно не на 1023 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 31 марта, 2011 Опубликовано 31 марта, 2011 · Жалоба Думал я, думал и вот что надумал. Я решил: делть буду на 255 (для АЦП, которому годится та картинка(!!) ) Вы все правильно посчитали, на первый взгляд. Только выводы сделали неправильные. :) Что есть делить на 255? Сложная процедура. Не у каждого микроконтроллера получится легко. А что есть делить на 256? Да вообще ничего делать не надо! Взял старший байт, а про младший забыл. А чтобы добавить пол-младшего разряда, прибавить к младшему байту 0x80 (считаем, уже поделили, и это есть дробная часть), и, если есть перенос, увеличил старший байт. Или использовать и старший байт (целая часть), и младший (дробная часть). И ошибка равна нулю! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость @Ark 31 марта, 2011 Опубликовано 31 марта, 2011 · Жалоба Каждому коду с АЦП соответствует не точка напряжения, а интервал: код 00000 соответствует точке в интервале 0...1LSB, код 11111 - Vref-1LSB...Vref (и больше, но это сейчас не важно). Не совсем так. У нормального АЦП нуль должен быть нулем. Поэтому интервалы все смещены на -(1/2)LSB. И значение кода, в этом случае, точно соответствует своему напряжению с погрешностью +/-(1/2)LSB. И делить, естественно, только на 2^N (когда это необходимо). P.S. Если ваше АЦП изложенному выше не соответствует - выбросьте его, и возьмите нормальное. Либо смиритесь с погрешностью. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 31 марта, 2011 Опубликовано 31 марта, 2011 · Жалоба Не совсем так. У нормального АЦП нуль должен быть нулем. Рассмотрим АЦП с униполярным входом. 2-битовый (4-уровневый), с опорным напряжением 1V. У такого АЦП коды будут соответствовать: 00 - 0...0.25V 01 - 0.25..0.5V 10 - 0.5..0.75V 11 - 0.75..1V Подав такой код на ЦАП, получим напряжения: 0, 0.25V, 0.5V, 0.75V. Имеем погрешность на пол-младшего разряда. Если к полученному коду добавить еще один (дробный) разряд, равный 1, и подать уже на 3-битовый ЦАП, мы эту погрешность устраним. Попадем точно в середину исходных диапазонов. Для многоразрядных АЦП эта погрешность несущественна. Особенно, учитывая, откуда что мы подаем сигнал на вход АЦП. Там и своих ошибок смещения хватает. Для биполярных АЦП, наверное, можно сразу сделать преобразование без такой ошибки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Wise 0 31 марта, 2011 Опубликовано 31 марта, 2011 · Жалоба Рассмотрим АЦП с униполярным входом. 2-битовый (4-уровневый), с опорным напряжением 1V. ..На выходе простейшего двухбитного ЦАП, состоящего из ОУ, двух оппозитных ключей, источника опорного напряжения, коммутируемых резисторов и резистора в цепи ОС, будет нуль и три ступеньки напряжения, причем, верхняя ступенька равна опорному напряжению. ЦАП и АЦП вещи взаимообратные.. :rolleyes: ViKo, вы согласны с этим? Именно, с тем, что у двухбитного ЦАП на выходе нуль и три ступеньки, а не четыре? ..Если нет, смотрите книгу, например, Р. Токхейм, Основы цифровой электроники, М., Мир, 1988. ..Там нарисованы два варианта 4-х битных ЦАП, вариант 4-х битного АЦП, приведены подробнейшие таблички соответствия кода и выходного напряжения. Так вот, для 4-х битного АЦП, коду 0000 соответствует входное напряжение нуль, коду 1111 соответствует опорное напряжение; 16 строчек в таблице, 15 ступенек.. ..Понятно, вполне, что коду 0000 соответствует входное напряжение от нуля и выше, но, менее 1/15 от опорного. Коду 0001 соответствует напряжение, больше или равное 1/15 от опорного, но, менее 2/15 от опорного.. Коду 1111 будет соответствовать опорное напряжение, или большее.. То же самое относится к ЦАП-ам.. ..И как-то я согласен с Р. Токхеймом.. :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость @Ark 31 марта, 2011 Опубликовано 31 марта, 2011 · Жалоба Так вот, для 4-х битного АЦП, коду 0000 соответствует входное напряжение нуль, коду 1111 соответствует опорное напряжение; 16 строчек в таблице, 15 ступенек.. Возмите любое многоразрядное АЦП (8, 10, 12 ... разрядов) и выделите старшие 4 бита. Это и будет Вашим 4-х битным АЦП. Неиспользуемые младшие биты положите все равными нулю, или единице, или возмите среднее значение. Ни в одном из случаев работа такого АПЦ не будет совпадать с тем, что Вы изложили! P.S. Можете аналогичным образом изучить работу 2-х, 1-битного, или n-битного АЦП, выделяя нужное количество старших битов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 31 марта, 2011 Опубликовано 31 марта, 2011 · Жалоба причем, верхняя ступенька равна опорному напряжению. Нут. У такого ЦАП верхняя ступенька может оказаться равным чему угодно, в зависимости от резистора обратной связи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Wise 0 31 марта, 2011 Опубликовано 31 марта, 2011 · Жалоба Возмите любое многоразрядное АЦП (8, 10, 12 ... разрядов) и выделите старшие 4 бита. Это и будет Вашим 4-х битным АЦП. P.S. Можете аналогичным образом изучить работу 2-х, 1-битного, или n-битного АЦП, выделяя нужное количество старших битов. АЦП - это "он", во-первых.. И зачем мне брать многоразрядный, что-то отбрасывая.. Я привел пример работы простого 4-х битного АЦП, причем, не мной придуманный.. Нут. У такого ЦАП верхняя ступенька может оказаться равным чему угодно, в зависимости от резистора обратной связи. Да с чего вы взяли? Не чему угодно, а именно, опорному напряжению или выше.. ..Если же вы имеете в виду умножение на коэффициент, больший или меньший единицы, тогда все ступеньки умножатся, не только самое верхнее значение. Зачем это сюда впутывать? ..Все, учебники более не пересказываю.. Пробовал уже, в одной теме.. Считайте, как хотите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость @Ark 31 марта, 2011 Опубликовано 31 марта, 2011 · Жалоба АЦП - это "он", во-первых.. И зачем мне брать многоразрядный, что-то отбрасывая.. Я привел пример работы простого 4-х битного АЦП, причем, не мной придуманный.. А я Вам привел пример реально существующего 4-х битного АЦП, который является составной частью, например, 10-битного. Вы задачах всегда все 10 бит используете? А если только 8 требуется, что все уже не правильно? Случай с 4-мя битами ничем принципиально не отличается! А "кривых" АЦП можно придумать сколько угодно. И, самое печальное, изготовить... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Wise 0 31 марта, 2011 Опубликовано 31 марта, 2011 · Жалоба А я Вам привел пример реально существующего 4-х битного АЦП, который является составной частью, например, 10-битного. ..А"кривых" АЦП можно придумать сколько угодно. И, самое печальное, изготовить... Я не понимаю, зачем надо рассматривать 8-ми битный АЦП, чтобы понять, как работает 4-х битный. Не проще ли его (4-х битный) и рассмотреть? ..АЦП из указанной книжки вовсе не "кривой", поскольку, книжка учебная и показывает именно принципы работы. ..Ну, хоть вы скажите, сколько ступенек у 2-х битного ЦАПа (кроме нуля).. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 31 марта, 2011 Опубликовано 31 марта, 2011 · Жалоба ViKo, вы согласны с этим? Именно, с тем, что у двухбитного ЦАП на выходе нуль и три ступеньки, а не четыре? ..Если нет, смотрите книгу, например, Р. Токхейм, Основы цифровой электроники, М., Мир, 1988. Так вот, для 4-х битного АЦП, коду 0000 соответствует входное напряжение нуль, коду 1111 соответствует опорное напряжение; 16 строчек в таблице, 15 ступенек.. ..И как-то я согласен с Р. Токхеймом.. :rolleyes: Нет, не согласен! :( А согласен я с предыдущими ораторами. И мы уже, как заевшая пластинка, в один голос повторяем - не соответствует максимальный код с АЦП опорному напряжению. А соответствует диапазону напряжения от на единичку младшего разряда меньшего, чем опорное, до опорного. У двухбитового АЦП 4 уровня - 0, 1, 2 и 3, все равноценные. Не 0 + 3, а именно 4, хотя это уже вопрос демагогии. Нарисуйте схему, если хотите доказать. Еще лучше, в спайсе покажите. Или хоть из книги картинку покажите. Чему равна одна ступенька в АЦП Токхейма? Неужели Vref/15? В-принципе, масштабировать АЦП или ЦАП можно до любого коэффициента. Но главное останется неизменным - у N-разрядного АЦП или ЦАП имеется 2^N уровней. Вот на это число и нужно делить, чтобы получить единичный шаг. А делить нужно то, что было бы при коде 2^N (чудо! :)). Причем в реальном устройстве, АЦП или ЦАП, такого кода нет. А есть лишь максимум 2^N - 1. P.S. чем дальше влез... :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Wise 0 31 марта, 2011 Опубликовано 31 марта, 2011 (изменено) · Жалоба Нет, не согласен! :( А согласен я с предыдущими ораторами. И мы уже, как заевшая пластинка, в один голос повторяем.. Или хоть из книги картинку покажите. Чему равна одна ступенька в АЦП Токхейма? Неужели Vref/15? ..Именно, что как пластинка.. :rolleyes: ..без доказательств. Одна ступенька в АЦП из книги Токхейма (а не АЦП Токхейма) равна 1/15 от опорного, для АЦП в четыре разряда. У меня только бумажная версия книги, если найду в инете, выложу фрагмент. Перерисовывать и перепечатывать не буду, возиться с фото - тоже. ..Слушайте, я набрал в гугле Р. Токхейм и сразу эта книга всплыла.. Может, сами посмотрите..? Мне-то зачем придумывать.. :rolleyes: Изменено 31 марта, 2011 пользователем Wise Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость @Ark 31 марта, 2011 Опубликовано 31 марта, 2011 · Жалоба ..Именно, что как пластинка.. ..без доказательств. Это не вопрос доказательства, а вопрос правильного=удобного выбора. И почему нужно выбирать (строить АЦП) именно так - весь этот топик. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Wise 0 31 марта, 2011 Опубликовано 31 марта, 2011 · Жалоба .. А делить нужно то, что было бы при коде 2^N (чудо! :)). Причем в реальном устройстве, АЦП или ЦАП, такого кода нет. А есть лишь максимум 2^N - 1. ..Вот-вот.. :rolleyes: Есть нуль и 2^N - 1 ступенек.. Каждому, отличному от нуля, значению кода, соответствует своя персональная ступенька.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 31 марта, 2011 Опубликовано 31 марта, 2011 · Жалоба ..Слушайте, я набрал в гугле Р. Токхейм и сразу эта книга всплыла.. Может, сами посмотрите..? Мне-то зачем придумывать.. :rolleyes: Я показал здесь картинки из даташитов реальных АЦП и ЦАП. Им-то вы поверите? Там даже думать не надо, формулы написаны! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться