Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Странное поведение ATTINY44A
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
aleksey_g
Коллега жалуется на сабж.
Делает устройство с батарейным питанием, посему очень критично потребление.
Пока отлаживал саму программу, потребление не измерял. Когда все отладил, померял.
Оказалось в режиме Power down 200мка.
Для CR2032 Это не есть хорошо.
Никакие пляски с бубном не приводили к меньшему. Решил, что бракованный чип.
Купил новый. Только прошил, замерил- 2мка. Это уже неплохо.
Процесс отладки, вылизывания алгоритма... Короче, несколько десятков раз перепрошил.
Опять проверил потребление. Те же 200мка.
Поднял старую прошивку, с которой было 2. Прошил. - 200!
Фьюзы не менялись! Проверено.
Проверялось даже на голом контроллере, с полностью отключенным всем, что подключалось.
А подключался только жки с контроллером, у которого все ноги только на вход. (TIC 5234)
Остается только грешить на увеличение потребления после многократных перепрошивок.
Шилось АВРЕАЛ_ом.
Может ли такое быть?
prottoss
Цитата(aleksey_g @ Apr 8 2011, 18:28) *
Коллега жалуется на сабж.
Логично, что нужно приобрести еще один чип в магазине и вылизанную прошивку залить в девственно чистый кристалл rolleyes.gif Далее делать выводы...
zhevak
Есть болтающиеся в воздухе выводы, сконфигурированные на вход? (Сквозные токи входных цепей от наводок.)
Разверните неиспользуемые выводы на выход и выведите на них ноль.
aleksey_g
Цитата(zhevak @ Apr 8 2011, 14:17) *
Есть болтающиеся в воздухе выводы, сконфигурированные на вход? (Сквозные токи входных цепей от наводок.)
Разверните неиспользуемые выводы на выход и выведите на них ноль.


На это обращалось внимание в первую очередь. Все сделано именно так.

Цитата(prottoss @ Apr 8 2011, 14:06) *
Логично, что нужно приобрести еще один чип в магазине

Есть еще оин чип. Это будет уже третий.
Скорее всего так оно и будет. Интересен сам принцип. Неужель процесс перепрограммирования так быстро приводит к деградации кристала с точки зрения потребления?
Производитель ведь гарантирует очень болшое количество перепрограммирований и ничего о такой быстрой деградации не говорит!
Как тогда работать кристалам с бутлоадером?
Просто интересно, никто еще стаким явлением не сталкивался?

prottoss
Цитата(aleksey_g @ Apr 8 2011, 19:37) *
Неужель...
Вы сначала попробуйте, проверьте, потом можно уже грешить на производителя.
ivainc1789
Цитата(aleksey_g @ Apr 8 2011, 16:37) *
Скорее всего так оно и будет. Интересен сам принцип. Неужель процесс перепрограммирования так быстро приводит к деградации кристала с точки зрения потребления?
Производитель ведь гарантирует очень болшое количество перепрограммирований и ничего о такой быстрой деградации не говорит!
Как тогда работать кристалам с бутлоадером?
Просто интересно, никто еще стаким явлением не сталкивался?

Делал несколько проектов с батарейным питанием. Обратил внимание на следующее:
1. От чистоты платы зависит очень много. ИМХО, наиболее удачный вариант - водорастворимый флюс с последующей промывкой платыводой и сушкой (на батарее, например).
2. Если в схеме используются ключи, якобы отключающие нагрузки в микропотребл режиме, то токи утечки в этих ключах сильно зависят от примененных транзисторов ключей. Мне попадались полевики (что-то типа IRMLxxxx) с токами утечки до 30 мкА. Удавалось победить заменой/подбором.
niXto
Цитата(aleksey_g @ Apr 8 2011, 14:28) *
Остается только грешить на увеличение потребления после многократных перепрошивок.
Шилось АВРЕАЛ_ом.
Может ли такое быть?


По тини44 сказать ничего не могу, но на моей древней макетке с мега88 (ей года 3 точно, перешивается порой много десятков раз в день, суммарно тысяч 10 минимум) - токи потребления только чипа 1 мкА, с вачдогом 7 мкА, с БОДом 25 мкА. Т.е. все по документации

В компараторе бит disable стоит? АЦП отключен?
aleksey_g
Цитата(niXto @ Apr 8 2011, 18:52) *
В компараторе бит disable стоит? АЦП отключен?

