Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: плавает ноль при работе дифф АЦП в Меге 32
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Ruslan85
Вообщем проблема состоит в том что после сборки пробной партии изделий 50шт в 13и изделиях наблюдается некоректная работа дифференциального АЦП, при замыкании контактов (програмно или просто механически) значения не стабильны и постоянно скачут, иногда до +-15 дискрет (в рабочих изделиях стоит чётко). Не дифференциальное АЦП работает при этом абсолютно корректно. Если поменять контроллер у рабочего и не рабочего изделия , эта неисправность перекачёвывает в рабочее изделие , а не рабочеестановится рабочим. пробовали менять конроллеры и ставить новые , 2попытки увенчались успехом, а в 2х такаяже проблема.

есть идеи что это может быт, и как можно выйти из даной ситуации?
rezident
Где, чем, с каким флюсом паяли? После сборки платы мылись?
Ruslan85
Цитата(rezident @ Nov 16 2009, 14:18) *
Где, чем, с каким флюсом паяли? После сборки платы мылись?


платы паялись в печке, элементы ставились на станке на водоотмывную пастоу, отмывались ультрозвуком в растворе специальном.
Те которые перепаивались в ручную , канальным припоем с канифолью, и флюсом не активным как назыв незнаю потом спиртом и зубной щёткой мылись. чесно говоря не думаю что дело в грязи.
=GM=
Почти очевидно, что проблема находится внутри контроллера, раз меняли нерабочий МК на рабочий и всё становилось о.к. Осталось решить, аппаратная проблема или программная. Озвучьте входные частоты, какая скорость чтения, как инициализировали ацп, приведите исходник, наконец.
Ruslan85
Цитата(=GM= @ Nov 16 2009, 16:34) *
Почти очевидно, что проблема находится внутри контроллера, раз меняли нерабочий МК на рабочий и всё становилось о.к. Осталось решить, аппаратная проблема или программная. Озвучьте входные частоты, какая скорость чтения, как инициализировали ацп, приведите исходник, наконец.



вот один из вариантов инициализации
{
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 пробовал результат не меняеся.

я тоже считаю что дело в контроллерах както они испортились наверно. Может ктото стакивался с этим и знает от чего они могут испортится, при том что не дифф. ацп работает нормально.
V_G
А источник дифф. сигнала имеет общую землю с AЦП? Если нет (например, термопара), я бы попробовал привязать один из дифф. входов к половине опорного.
Ruslan85
Цитата(V_G @ Nov 16 2009, 17:30) *
А источник дифф. сигнала имеет общую землю с AЦП? Если нет (например, термопара), я бы попробовал привязать один из дифф. входов к половине опорного.

ну например схема миллиамперметра , это шунт в 1 Ом привязанный к ногам ADC2 ADC3, и одна нога привязана через 512кОм к средней точке (5В => 300 Ом => средняя точка =>300 Ом=>GND). 512 кОм уменьшал до 0 т.е. до земли оставалось 300 Ом
=GM=
Цитата(Ruslan85 @ Nov 16 2009, 14:25) *
я тоже считаю что дело в контроллерах както они испортились наверно. Может кто-то стакивался с этим и знает от чего они могут испортится, при том что не дифф. ацп работает нормально.

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

Скажите, где-нибудь в программе бит ADLAR настраивается? Кто запускает преобразование? Используете все 10 бит АЦП? В диффрежиме будут знаковые числа, между прочим, проверьте.
Ruslan85
Цитата(=GM= @ Nov 16 2009, 20:17) *
Пока не факт, может быть и железо, может быть и программа, ведь вы переставляете МК вместе с записанной во флешку программой.

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


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

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

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

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

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

Модератор (rezident). Нарушение п.2.1в,г Правил форума. Не нужно "кричать"! Сообщение набранное только заглавными буквами считается криком. Сообщение отредактировал.
Дополнительно. Пишите по-русски правильно, выделяя начало предложения заглавной буквой, и, расставляя там, где это требуется, знаки препинания.
=GM=
Вы всё-ж-таки отвечайте на вопросы полностью, ответы из вас приходится клещами вытягивать. Всегда все биты АЦП используете?

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

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).


Особенно второе...
V_G
singlskv
Действительно, вариант...
Не может быть у таких отработанных процессоров 25% брака, тем более что дифф. режим АЦП не такая редкость, чтобы на него не обращать внимания.
Ruslan85
Цитата(=GM= @ Nov 17 2009, 01:18) *
Вы всё-ж-таки отвечайте на вопросы полностью, ответы из вас приходится клещами вытягивать. Всегда все биты АЦП используете?

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



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


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

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

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

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

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

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

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



