Автор Тема: АЦП AVR Tiny  (Прочитано 4070 раз)

0 Пользователей и 1 Гость просматривают эту тему.

research

  • Гость
АЦП AVR Tiny
« : Сентября 18, 2012, 08:48:39 am »
Буквально, минувшей ночью столкнулся с проблемой - один и тот же МК (attiny13) со схожей прошивкой врет по АЦП.

Кости (стенд со светодиодиками (5мА на брата максимум) и потенциометром, процедура инициализации и т.п.) идентичные, разница в том, что светодиодики по разным алгоритмам загораются.
Менял МК, тыкал другой. Нелинейность работы остается, врет меньше, но врет .

Лыжи не едут, или я...?

На столько плох АЦП, что врет, в зависимости от загруженности ядра?
« Последнее редактирование: Сентября 18, 2012, 08:50:09 am от research »

Антон

  • Сообщений: 590
  • GTLab - forever!
    • ICQ клиент - 485140718
    • Просмотр профиля
    • E-mail
Re: АЦП AVR Tiny
« Ответ #1 : Сентября 18, 2012, 09:05:31 am »
Можетбыть дело в разводке или источник опорного напряжения Vref помехи пропускает (если опорное напряжение берется от источника питания - сконфигурировано так)...
« Последнее редактирование: Сентября 18, 2012, 09:40:45 am от guit »

Rst7

  • Сообщений: 1619
  • Мимо проходил...
    • Просмотр профиля
    • E-mail
Re: АЦП AVR Tiny
« Ответ #2 : Сентября 18, 2012, 09:42:11 am »
Цитировать
На столько плох АЦП, что врет, в зависимости от загруженности ядра?

Проблемы
а) с питанием. Не жалейте заварки и сахара керамики по питанию
б) с плохой фильтрацией опорника. Если в качестве опорного используется питание - см. п. а), если внутренний - включите его на выход и установите фильтрующий конденсатор на землю.
в) с высоким сопротивление источника сигнала по ВЧ - зашунтируйте вход АЦП конденсатором на 10...100нФ на землю.
г) с неправильной работой с АЦП в софте - неверная последовательность вычитывания регистров с младшим/старшим байтом значения. Проверьте.
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредствен

research

  • Гость
Re: АЦП AVR Tiny
« Ответ #3 : Сентября 18, 2012, 10:00:45 am »
Питание: 9В БП для примочек (0.5А, стабилизированный) подается на 78L05, на выходе которой 10мкФ. Блокировочная керамика у МК стоит 100 нан. Индикация - статическая, много раз в секунду не моргаем, по этому решил, что 10мик хватит.

С потенциометра напряжение поступает на МК, фильтруется так же керамикой (100 нан) у соответствующей ноги.

Т.е. минимальный прожиточный минимум по фильтрам - есть.

Опорное на tiny13 формируется внутри, точнее, берется питашка.

Регистры не путал, старые обкатанные кости, тем более, AVR.

Любопытно, что вранье АЦП начинается после середины питания (с 12 до 15 часов, если ориентироваться по движку потенциометра), а потом приходит в более-менее норму (снял показания АЦП в нескольких контрольных точках и сравнил на разных "мигалках" и разных экземплярах МК).

После ваших наводок, выходит, что прокол, таки в питании, т.к. все дороги ведут к нему.
Спасибо за советы, попробую довесить фильтрующие емкости.

Антон

  • Сообщений: 590
  • GTLab - forever!
    • ICQ клиент - 485140718
    • Просмотр профиля
    • E-mail
Re: АЦП AVR Tiny
« Ответ #4 : Сентября 18, 2012, 10:17:52 am »
Иногда и ёмкости не помогают, приходится ещё индуктивность небольшую ставить по питанию (которое на потенциометр и контроллер идёт).

"Опорное на tiny13 формируется внутри, точнее, берется питашка" - вот это я не понял. Формируется INTERNAL 1.1V REFERENCE на АЦП или же подключено прям к общему питанию Vcc ?????

Возможно земля потециометра неудачно подключена или провода длинные.... вобщем как правило, если заявлено +-2 LSB, то это выполняется.

Rst7

  • Сообщений: 1619
  • Мимо проходил...
    • Просмотр профиля
    • E-mail
Re: АЦП AVR Tiny
« Ответ #5 : Сентября 18, 2012, 10:29:17 am »
Цитировать
Любопытно, что вранье АЦП начинается после середины питания (с 12 до 15 часов, если ориентироваться по движку потенциометра), а потом приходит в более-менее норму

