Перейти к содержанию
    

плавает ноль при работе дифф АЦП в Меге 32

Вообщем проблема состоит в том что после сборки пробной партии изделий 50шт в 13и изделиях наблюдается некоректная работа дифференциального АЦП, при замыкании контактов (програмно или просто механически) значения не стабильны и постоянно скачут, иногда до +-15 дискрет (в рабочих изделиях стоит чётко). Не дифференциальное АЦП работает при этом абсолютно корректно. Если поменять контроллер у рабочего и не рабочего изделия , эта неисправность перекачёвывает в рабочее изделие , а не рабочеестановится рабочим. пробовали менять конроллеры и ставить новые , 2попытки увенчались успехом, а в 2х такаяже проблема.

 

есть идеи что это может быт, и как можно выйти из даной ситуации?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Где, чем, с каким флюсом паяли? После сборки платы мылись?

 

платы паялись в печке, элементы ставились на станке на водоотмывную пастоу, отмывались ультрозвуком в растворе специальном.

Те которые перепаивались в ручную , канальным припоем с канифолью, и флюсом не активным как назыв незнаю потом спиртом и зубной щёткой мылись. чесно говоря не думаю что дело в грязи.

Изменено пользователем Ruslan85

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почти очевидно, что проблема находится внутри контроллера, раз меняли нерабочий МК на рабочий и всё становилось о.к. Осталось решить, аппаратная проблема или программная. Озвучьте входные частоты, какая скорость чтения, как инициализировали ацп, приведите исходник, наконец.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почти очевидно, что проблема находится внутри контроллера, раз меняли нерабочий МК на рабочий и всё становилось о.к. Осталось решить, аппаратная проблема или программная. Озвучьте входные частоты, какая скорость чтения, как инициализировали ацп, приведите исходник, наконец.

 

 

вот один из вариантов инициализации

{

ADMUX =0;

ADMUX =(1<<REFS0)+(1<<REFS1)+(1<<MUX2)+(1<<MUX3)+(1<<MUX0);

ADCSRA =(1<<ADEN)+(1<<ADATE)+(1<<ADPS2)+(1<<ADPS1); //1/64

ADCSRA |=(1<<ADSC);

ADCSRA |=(1<<ADIE);//

flagi3 |=(1<<5);

}

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

 

в качесте арефа ставил внутренний 2,56. внешний 3,3. и от AVCC пробовал результат не меняеся.

 

я тоже считаю что дело в контроллерах както они испортились наверно. Может ктото стакивался с этим и знает от чего они могут испортится, при том что не дифф. ацп работает нормально.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А источник дифф. сигнала имеет общую землю с AЦП? Если нет (например, термопара), я бы попробовал привязать один из дифф. входов к половине опорного.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А источник дифф. сигнала имеет общую землю с AЦП? Если нет (например, термопара), я бы попробовал привязать один из дифф. входов к половине опорного.

ну например схема миллиамперметра , это шунт в 1 Ом привязанный к ногам ADC2 ADC3, и одна нога привязана через 512кОм к средней точке (5В => 300 Ом => средняя точка =>300 Ом=>GND). 512 кОм уменьшал до 0 т.е. до земли оставалось 300 Ом

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я тоже считаю что дело в контроллерах както они испортились наверно. Может кто-то стакивался с этим и знает от чего они могут испортится, при том что не дифф. ацп работает нормально.

Пока не факт, может быть и железо, может быть и программа, ведь вы переставляете МК вместе с записанной во флешку программой.

 

Скажите, где-нибудь в программе бит ADLAR настраивается? Кто запускает преобразование? Используете все 10 бит АЦП? В диффрежиме будут знаковые числа, между прочим, проверьте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пока не факт, может быть и железо, может быть и программа, ведь вы переставляете МК вместе с записанной во флешку программой.

 

Скажите, где-нибудь в программе бит ADLAR настраивается? Кто запускает преобразование? Используете все 10 бит АЦП? В диффрежиме будут знаковые числа, между прочим, проверьте.

 

ADLAR обнуляется при запуске ацп когда я обнуляю ADMUX, ну и соответственно в программе учитываю правое выравнивание, преобразование запускается при переходе от одного режима к другому (напрмер от вольтметра к амперметру напрмер, посредствам кнопок) далее АЦП работает во фриране, то, что числа знаковые учитывается.

 

на программу я не думаю потому что во все изделия была вшита одна и таже прошивка, единственное что может быть ,это то что в какомто месте в зависимости от железп или конкретного контроллера она ведёт себя не так как должна, но что это может быть??

 

я даже пробовал перед каждым измерением ноль калибровать, т.е. замыкал выводы внутри пропускал одно измерение , ловил второе , потом включал в режим измерений пропускал третье и ловил четвёртое, потом из 4го вычитал 2ое, идея в том чтобы ловить постоянно уплывающий ноль ,но даже это не помогло данные всёравно неадекватные.

 

ещё паралельно хочу задать вопрос:

 