Да и ещё есть ощущение что проходит синфазная помеха, через дифф. АЦП, может быт такое что на внутреннем усилке какоето рассоласование? и из за сего оно может быть .
=GM=
Цитата(Ruslan85 @ Nov 17 2009, 09:57) *
с чего вы взяли что у меня частота выборок отличается?


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В, у вас как?
Dog Pawlowa
Цитата(Ruslan85 @ Nov 17 2009, 12:57) *
проблема в том что значения плавают когда входы замкнуты внутри (никакого сигнала нет и полосы тоже ) , здесь даже если бы и были фильтры плавать не должно было бы.

Дык а что мешает измерить это смещение при замкнутых входах и вычесть при нормальном измерении?
Для этого собственно и есть такая возможность входного мультиплексора.
VladimirYU
Цитата(Dog Pawlowa @ Nov 18 2009, 12:21) *
Дык а что мешает измерить это смещение при замкнутых входах и вычесть при нормальном измерении?
Для этого собственно и есть такая возможность входного мультиплексора.

Только это придется делать при каждом измерении, т.к. если я правильно понял смещение плавает.
Ruslan85
Цитата(VladimirYU @ Nov 18 2009, 12:24) *
Только это придется делать при каждом измерении, т.к. если я правильно понял смещение плавает.



ребят я выше писал что я так уже делал , не даёт ничё.

основной вопрос у меня сейчас каким образом я мог подпортить 25% процессров?
muravei
Цитата(Ruslan85 @ Nov 16 2009, 13:45) *
Не дифференциальное АЦП работает при этом абсолютно корректно.

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

А нельзя сделать два измерения по разным входам и "тупо" вычесть ? smile.gif
Ruslan85
Цитата(muravei @ Nov 25 2009, 16:39) *
А нельзя сделать два измерения по разным входам и "тупо" вычесть ? smile.gif


ну тогда теряется смысл использования диф. ацп, измерение не будет одновременным и не будет гасится синфазная помеха, это раз , а два я испуользую одни и те же выводы в разных режимах ,в какихто случаях с усилением в каких то без усиления. Поэтому так к сожалению проблему не решить. можно конечно инструментальные усилители поставить, и резисторы сопротивлением которых можно управлять при помощи контроллера, но к сожалению это уже другии деньги((( а изделие в серию идти должно
IGK
Интересно, тема живая еще?

Я использую диф.включение, никогда и никаких багов в сотнях камней не было. Использую меги 16, 32 и сейчас потихоньку переползаю на 32А.

Но я делаю по 4 измерения (для простоты, время позволяет) на каждый канал. Первые три на... в общем, выкидываю. Четвертое пользую. Использую внутренний ОУ с усилением х1 х10 х200. Делал калибровку, но потом выбросил за ненадобностью. Опора внутренняя. Кварц 11,0592 делитель на 64.

Сигнал на диф.входе привязан к Vcc/2. каналы коммутирую через 4053. Вот с этим была заморочка, так как прерывание происходит позже переключения канала. Но справился...
Да, фильтров на входе нет - прямо с ОУ через коммутатор на АЦП. Но потом идут ФНЧ и ПФ на каждый канал (ЦФ).

Сигнал грязный, но если замкнуть входы, то пляшет только 10-й бит. Я его и не трогал, все равно ФНЧ на единицы Гц стоит.

Пробовал оверсемплинг, но больше эффекта дало изменение коэффициетов фильтров и их последовательность. Но это внутренние проблемы.

Ну и еще - почитал доку на мега32А. Лучше бы не читал... Там есть такая табл.27-5, где наконец-то нормированы Absolute Accuracy и прочее. В общем, АЦП для зрительного контроля батареек, имхо...
Ruslan85
IGK, спасибо за ответ, теперь есть надежда, что и у нас заработает.

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

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

PS: проблемы возникали с бледно-желтовато серыми
muravei
Так я таки не понял: Вы пользуете 7-8 р-дов в дифф. режиме или все?
IGK
Цитата(Ruslan85 @ Dec 3 2009, 22:26) *
ну и вторая версия это то что может процы левые, хотя наверно это бредовая версия, вообще у двух купленных в разных местах процах надписи на них резко отличаются по цвету , на одном ярко белая , а на другом бледно-желтовато серая какаято

PS: проблемы возникали с бледно-желтовато серыми


Мне тоже такие попадались, но я не помню каких-либо заморочек с ними. Но бОльшая часть камней с белой надписью. Точнее, я бы этот цвет определил как коричневатый. Новые камни после промывки вообще маркировку теряют... Но работают.

Много раз сдувал феном процы, некоторые по нескольку раз. Фен выставляю абы как... Когда 300 градусов, когда 260. Вроде все в порядке было. Но в печке не паял - может, Вы и поджарили их. Феном все же быстрее будет, чем в печке. В смысле, нагрев короче по времени.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.