Стоит. Отключен.
Чип распаян на макетку со штыряи. Вымыт спиртом.
Эта макетка своими штырями вставляется в (не знаю как называется) приблизительно 15Х20см. другую макетку.
Такая пластмассовая с огромным количеством дырочек, в которые вставляются перемычки, микросхемы и все такое.
В этой пластмассовой макетке утечек по шинам питания нету. Проверено.
Для прверки все из макетки вынималось. Оставался только чип и штыри для программатора.
Сейчас уже сомневаюсь на счет резистора на ресете. Но по-моему 2мка было с этим резистором.
Этот момент уточно в понедельник, поскольку колега уже ушел домой.
Кстати, чип работает от внутреннего генератора. Так что кварца с кондюками тоже нету.
Спрашивал, может электролит по питанию течет. Так говорит, что на макетку с чипом кондюков не ставил. Только чип.
А потребление проверял на голой пластмассовой.
Мистика какая-то. help.gif
Если рискнет с третьим чипом, будем знать статистику. Но, думаю, он его побережет для единственной прошивки.
rx3apf
Цитата(aleksey_g @ Apr 8 2011, 22:33) *
Мистика какая-то. help.gif

Действительно мистика. Да, можно было бы предположить деградацию при прошивке, вот только что-то это слишком быстро происходит. И опыт с другими чипами такого не подтверждает (t44 я не использовал). Надо отделить лишнее - все порты на вывод с "0", компаратор отключить, powerdown разрешить, после инициализации портов уйти в sleep с закрытыми прерываниями. И посмотреть, сколько все это будет жрать (само собой, без WDT и BOR). Я вот в чудеса не верю...
nk@
Цитата(rx3apf @ Apr 8 2011, 21:40) *
Я вот в чудеса не верю...

+1 Чудес не бывает. Может индеец Зоркий Глаз не замечает отсутствия 4-й стены? Внимательно посмотрите на свой проект. Када-то ток у Вас течет, и это, скорее всего, не ядро AVR. Советую пойти таким путем:
1. Отключите все внешние цепи. Если это помогло, то найдите порт через которой "утекает" ток. Если нет утечки, то
2. Проверьте PULL-UP на портах включен или нет?
Ну, не бывает чудес, чесслово sm.gif
SysRq
Фьюз включения DebugWire в каком состоянии? Чему там ещё столько потреблять...
e-serg
Цитата(prottoss @ Apr 8 2011, 21:54) *
Вы сначала попробуйте, проверьте, потом можно уже грешить на производителя.

с atmega88 была нехорошая история, 10шт из одной партии, рабочих только парочка.
программатор самодельный avr910 на tiny2313.
как проявлялось, у нескольких микросхем не читалось ID, часть не хотела программироваться.
и были несколько, ID нормально, программирование, верификацию проходит все в порядке. А устройство не работает, нет признаков жизни.
Проверял как рабочей программой, так на короткой тестовой "просто машем ногами".
Сами платы в порядке.

PS. грешить на Атмел?. микросхемы были россыпью в коробочке. может брак, а может к примеру статикой побили.
defunct
Цитата(e-serg @ Apr 10 2011, 05:28) *
PS. грешить на Атмел?.

нет.
грешить на это
Цитата
программатор самодельный avr910 на tiny2313.

В свое время насмотрелся на разные чудеса, в виде стертых ID, фузов расставленных случайным образом и тому подобное.
Как стал пользоваться исключительно фирменными STK500, JTAG ICEII и AVR Dragon'ом - ни одной проблемы, ни с одним чипом.

Автору: вылизывать программы лучше с помощью AVR Dragon'а хотя бы, debugWire рулит. По проблеме - совсем банальную ситуацию рассматривали - может у вас мерялка не так меряет, переключили шкалу на два порядка вниз да забыли случайно, дурное дело нехитрое особенно если используется стрелочный амперметр. LPT программатор - тоже еще одно зло, что-то пожечь шанс очень высок. В процессе программирования страницы флеш достаточно испортить один байт, чтобы ID чипа перестало читаться навсегда.
e-serg
Цитата(defunct @ Apr 10 2011, 12:07) *
нет.
грешить на это
===

его тогда проверил всеми возможными способами, в том числе тиньки в AVR910 менял.
Сейчас у меня свой АВР Драгон, а тогда, в той фирме в программаторе отказали, "слишком дорого".
Вот и принес домашнюю самоделку.
Она, до сих пор у меня рабочая, и иногда тоже помогает.
nk@
Уж что-что, а программатор тут точно не виноват.
Платы от флюса отмыли? У меня была давно проблема, еще в советские времена - заказали мы с нашего завода на другом партию плат с метализацией. О защитном покрытии (зеленке) тогда мы слышали, но ни разу не видели sm.gif Так вот, в этих платах местами соседние дорожки "звонились", как-будто между ними резистор впаян.
Мы их и мыли, и процарапывали - нифига не помогло. Такой себе недиэлектрический диэлектрик sm.gif Пришлось выбросить.
И еще одна история, правда не моя лично. У нас работал товарисч, разрабатывал какие-то усилители на полевиках. Так вот, книфоль оказалась проводником, пока не отмыли тщательно оцетоном, не заработало. Я к тому, что если вы за микроамперы боретесь, то тут все мелочи надо учесть.
defunct
Цитата(nk@ @ Apr 10 2011, 08:45) *
Уж что-что, а программатор тут точно не виноват.