Все симптомы слишком высокого сопротивления источника сигнала. Проверили бы Вы конденсатор на входе АЦП.
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредствен

research

  • Гость
Re: АЦП AVR Tiny
« Ответ #6 : Сентября 18, 2012, 11:12:08 am »
Стенд один и тот же, прошивка на 50% совпадает, а на АЦП - враки в зависимости от прошивки. Смена экземпляра МК немного меняет степень вранья, тоже странно.
Попробую кроме усиления емкостей 78l05 заменить чем-то более современным. Тем более, 78L33 бракованные уже попадались, значит и 05 могут.

Rst7

  • Сообщений: 1619
  • Мимо проходил...
    • Просмотр профиля
    • E-mail
Re: АЦП AVR Tiny
« Ответ #7 : Сентября 18, 2012, 11:17:09 am »
Цитировать
Стенд один и тот же, прошивка на 50% совпадает, а на АЦП - враки в зависимости от прошивки. Смена экземпляра МК немного меняет степень вранья, тоже странно.

Немного разные параметры устройства выборки-хранения на входе АЦП. Вот и меняется. Проверяйте аналоговую часть. Например, могли случайно вместо 100нФ 100пФ запаять в фильтр АЦП.
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредствен

research

  • Гость
Re: АЦП AVR Tiny
« Ответ #8 : Сентября 18, 2012, 11:27:36 am »
Цитировать
Немного разные параметры устройства выборки-хранения на входе АЦП. Вот и меняется. Проверяйте аналоговую часть. Например, могли случайно вместо 100нФ 100пФ запаять в фильтр АЦП.

Путаница конденсаторов почти исключена, т.к. 100нан  из одной бочки, все SMD. Другие номиналы SMD (не считая электролитов) я просто не покупал.


Цитировать
Иногда и ёмкости не помогают, приходится ещё индуктивность небольшую ставить по питанию (которое на потенциометр и контроллер идёт).

"Опорное на tiny13 формируется внутри, точнее, берется питашка" - вот это я не понял. Формируется INTERNAL 1.1V REFERENCE на АЦП или же подключено прям к общему питанию Vcc ?????

Возможно земля потециометра неудачно подключена или провода длинные.... вобщем как правило, если заявлено +-2 LSB, то это выполняется.

Я имел дело с этими МК, в 10 бит его АЦП веры не было и 15 минут, особенно в сравнении с теми же dsPIC (МК занимаюсь для себя, познания - скромные, но кое что делалось). Для решения задачи хватило бы и 6 бит, всего-то 4бит энкодер заменяю потенциометром.

Провода все короткие, кондер фильтрующий размера 0805 припаян прямо ко входу АЦП (на 3 и 4 ноги МК, т.е. длина проводников - 0).

Опорное берется 5 вольт. Мотивация, что входной сигнал от 0 до +5 , да и 1.1В встроенные вряд ли достаточно фильтрованы. Ног свободных для опорного все равно нет, да и при решении предыдущих задач все было ОК.

Обидно, что 2+2 не складывается.
« Последнее редактирование: Сентября 18, 2012, 11:38:12 am от research »

KMG

  • Сообщений: 3776
    • ICQ клиент - 412221711
    • AOL клиент - Mike
    • Просмотр профиля
    • E-mail
Re: АЦП AVR Tiny
« Ответ #9 : Сентября 18, 2012, 11:30:18 am »
Разница только в прошивке?

Rst7

  • Сообщений: 1619
  • Мимо проходил...
    • Просмотр профиля
    • E-mail
Re: АЦП AVR Tiny
« Ответ #10 : Сентября 18, 2012, 11:35:16 am »
Цитировать
Я имел дело с этими МК, в 10 бит его АЦП веры не было и 15 минут, особенно в сравнении с теми же dsPIC (МК занимаюсь для себя, познания - скромные, но кое что делалось).

Более десяти лет назад я еще на AT90S4433 (то, что потом стало ATMega8) делал уровнемер с весьма высокими точностями (ДД первичного преобразователя там на уровне 60дБ был).

Потом серийно (десятками тысяч в месяц) производили датчики дыма. Был ATTiny26, потом ATTiny25 - без вопросов.

Так вот, с АЦП там все в полном порядке. Готовить надо уметь и следить за огрехами.

Цитировать
кондер фильтрующий размера 0805 припаян прямо ко входу АЦП (на 3 и 4 ноги МК, т.е. длина проводников - 0).

