|
Получить от АЦП полные 10 бит. Как? |
|
|
|
Dec 5 2011, 02:35
|

Местный
  
Группа: Участник
Сообщений: 253
Регистрация: 4-03-09
Из: Богота, Колумбия
Пользователь №: 45 676

|
Так получилось, что для получения необходимого разрешения по измеряемому напряжению мне нужно 10+ бит. Использовать планирую ATmega48 с внутренним генератором на 4-8 МГц. Атмега будет мерить 2 входа АЦП (6 и 7, т.к. на них больше ничего нету), выполнять элементарный расчёт и выдавать на семисегментный индикатор в динамическом режиме. На входе имеем 7 вольт и померить их надо с разрешением (и точностью) 0,006946891517745 вольт. 10 бит на таком диапазоне, это 0,0068359375, то есть как раз. И того, надо получить 1024 чистые точки. Без дрожания. Хотелось бы услышать мнения, как это сделать.
Например, хватит ли внутреннего ИОНа для такой точности? В ДШ шум документирован как 0,5 LSB. Правда, нигде не нашёл, это при измерении в шутдауне, или при работающем ядре тоже?
Допустим, на время измерения я буду отправлять МК в шутдаун (хотя не хотелось бы, т.к. на нём ещё и динамическая индикация). Делать усреднение (оверсемплинг) по 8-16 выборкам подряд... Что ещё можно сделать?..
|
|
|
|
|
 |
Ответов
|
Dec 5 2011, 19:48
|

Местный
  
Группа: Участник
Сообщений: 253
Регистрация: 4-03-09
Из: Богота, Колумбия
Пользователь №: 45 676

|
Попробую объяснить на пальцах. Допустим имеем 8 бит АЦП, которое дало результат 148 = 10010100. Сдвигаем результат на 7 бит влево: 0b100101000000000 Условно, в реале величину сдвига надо считать. Теперь прибавляем сюда случайно выхваченное значение 8-и битного счётчика, до кучи преобразованное к знаковому виду. Вот тебе и шум - он может быть меньше веса младшего значащего бита и не привести к его переключению (или нескольких младших бит)), а может быть больше, и бит перескочит. Всё как в жизни. Тут возможны варианты. Можно реализовать программный компаратор и щёлкать младший бит согласно условию больше/меньше счётчика. То, о чём писала Татьяна, по сути. Собственно, эти методы были описаны ещё во времена СССР, но тогда подмешивание реального электрического шума было простейшим решением для полуаналоговых ЭВМ. Зачем это делать сейчас?.. При дальнейшем накоплении (самплировании реального сигнала) прибавленный шум также суммируется (или вычитается). Результатом будет усреднение выборок со сдвигом до исходных 8 бит, или той разрядности, что нам нужна. То есть ключом является сдвиг результата АЦП влево. Если вы не делаете сдвиг а просто суммируете шум к результату, вот тут уже будет бред. Теперь хотелось бы посмотреть на вашу реализацию и найти общие точки Цитата(rx3apf @ Dec 5 2011, 23:33)  А опыт ? Делайте, экспериментируйте... Ну, это, какбэ, колхоз...
Сообщение отредактировал Dikoy - Dec 5 2011, 19:51
|
|
|
|
|
Dec 5 2011, 19:59
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(Dikoy @ Dec 5 2011, 23:48)  Попробую объяснить на пальцах. Допустим имеем 8 бит АЦП, которое дало результат 148 = 10010100. Сдвигаем результат на 7 бит влево: 0b100101000000000 Условно, в реале величину сдвига надо считать. Теперь прибавляем сюда случайно выхваченное значение 8-и битного счётчика, до кучи преобразованное к знаковому виду. Вот тебе и шум - он может быть меньше веса младшего значащего бита и не привести к его переключению (или нескольких младших бит)), а может быть больше, и бит перескочит. Всё как в жизни. Еще раз - показания ADC стоят как влитые, пока входной уровень не изменится на 1LSB. Вы можете прибавлять туда шум, возраст Вселенной в секундах, умножать на свой рост в миллиметрах и заниматься еще кучей бесполезных арифметических действий. Но различить изменение входного уровня меньше 1LSB - не сможете. Неужели это не очевидно ? Нет ? Ладно, я запасаюсь попкорном и буду просто наблюдать этот цирк...
|
|
|
|
|
Dec 5 2011, 20:31
|

