|
|
  |
АЦП |
|
|
|
Sep 24 2015, 16:33
|
Частый гость
 
Группа: Участник
Сообщений: 85
Регистрация: 20-09-15
Пользователь №: 88 488

|
Цитата(_pv @ Sep 24 2015, 19:27)  . все плохо?
|
|
|
|
|
Sep 24 2015, 19:11
|
Частый гость
 
Группа: Участник
Сообщений: 85
Регистрация: 20-09-15
Пользователь №: 88 488

|
Цитата(controller_m30 @ Sep 24 2015, 22:04)  А какой контроллер? MSP430F4152
Сообщение отредактировал phenixs - Sep 24 2015, 19:11
|
|
|
|
|
Sep 24 2015, 20:20
|
Частый гость
 
Группа: Участник
Сообщений: 85
Регистрация: 20-09-15
Пользователь №: 88 488

|
Цитата(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
Мда... точно в д... пора )) Только последний бит плавает блин..., иногда два что есть очень и очень ужасно... Питание стабильно, надо думать...
Сообщение отредактировал phenixs - Sep 24 2015, 20:26
|
|
|
|
|
Sep 24 2015, 20:43
|
Местный
  
Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309

|
В общем, как я понял, заработало Чтоб победить плавающие последние биты, можно вычислять среднее арифметическое нескольких семплов подряд. Сложить, например, значения 4 семплов, а потом сдвинуть эту сумму вправо на 2 бита (т.е. поделить на 4) - получится среднее значение. Или 8 семплов сложить и сдвинуть на 3 бита вправо... и т.п.
|
|
|
|
|
Sep 24 2015, 21:36
|
Частый гость
 
Группа: Участник
Сообщений: 85
Регистрация: 20-09-15
Пользователь №: 88 488

|
Цитата(phenixs @ Sep 24 2015, 23:20)  сейчас попробую
Это надо же так обделаться)) Вместо INCH0 надо было INCH_0
Мда... точно в д... пора ))
Только последний бит плавает блин..., иногда два что есть очень и очень ужасно... Питание стабильно, надо думать... Непонятно даже от внутреннего датчика Т плавают последние 2 бита. U/2 четко стабильно 1FF без единого дрыга Мозг уже набекрень (( Цитата(controller_m30 @ Sep 24 2015, 23:43)  В общем, как я понял, заработало Чтоб победить плавающие последние биты, можно вычислять среднее арифметическое нескольких семплов подряд. Сложить, например, значения 4 семплов, а потом сдвинуть эту сумму вправо на 2 бита (т.е. поделить на 4) - получится среднее значение. Или 8 семплов сложить и сдвинуть на 3 бита вправо... и т.п. а это на практике применяют? в смысле это нормально? Цитата(controller_m30 @ Sep 24 2015, 23:43)  В общем, как я понял, заработало Чтоб победить плавающие последние биты, можно вычислять среднее арифметическое нескольких семплов подряд. Сложить, например, значения 4 семплов, а потом сдвинуть эту сумму вправо на 2 бита (т.е. поделить на 4) - получится среднее значение. Или 8 семплов сложить и сдвинуть на 3 бита вправо... и т.п. Можно наверное ещё по аналогии гистограммы брать значения наиболее повторяющиеся, но это как мысль
|
|
|
|
|
Sep 25 2015, 05:57
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 31-01-10
Из: Арзамас
Пользователь №: 55 175

|
При опорном напряжении 1,5В и 12 битном АЦП на 1 разряд приходится 1,5/4096=366мкВ. Неужели вы думаете, что уровень пульсаций питающего напряжения или наводок на цепи измерения (как внутренние, так и внешние) в вашем изделии меньше этого значения? Уменьшить болтанку в младшем разряде можно также отключая работу процессора и другой внутренней перифирии мк перед началом измерения АЦП. Но я обычно делаю программный фильтр по типу "скользящее среднее".
Сообщение отредактировал E.V.G. - Sep 25 2015, 06:00
|
|
|
|
|
Sep 25 2015, 07:55
|
Местный
  
Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309

|
Цитата(phenixs @ Sep 25 2015, 00:36)  а это на практике применяют? в смысле это нормально? Полагаю нормально. Я испытывал этот метод на датчике давления BMP085, у которого разрешение АЦП достаточное, чтоб определять высоту над уровнем моря с точностью до 5 см. Но младшие биты у него "пляшут" (кажется 4 или 5 бит из 19). После применения усреднения, высота стала отображаться стабильно, и таки с точностью до 5 см! (+/-)  Я перемещал датчик вверх-вниз в пределах метра - давление менялось на величину соответствующую высоте, и каких-то случайных значений при этом не проскакивало. Можно сделать вывод, что "пляшущие" биты тоже содержат полезную информацию о измеряемой величине (как-то привязаны к процессу измерения), а вовсе не являются генератором случайных чисел.
|
|
|
|
|
Sep 25 2015, 08:13
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(Obam @ Sep 25 2015, 09:51)  И название какое самодокументирующееся: ДЮЙМ0 или ДЮЙМ_0  InChannel, ВХКАН в русской транскрипции  А скомпилировалось, потому что одно обозначает конкретный бит, а другое - комбинацию, соответствующую каналу 0. Ни к тому, ни к другому у компилятора вопросов нет Чтобы не дергались показания, можно запускать не единичное преобразование, а цепочку. А при считывании из MEM регистров просуммировать. 2 разряда на 12 битах - нормально
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|