|
Получить от АЦП полные 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 6 2011, 07:26
|

Профессионал
    
Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357

|
Цитата(Dikoy @ Dec 6 2011, 00:31)  Твой имат! Что в переводе означает "умрём за царя". У меня есть конкретная задача - получить 10 бит на 10-и битном АЦП, без дрожания. Какое нафиг получение уровня меньше 1LSB? Вы себе придумали повышения разрядности до 12 бит и прёте к этой эмпирической цели. А задача то намного проще. Чувствительность АЦП УЖЕ достаточна. Тогда нет ничего проще. Делаешь сплошную землю на внутренем слое, если плата двухслойная - подводишь ее толстыми проводниками, на каждый вывод питания проца в непосредственной близости от него вешаешь керамику 0.1 мкф (а лучше больше, сейчас есть керамика до 10 мкф), переходные отверстия к земле делаешь толстыми, не меньше 0.5 мм, опору заводишь через RC-фильтр причем конденсатор этого фильтра подключаешь к земле в непосредственной близости от проца, сигнал от датчика заводишь двумя проводами, причем земляной подключаешь рядом с аналоговой землей. Ну и, конечно, убеждаешься в том, что по земле мимо поцессора не протекают токи от мощных потребителей (светодиодов например). От них возвратные токи должны идти отдельным проводником сразу к источнику питания. Для стояния 10 разрядов этого более чем достаточно. Цитата(rx3apf @ Dec 6 2011, 00:37)  Но +/- младший разряд - будет всегда, как у любого цифрового измерительного прибора. Да почему всегда?! Это будет только если измеряемый сигнал будет находиться вблизи границы переключения. Цитата(rx3apf @ Dec 6 2011, 00:37)  Не нравится - увеличивайте разрядность. А при большей разрядности младший разряд не будет прыгать?
|
|
|
|
Сообщений в этой теме
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   rx3apf Цитата(Dikoy @ Dec 6 2011, 00:29) У меня ... Dec 5 2011, 20:37    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
|
|
|