Проверьте, из той ли ленты взяли, правильно ли лента подписана. И замените его в любом случае, бывает они лопаются при пайке.
« Последнее редактирование: Сентября 18, 2012, 11:35:58 am от Rst7 »
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредствен

KMG

  • Сообщений: 3776
    • ICQ клиент - 412221711
    • AOL клиент - Mike
    • Просмотр профиля
    • E-mail
Re: АЦП AVR Tiny
« Ответ #11 : Сентября 18, 2012, 11:43:48 am »
Цитировать
The ADC is optimized for analog signals with an output impedance of approximately 10 k[ch937] or
less
. If such a source is used, the sampling time will be negligible. If a source with higher impedance
is used, the sampling time will depend on how long time the source needs to charge the
S/H capacitor, with can vary widely. The user is recommended to only use low impedant sources
with slowly varying signals, since this minimizes the required charge transfer to the S/H
capacitor.

research

  • Гость
Re: АЦП AVR Tiny
« Ответ #12 : Сентября 18, 2012, 11:52:25 am »
@ Rst7 - RST7 может всё ;) Думаю, что в этом никто уже лет 20 не сомневается.

@ KMG - отличия только в прошивке. Причем, похоже,врет прошивка, которая считанный с АЦП байт показывает на светодиодах полубайтами по очереди.
Я по ней показания АЦП и снимал. На всей оси ок, кроме участка 12-15 часов.

 Потенциометр 10К, должно быть ОК. Проверял, чтобы был линейный, номинал измерял. Обычное решение для МК.


 

Valentinych

  • Сообщений: 1012
  • Homo Pragmaticus
    • Просмотр профиля
    • E-mail
Re: АЦП AVR Tiny
« Ответ #13 : Сентября 18, 2012, 06:08:24 pm »
Цитировать
Я по ней показания АЦП и снимал. На всей оси ок, кроме участка 12-15 часов.

 Потенциометр 10К, должно быть ОК. Проверял, чтобы был линейный, номинал измерял. Обычное решение для МК.
Возможно провода к поту длинные - вот и прет наводка в среднем положении движка. При повороте в любую сторону (больше/меньше) импеданс цепи уменьшается, и наводка становится меньше.
Это - как один из вариантов возникновения проблемы.
Кстати, Vref у атмеловских камней, насколько помню, не 1,1 вольта, а 2,56.

Вопрос на засыпку: кто-нить пробовал "разогнать" тинькин/мегин ADC выше рекомендованных 200 кГц? Какая у него максимальная частота тактирования?
Хочу все знать, но... это не реально.

research

  • Гость
Re: АЦП AVR Tiny
« Ответ #14 : Сентября 18, 2012, 08:49:13 pm »
Цитировать
Вопрос на засыпку: кто-нить пробовал "разогнать" тинькин/мегин ADC выше рекомендованных 200 кГц? Какая у него максимальная частота тактирования?
 

Вроде бы, до 500 разгоняли, но ерунда получалась, точность падала.

Я делал "свозняк" - брал входящий байт АЦП и тут же отправлял его в PWM. Результат достаточно ужастный, т.к. вход надо тщательно фильтровать - спиливать верха, либо выход фильтровать до глухоты. Заодно с тактированием АЦП побаловался.

Если интересно, поищу кости под тини 13 или 25 (восьминожка).
« Последнее редактирование: Сентября 18, 2012, 09:37:58 pm от research »

research

  • Гость
Re: АЦП AVR Tiny
« Ответ #15 : Сентября 18, 2012, 09:33:30 pm »
Написал портянку, что обошел косяк трусами через голову, да нашел в чем дело. Напортачил в софте.

Я читал байт с АЦП, кидал младший полубайт на светодиоды. Потом пауза секунду или больше.
Затем, заново читал АЦП и кидал уже старший полубайт (идиот, мой бы запомнить значение предыдущего скана в регистре и не читать повторно).

Как только исключил второй скан, все стало на круги своя.
Осталось непонятным, почему глючило только в диапазоне движка от 12 до 14 часов, ведь на вход АЦП шло постоянное напряжение, еще и с фильтрацией от наводок.

Объяснить берусь только разной "картинкой", которую отображали светодиоды, изменился ток через выходы МК (на 1 разряд, т.е. 5мА в моем случае) , сразу изменилось показание АЦП. Уплыло аж на 4 младших бита. А может дело во входном токе, но тогда не ясно, почему картинка потом стабилизируется, после 14 часов.

Спасибо за советы, постараюсь в следующий раз не блуждать в 3х соснах.