Я бы не был так в этом уверен, особенно если программатор LPTшный и поблизости есть источник помех, например, UPS переключающийся на Boost. Мы также ничего не знаем об адаптере программатора - может его вовсе нет и двухметровый шнур от компа подключаяется непосредственно к МК, тогда испортить МК дело пары-тройки перепрошивок.
Пока причина не найдена - ни один вариант нельзя отбрасывать, каким бы нереальным он не казался.

Выжимка первого поста:
1. Обнаружена утечка.
2. Смена МК, разовая прошивка - норма.
3. Подгонка программы (аппартная часть без изменений) - утечка.
4. Возврат на исходную программу из п.2 - утечка.
nk@
Цитата(defunct @ Apr 10 2011, 09:31) *
Пока причина не найдена - ни один вариант нельзя отбрасывать, каким бы нереальным он не казался.

Т.е. Вы предполагаете, имеет место деградация чипов из-за количества перепрограммирования некачественным программатором? Но как это возможно? В чем физика процесса? Все-же, кмк, проблема в чем-то другом.
ReAl
Подпробой защитных диодов на входах МК и увеличение их утечки?
nk@
Меня зацепило и я провел маленький эксперимент. Из стола извлечена плата, над которой производятся отладочные издевательства.
Плата с mega16, импульсным стабилизатором 12V->5V, LCD1602, всякая мелочевка... Через TWI подключена QTouch клавиатурка. Все запитано 5V.
Контроллер получает питание через ферритовый фильтрик, который отпаян, и вместо него включен тестер. Т.о. мы меряем потребления только контроллера.
Чип на этой плате перешивался, думаю не меньше 1000 раз - тк на этой плате отлаживался достаточно большой проект, да еще и не один sm.gif Ладно, пусть будет 500.
Программатор - честный ATAVRISPmkII.
Взял одинн из старых проектов, достаточно увесистый (использовано 82% flash). После инициализации всего железа, в цикле ожидания нажатия клавиши, (при нажатии генерится INT0) вставлен такой код
CODE
DDRA = 0; All ports - input
DDRB = 0;
DDRC = 0;
DDRD = 0;
SFIOR |= 1<<PUD; //disable pull-ups

set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
sei();
sleep_cpu();
sleep_disable();


Теперь результаты:
При переходе в слип - ток потребления оказался порядка 30mкA! WTF? Оказалось, ток кушал программатор, при его отключении, ток сразу стал 0,9-1mkA sm.gif
Может у топикстартера такая-же проблема?

Достал из коробки старенький ByteBlasterII - самопальный, LPT. Сделал 50 перепрошивок с помощью avrdude, с полным стиранием. Результат не удивил 0,9-1mkA.

Вывод - деградация от количества перепрограммирований не обнаружена.

PS: Еще нюанс замечен. При поднесении руки к плате ток начинает расти до 1.2 - 1.3 мкА - очевидно, сказываются наводки на "висящие в воздухе" ноги.
defunct
Цитата(nk@ @ Apr 10 2011, 12:06) *
Вывод - деградация от количества перепрограммирований не обнаружена.

Вывод немного другой. Вот такой: ваш "environment" был свободен от помех и с лично вашим программатором вроде бы проблем нет.
Если уж идти до конца - уберите из цепи ByteBlaster адаптер, воткните пять проводков непосредственно от LPT кабеля в МК. Обматайте LPT кабелем UPS. Запустите прошивку чипа и несколько раз отключите и включите UPS в процессе перепрошивки. Вот тогда посмотрим. sm.gif
nk@
Цитата(defunct @ Apr 11 2011, 01:12) *
Вывод немного другой. Вот такой: ваш "environment" был свободен от помех и с лично вашим программатором вроде бы проблем нет.

Не буду этого отрицать sm.gif Плохо, что топикстартер молчит, как рыба об лёд. Гадаем на кофейной (чайной) гуще lol.gif
И все-же никто не отписался о подобной проблеме, значит она не носит массовый характер. Интересно, где-же все-таки собака порылась?
aleksey_g
Цитата(nk@ @ Apr 11 2011, 07:22) *
Плохо, что топикстартер молчит, как рыба об лёд.