ктонибудь в серии использовал дифференциальное ацп меги32 , ну или хотя бы 16, ну или вообще какойнибудь меги но дифф. ацп именно и именно в серии. потому что на первых макетах и у меня всё отлично было, а в серии 30% брака

 

Модератор (rezident). Нарушение п.2.1в,г Правил форума. Не нужно "кричать"! Сообщение набранное только заглавными буквами считается криком. Сообщение отредактировал.

Дополнительно. Пишите по-русски правильно, выделяя начало предложения заглавной буквой, и, расставляя там, где это требуется, знаки препинания.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы всё-ж-таки отвечайте на вопросы полностью, ответы из вас приходится клещами вытягивать. Всегда все биты АЦП используете?

 

Да, еще, частота выборок для нормального и дифференциального режимов у вас отличается в 30 раз, какие фильтры стоят на входе АЦП? Какая полоса?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Интересно, а автор топика в курсе вот этих особенностей работы АЦП меги в дифф режиме:

 

The gain stage is optimized for a bandwidth of 4 kHz at all gain settings. Higher frequencies may

be subjected to non-linear amplification. An external low-pass filter should be used if the input

signal contains higher frequency components than the gain stage bandwidth. Note that the ADC

clock frequency is independent of the gain stage bandwidth limitation. For example, the ADC

clock period may be 6 μs, allowing a channel to be sampled at 12 kSPS, regardless of the bandwidth

of this channel.

 

Special care should be taken when changing differential channels. Once a differential channel

has been selected, the gain stage may take as much as 125 μs to stabilize to the new value.

Thus conversions should not be started within the first 125 μs after selecting a new differential

channel. Alternatively, conversion results obtained within this period should be discarded.

 

The same settling time should be observed for the first differential conversion after changing

ADC reference (by changing the REFS1:0 bits in ADMUX).

 

Особенно второе...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

singlskv

Действительно, вариант...

Не может быть у таких отработанных процессоров 25% брака, тем более что дифф. режим АЦП не такая редкость, чтобы на него не обращать внимания.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы всё-ж-таки отвечайте на вопросы полностью, ответы из вас приходится клещами вытягивать. Всегда все биты АЦП используете?

 

Да, еще, частота выборок для нормального и дифференциального режимов у вас отличается в 30 раз, какие фильтры стоят на входе АЦП? Какая полоса?

 

 

"Да, еще, частота выборок для нормального и дифференциального режимов у вас отличается в 30 раз" чёт понять не могу о чём вы здесь говорите, поясните пожалуйста ?? с чего вы взяли что у меня частота выборок отличается? я вообще нормальным ацп пользовался в этом изделии только для того чтобы проверит работает ли оно правильно.

 

 

да использую все биты ацп, т.е. я учитываю что там знаковые переменные, вы об этом?

 

фильтров например на входах которые измеряют напряжение на шунте (миллиамперметр)никаких нет . проблема в том что значения плавают когда входы замкнуты внутри (никакого сигнала нет и полосы тоже ) , здесь даже если бы и были фильтры плавать не должно было бы.

 

Пробовали даже ядро гасить на время измерения, не помогает

 

Вообще изначально планировалось измерять полосу до 400Гц

 

для вольтметра и милливольтметра используется схема на 2х операционниках один ослабляет сигнал второй включен повторителем, выход второго подвязан к земле резистором в 2 кОм пробовал также ставить там кондёр на землю 0,1мкф не помогало

 

амперметар сделан на холовском датчике

 

singlskv да всё это я учитываю, к томуже 75% изделий отлично работают

 

 

 

Да и ещё есть ощущение что проходит синфазная помеха, через дифф. АЦП, может быт такое что на внутреннем усилке какоето рассоласование? и из за сего оно может быть .

Изменено пользователем Ruslan85

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

с чего вы взяли что у меня частота выборок отличается?

 

1) Неправильно прочитал, частота различается в два раза. "Differential conversions are synchronized to the internal clock CKADC2 equal to HALF the

ADC clock".

 

2) Для диффмоды ожидается 8/7 бит, что вы делаете с остальными? Цитата "If 1x or 10x gain is used, 8-bit resolution can be

expected. If 200x gain is used, 7-bit resolution can be expected"

 

3) Вот ещё одна мутная цитата. "When using Differential mode, along with Auto Trigging from a source other than the ADC Conversion Complete, each conversion will require 25 ADC clocks. This is because the ADC must be disabled and re-enabled after every conversion". Что здесь значит запрещено/переразрешено?

 

4) Какой у вас корпус? Для дипа не гарантируется диффмода.

 

5) Если это синфазная помеха, то непонятно, как она выбирает рабочий контроллер и нерабочий? Для диффрежима с Ку=10 входное напряжение должно быть где-то -0,2В..+0.2В, у вас как?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

проблема в том что значения плавают когда входы замкнуты внутри (никакого сигнала нет и полосы тоже ) , здесь даже если бы и были фильтры плавать не должно было бы.

Дык а что мешает измерить это смещение при замкнутых входах и вычесть при нормальном измерении?

Для этого собственно и есть такая возможность входного мультиплексора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...