Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: АЦП
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
-AZ-
Приветствую уважаемых специалистов.
Подскажите что не так.....
Или уже пора в ду...... или не пойму, не зависимо что на ножке А0(хоть земля, хоть плюс) - получаю 0х02 85 (последний байт плавает)
Пол дня с ним бьюсь, хэлп, сос

ADC10CTL0 |= ADC10SHT0 | ADC10ON;
ADC10CTL1 |= INCH0;
ADC10AE0 |= BIT0;
ADC10CTL0 |= ENC;

while(1)
{
ADC10CTL0 |= ADC10SC;
while(ADC10CTL1 & ADC10BUSY);

adcValue = ADC10MEM;
uart_TX(adcValue);
}
}
_pv
.
-AZ-
Цитата(_pv @ Sep 24 2015, 19:27) *
.


все плохо?
controller_m30
А какой контроллер?
-AZ-
Цитата(controller_m30 @ Sep 24 2015, 22:04) *
А какой контроллер?

MSP430F4152
controller_m30
Если вместо входа INCH0, выбрать INCHA (температурный датчик), или INCHB ( (VCC–VSS)/2) - что-нить меняется в показаниях?
-AZ-
Цитата(controller_m30 @ Sep 24 2015, 22:35) *
Если вместо входа INCH0, выбрать INCHA (температурный датчик), или INCHB ( (VCC–VSS)/2) - что-нить меняется в показаниях?

сейчас попробую

Цитата(phenixs @ Sep 24 2015, 23:03) *
сейчас попробую


Это надо же так обделаться))
Вместо INCH0 надо было INCH_0

Мда... точно в д... пора ))

Цитата(phenixs @ Sep 24 2015, 23:19) *
сейчас попробую



Это надо же так обделаться))
Вместо INCH0 надо было INCH_0

Мда... точно в д... пора ))


Только последний бит плавает блин..., иногда два что есть очень и очень ужасно...
Питание стабильно, надо думать...
controller_m30
В общем, как я понял, заработало wink.gif

Чтоб победить плавающие последние биты, можно вычислять среднее арифметическое нескольких семплов подряд. Сложить, например, значения 4 семплов, а потом сдвинуть эту сумму вправо на 2 бита (т.е. поделить на 4) - получится среднее значение.
Или 8 семплов сложить и сдвинуть на 3 бита вправо... и т.п.
-AZ-
Цитата(phenixs @ Sep 24 2015, 23:20) *
сейчас попробую



Это надо же так обделаться))
Вместо INCH0 надо было INCH_0

Мда... точно в д... пора ))



Только последний бит плавает блин..., иногда два что есть очень и очень ужасно...
Питание стабильно, надо думать...


Непонятно даже от внутреннего датчика Т плавают последние 2 бита.
U/2 четко стабильно 1FF без единого дрыга
Мозг уже набекрень ((

Цитата(controller_m30 @ Sep 24 2015, 23:43) *
В общем, как я понял, заработало wink.gif

Чтоб победить плавающие последние биты, можно вычислять среднее арифметическое нескольких семплов подряд. Сложить, например, значения 4 семплов, а потом сдвинуть эту сумму вправо на 2 бита (т.е. поделить на 4) - получится среднее значение.
Или 8 семплов сложить и сдвинуть на 3 бита вправо... и т.п.


а это на практике применяют? в смысле это нормально?

Цитата(controller_m30 @ Sep 24 2015, 23:43) *
В общем, как я понял, заработало wink.gif

Чтоб победить плавающие последние биты, можно вычислять среднее арифметическое нескольких семплов подряд. Сложить, например, значения 4 семплов, а потом сдвинуть эту сумму вправо на 2 бита (т.е. поделить на 4) - получится среднее значение.
Или 8 семплов сложить и сдвинуть на 3 бита вправо... и т.п.


Можно наверное ещё по аналогии гистограммы брать значения наиболее повторяющиеся, но это как мысль
E.V.G.
При опорном напряжении 1,5В и 12 битном АЦП на 1 разряд приходится 1,5/4096=366мкВ. Неужели вы думаете, что уровень пульсаций питающего напряжения или наводок на цепи измерения (как внутренние, так и внешние) в вашем изделии меньше этого значения? Уменьшить болтанку в младшем разряде можно также отключая работу процессора и другой внутренней перифирии мк перед началом измерения АЦП. Но я обычно делаю программный фильтр по типу "скользящее среднее".
Obam
"Вместо INCH0 надо было INCH_0"

А как же у вас скомпилировалось то всё?

И название какое самодокументирующееся: ДЮЙМ0 или ДЮЙМ_0 sm.gif
controller_m30
Цитата(phenixs @ Sep 25 2015, 00:36) *
а это на практике применяют? в смысле это нормально?
Полагаю нормально.
Я испытывал этот метод на датчике давления BMP085, у которого разрешение АЦП достаточное, чтоб определять высоту над уровнем моря с точностью до 5 см. Но младшие биты у него "пляшут" (кажется 4 или 5 бит из 19).
После применения усреднения, высота стала отображаться стабильно, и таки с точностью до 5 см! (+/-) rolleyes.gif Я перемещал датчик вверх-вниз в пределах метра - давление менялось на величину соответствующую высоте, и каких-то случайных значений при этом не проскакивало.

Можно сделать вывод, что "пляшущие" биты тоже содержат полезную информацию о измеряемой величине (как-то привязаны к процессу измерения), а вовсе не являются генератором случайных чисел.
MrYuran
Цитата(Obam @ Sep 25 2015, 09:51) *
И название какое самодокументирующееся: ДЮЙМ0 или ДЮЙМ_0 sm.gif

InChannel, ВХКАН в русской транскрипции sm.gif

А скомпилировалось, потому что одно обозначает конкретный бит, а другое - комбинацию, соответствующую каналу 0.
Ни к тому, ни к другому у компилятора вопросов нет

Чтобы не дергались показания, можно запускать не единичное преобразование, а цепочку. А при считывании из MEM регистров просуммировать.
2 разряда на 12 битах - нормально
Obam
10-разрядов АЦП, десять sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.