Да, действительно, совсем непонятная ситуация. Мне не очень удобно выстуапать от второго лица.
Дабы не было "испорченного телефона", предложил коллеге зарегистрироваться и вести диалог от первого лица.
Ждем_с.
vsalex
Ребята привет, это я собственно виновник торжества. По возникшим вопросам: программатор на LPT типа ByteBlaster, проблем за ним раньше не замечалось, измерительные приборы брались разные, предел измерений правильный. Питание 3v от батарейки cr2032. Зашит только один фуз для работы от внешнего кварца 8 МГц. Чип голый - кварц да 10к на resetе. Потребление в power down 120мка. Порты пробовал на вход без подтяжки, на вход с подтяжкой, на выход с 0, сути кардинально не меняет. Тестовая программа:

CODE

#include <stdio.h>
#include <inavr.h>
#include <iotiny44.h>
#include "delay.h"


int main( void )
{



PORTA=0x00;
DDRA=0xFF;

PORTB=0x00;
DDRB=0x0F;

TCCR0A=0x00;
TCCR0B=0x00;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

MCUCR=0x00;
GIMSK=0x00;

TIMSK0=0x00;
TIMSK1=0x00;

USICR=0x00;

ACSR=0x80;
ADCSRB=0x00;

MCUCR = (1<<SE)|(1<<SM1)|(0<<SM0);

ADCSRA=(0<<ADEN);

delay_s(5);

__sleep();

}

rx3apf
Цитата(vsalex @ Apr 11 2011, 11:55) *
Потребление в power down 120мка.
....
MCUCR = (1<<SE)|(1<<SM1)|(0<<SM0);

Power down ? Ню-ню....

Палыч
Table 20-1 Note 10 ?
vsalex
Цитата(rx3apf @ Apr 11 2011, 17:46) *
Power down ? Ню-ню....


Ребята я в этом деле человек новый, можно сказать случайный, можно по-подробней, что не так.
Ткните носом я не обижусь biggrin.gif
ILYAUL
Цитата(vsalex @ Apr 11 2011, 22:44) *
Ребята я в этом деле человек новый, можно сказать случайный, можно по-подробней, что не так.
Ткните носом я не обижусь biggrin.gif

Найдите таблицу в DS , изучите, и прочтите NOTE10. И потом про fuse
vsalex
Цитата(ILYAUL @ Apr 11 2011, 22:06) *
Найдите таблицу в DS , изучите, и прочтите NOTE10. И потом про fuse


Таблицу нащел, ничего нового не увидел, note заканчиваются на 8 (DS doc8183), про фузы говорил выше.
ILYAUL
Цитата(vsalex @ Apr 12 2011, 00:09) *
Таблицу нащел, ничего нового не увидел, note заканчиваются на 8 (DS doc8183), про фузы говорил выше.

Эту Table 20-1 Note 10 ?
rx3apf
Цитата(vsalex @ Apr 11 2011, 22:44) *
Ткните носом я не обижусь biggrin.gif

Пардон, это я привык, что указываются только биты, включаемые в "1". Все верно, SM1:SM0 = 10, powerdown (я как-то воспринял это как 11, что уже standby, и очень, кстати, похоже по величине потребления).
Так что извиняюсь, поторопился...

Цитата(vsalex @ Apr 12 2011, 00:09) *
Таблицу нащел, ничего нового не увидел, note заканчиваются на 8 (DS doc8183), про фузы говорил выше.

Ревизия "C" ? в 8183С примечания к 20-1 заканчиваются пунктом 10, намекают на BOD. Мимо, пожалуй - там потребление на порядок меньше.

Да, и все же - а тактовый генератор реально останавливается ?
vsalex
Цитата(rx3apf @ Apr 12 2011, 00:57) *
Да, и все же - а тактовый генератор реально останавливается ?


останавливается реально, проверено.
rx3apf
Цитата(vsalex @ Apr 12 2011, 08:15) *
останавливается реально, проверено.

Ну, тогда для полноты картины - текущее состояние фьюзов в студию. Но только не предполагаемое, а вычитанное из реального кристалла программатором. Может, там где-то собака и порылась...
vsalex
Fuses
OSCCAL = 84
_LOW = 0x6D
CKDIV = 0
CKOUT = 1
SUT = 2
CKSEL = D
_HIGH = 0xDF
RSTDISBL = 1
DWEN = 1
WDTON = 1
EESAVE = 1
BODLEVEL = 7
_EXT = 0xFF
SELFPRGEN = 1
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.