Местный
  
Группа: Участник
Сообщений: 253
Регистрация: 4-03-09
Из: Богота, Колумбия
Пользователь №: 45 676

|
Цитата(rx3apf @ Dec 5 2011, 23:59)  Еще раз - показания ADC стоят как влитые, пока входной уровень не изменится на 1LSB. Вы можете прибавлять туда шум, возраст Вселенной в секундах, умножать на свой рост в миллиметрах и заниматься еще кучей бесполезных арифметических действий. Но различить изменение входного уровня меньше 1LSB - не сможете. Неужели это не очевидно ? Нет ? Ладно, я запасаюсь попкорном и буду просто наблюдать этот цирк... Твой имат! Что в переводе означает "умрём за царя". У меня есть конкретная задача - получить 10 бит на 10-и битном АЦП, без дрожания. Какое нафиг получение уровня меньше 1LSB? Вы себе придумали повышения разрядности до 12 бит и прёте к этой эмпирической цели. А задача то намного проще. Чувствительность АЦП УЖЕ достаточна. Шум ВНУТРИ АЦП, внешними пилами вы его не выпилите. "Неужели это не очевидно ?" (с) Или хотелось за ДСП поболтать? :/ Цитата(xemul @ Dec 6 2011, 00:21)  Но ровнее != точнее. Да. Однако систематическая погрешность компенсируется, а случайная - нет. Цитата(xemul @ Dec 6 2011, 00:21)  Бессмысленные шаманские пляски? А то. А апогей шаманства - фильтр Калмана.
|
|
|
|
|
Dec 5 2011, 20:37
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(Dikoy @ Dec 6 2011, 00:29)  У меня есть конкретная задача - получить 10 бит на 10-и битном АЦП, без дрожания. Какое нафиг получение уровня меньше 1LSB? Вы себе придумали повышения разрядности до 12 бит и прёте к этой эмпирической цели. А задача то намного проще. И Вам с самого начала сказали - никаких сложностей в этом нет. _Вообще_ нет. Если, конечно, учтете сказанное. Но +/- младший разряд - будет всегда, как у любого цифрового измерительного прибора. Не нравится - увеличивайте разрядность. Механизм увеличения разрядности был приведен всего лишь как пример пользы "дрожания" младшего бита. А вот Ваше теоретизирование по поводу тождественности аппаратного и программного добавления шума - это лично Ваши измышления, к реальности отношения не имеющие. Цитата Чувствительность АЦП УЖЕ достаточна. Шум ВНУТРИ АЦП, внешними пилами вы его не выпилите. Шум _внутри_ АЦП много меньше 1LSB. Как бы не на порядок.
|
|
|
|
Сообщений в этой теме
Dikoy Получить от АЦП полные 10 бит. Как? Dec 5 2011, 02:35 Tanya Цитата(Dikoy @ Dec 5 2011, 06:35) Так пол... Dec 5 2011, 03:11 777777 Я еще понимаю когда речь идет о 14-16 разрядном АЦ... Dec 5 2011, 04:22 Tanya Цитата(777777 @ Dec 5 2011, 08:22) Я еще ... Dec 5 2011, 04:39  rx3apf Цитата(Tanya @ Dec 5 2011, 08:39) А я вот... Dec 5 2011, 07:05   Tanya Цитата(rx3apf @ Dec 5 2011, 11:05) Если д... Dec 5 2011, 07:20    rx3apf Цитата(Tanya @ Dec 5 2011, 11:20) А если ... Dec 5 2011, 10:44     Tanya Цитата(rx3apf @ Dec 5 2011, 14:44) Это ка... Dec 5 2011, 11:02     ViKo Цитата(rx3apf @ Dec 5 2011, 13:44) А реал... Dec 5 2011, 12:22      rx3apf Цитата(ViKo @ Dec 5 2011, 16:22) А как ег... Dec 5 2011, 12:27       Tanya Цитата(rx3apf @ Dec 5 2011, 16:27) - меан... Dec 5 2011, 12:54        ViKo Цитата(Tanya @ Dec 5 2011, 15:54) Это как... Dec 5 2011, 12:56         Tanya Цитата(ViKo @ Dec 5 2011, 16:56) например... Dec 5 2011, 13:02          ViKo Цитата(Tanya @ Dec 5 2011, 16:02) А что э... Dec 5 2011, 13:06           Tanya Цитата(ViKo @ Dec 5 2011, 17:06) Псевдосл... Dec 5 2011, 13:27            rx3apf Цитата(Tanya @ Dec 5 2011, 17:27) Не пони... Dec 5 2011, 14:08            Dikoy Цитата(777777 @ Dec 5 2011, 08:22) Я еще ... Dec 5 2011, 15:41             rx3apf Цитата(Dikoy @ Dec 5 2011, 19:41) Вот. То... Dec 5 2011, 15:49              Dikoy Цитата(rx3apf @ Dec 5 2011, 19:49) Есть. ... Dec 5 2011, 17:50               rx3apf Цитата(Dikoy @ Dec 5 2011, 21:41) На посл... Dec 5 2011, 17:57                Dikoy Цитата(rx3apf @ Dec 5 2011, 21:57) Смотре... Dec 5 2011, 19:17                 rx3apf Цитата(Dikoy @ Dec 5 2011, 23:17) Допуск ... Dec 5 2011, 19:33             Tanya Цитата(Dikoy @ Dec 5 2011, 19:41) Дизерин... Dec 5 2011, 15:51        rx3apf Цитата(Tanya @ Dec 5 2011, 16:54) Это мож... Dec 5 2011, 13:14 arttab не забудьте считывать результат из 2х регистров Dec 5 2011, 07:13 777777 Цитата(arttab @ Dec 5 2011, 11:13) не заб... Dec 5 2011, 09:30 Павлик Я делал так значительно лучше результат, сравнение... Dec 5 2011, 09:15 Navovvol "0,006946891517745 вольт. " И зачем така... Dec 5 2011, 09:45 xemul Цитата(Navovvol @ Dec 5 2011, 13:45) ... Dec 5 2011, 09:52 delamoure Кокос, кокос, не издевайтесь...
Стремление измерит... Dec 5 2011, 10:23   777777 Цитата(Dikoy @ Dec 6 2011, 00:31) Твой им... Dec 6 2011, 07:26    rx3apf Цитата(777777 @ Dec 6 2011, 11:26) Да поч... Dec 6 2011, 08:24     Tanya Цитата(rx3apf @ Dec 6 2011, 12:24) Да. Но... Dec 6 2011, 08:37 xemul Цитата(Dikoy @ Dec 5 2011, 23:48) Всё как... Dec 5 2011, 20:21 Dikoy Знать значение младШИХ битОВ или младШЕГО битА - р... Dec 5 2011, 21:05 rx3apf Цитата(Dikoy @ Dec 6 2011, 01:05) Я катег... Dec 5 2011, 21:16  Dikoy Цитата(rx3apf @ Dec 6 2011, 01:16) Тогда ... Dec 6 2011, 19:00   Михась Цитата(Dikoy @ Dec 7 2011, 01:00) У кнута... Dec 7 2011, 01:56    Dikoy Цитата(Михась @ Dec 7 2011, 05:56) Классн... Dec 8 2011, 20:49     Microwatt Цитата(Dikoy @ Dec 9 2011, 00:49) Кстати,... Dec 8 2011, 22:46      Михась ЦитатаУ мемсов подшипники?
Вы случайно с магнитоме... Dec 9 2011, 04:01   ViKo Цитата(Dikoy @ Dec 6 2011, 22:00) Взять х... Dec 7 2011, 08:50 ViKo Dikoy, вы неправы!
Про рандомизацию чуть-чуть ... Dec 6 2011, 17:36 usav Итак выводы (на основе опыта)!
1) AVR_ADC10 р... Dec 8 2011, 19:28 Dikoy Ну, прецессию обычно компенсируют диагональной свя... Dec 9 2011, 04:46 ArtemKAD ЦитатаНа какой странице график? http://www.atmel.c... Dec 21 2011, 11:57
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|