Программно увеличить разрядность АЦП до 11 бит

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 25583
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

То есть желания обосновать математику повышения точности оверсемплингом так и не появилось?
:dont_know:
Реклама
Мучитель микросхем
Сообщения: 469
Зарегистрирован: Вс авг 30, 2015 03:52:59

Сообщение Pnjom-Penb »

Вы все еще расчитываете на то, что ерничанье поможет скрыть ну ооочень белые нитки? Напрасно, мир не без умных людей, что бы вам ни казалось по этому поводу. Изображение
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25583
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Тут важно отличать умных от дураков и правых от ошибающихся.
Для этого нужно ДУМАТЬ САМОМУ.
А не надеяться на силабс или микрочип.
ЗЫ. А с чего Вы решили, что я ерничаю? Как раз я с радостью приму Ваши доказательства. Потому что сам не представляю как это доказать.
ЗЗЫ. Более того, я с трудом представляю доказательство, которое опровергнет мой личный опыт. И опыт совсем не разовый. потому как обработка сигналов - мое основное занятие на работе.
Открыл глаза
Аватара пользователя
Сообщения: 59
Зарегистрирован: Сб дек 28, 2013 09:52:01
Откуда: Киев

Сообщение E30M20B20 »

Блин, парни. Вот вы все такие умные, а из-за срача, который здесь развёлся, хрен потом увидишь суть. Как и обычно впрочем.

Давайте лучше я сформулирую проблему и её решение с позиции любителя ассемблера-самоучки, далёкого от теории, но близкого к практике (то бишь себя).

Иногда так бывает, что для выбранного диапазона измерения и цены деления немного не хватает разрядности АЦП. Немного - это один, максимум 2 бита. Например, есть 10-битный АЦП (любой современный младший PIC), а надо 11- или 12-битный.

Немного нарастить разрядность (без улучшения абсолютной точности) поможет метод оверсэмплинга. Суть заключается в том, что нужно взять несколько измеренных 10-битных значений (для удобства кол-во значений должно быть одной из степеней двойки), вычислить их 10-битное среднее арифметическое, и умножить его на 2 столько раз, сколько бит разрядности надо добавить. Например, берём 8 10-битных отсчётов (буфер не стековый, а кольцевой, т.е., при записи нового значения затирается самое старое из 8-ми существующих), складываем эти 8 10-битных чисел (получается 13-битная сумма), и делим не на 8, а на 4 или 2. При этом получается 11-и или 12-и битное число, которое мы и используем в дальнейшем как результат работы 11-и или 12-и битного АЦП.

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

Кол-во отсчётов нужно брать чем больше, тем лучше. Ограничение здесь - объём ОЗУ и результирующая скорость измерения.

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

Подробнее о методе здесь: http://www.atmel.com/Images/doc8003.pdf

Так? Или что-то не так?
(c) 1982 Sinclair Research Ltd
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 25583
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Все именно так, с тем лишь добавлением, что при необходимости цифровой фильтрации не требуется специально делать оверсемплинг для повышения разрядности. Достаточно провести нормировку текущей суммы в КИХ фильтре не длиной массива, а в 2^N меньшей величиной. то есть и фильтр останется и разрядность повысится.
Это, правда, потребует увеличения порядка фильтра, поскольку мы увеличиваем чувствительность тракта.
Реклама
Мучитель микросхем
Сообщения: 469
Зарегистрирован: Вс авг 30, 2015 03:52:59

Сообщение Pnjom-Penb »

КРАМ писал(а):А с чего Вы решили, что я ерничаю?
С трех раз догадаетесь? И второе - не только я так решил. Это даже не шило в мешке.
Реклама
Опытный кот
Сообщения: 822
Зарегистрирован: Вс июн 02, 2013 12:23:03

Сообщение amd9800 »

E30M20B20 писал(а):А почему? 64 отсчёта мне в RAM не влезет, у 675-го PICа всего 64 байта RAM!
Ну тогда прощай кольцевой буфер.
Но можно просто суммировать все результаты в одну переменную, а в другую считать количество. Когда достигнешь нужного количества то делишь и опять начинаешь с начала.
Ответить

Вернуться в «PIC»