Jump to content

    

Странное поведение ATTINY44A

Уж что-что, а программатор тут точно не виноват.

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

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

 

Выжимка первого поста:

1. Обнаружена утечка.

2. Смена МК, разовая прошивка - норма.

3. Подгонка программы (аппартная часть без изменений) - утечка.

4. Возврат на исходную программу из п.2 - утечка.

Share this post


Link to post
Share on other sites
Пока причина не найдена - ни один вариант нельзя отбрасывать, каким бы нереальным он не казался.

Т.е. Вы предполагаете, имеет место деградация чипов из-за количества перепрограммирования некачественным программатором? Но как это возможно? В чем физика процесса? Все-же, кмк, проблема в чем-то другом.

Share this post


Link to post
Share on other sites

Подпробой защитных диодов на входах МК и увеличение их утечки?

Share this post


Link to post
Share on other sites

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

Плата с mega16, импульсным стабилизатором 12V->5V, LCD1602, всякая мелочевка... Через TWI подключена QTouch клавиатурка. Все запитано 5V.

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

Чип на этой плате перешивался, думаю не меньше 1000 раз - тк на этой плате отлаживался достаточно большой проект, да еще и не один :) Ладно, пусть будет 500.

Программатор - честный ATAVRISPmkII.

Взял одинн из старых проектов, достаточно увесистый (использовано 82% flash). После инициализации всего железа, в цикле ожидания нажатия клавиши, (при нажатии генерится INT0) вставлен такой код

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

Может у топикстартера такая-же проблема?

 

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

 

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

 

PS: Еще нюанс замечен. При поднесении руки к плате ток начинает расти до 1.2 - 1.3 мкА - очевидно, сказываются наводки на "висящие в воздухе" ноги.

Edited by nk@

Share this post


Link to post
Share on other sites
Вывод - деградация от количества перепрограммирований не обнаружена.

Вывод немного другой. Вот такой: ваш "environment" был свободен от помех и с лично вашим программатором вроде бы проблем нет.

Если уж идти до конца - уберите из цепи ByteBlaster адаптер, воткните пять проводков непосредственно от LPT кабеля в МК. Обматайте LPT кабелем UPS. Запустите прошивку чипа и несколько раз отключите и включите UPS в процессе перепрошивки. Вот тогда посмотрим. :)

Share this post


Link to post
Share on other sites
Вывод немного другой. Вот такой: ваш "environment" был свободен от помех и с лично вашим программатором вроде бы проблем нет.

Не буду этого отрицать :) Плохо, что топикстартер молчит, как рыба об лёд. Гадаем на кофейной (чайной) гуще :lol:

И все-же никто не отписался о подобной проблеме, значит она не носит массовый характер. Интересно, где-же все-таки собака порылась?

Share this post


Link to post
Share on other sites
Плохо, что топикстартер молчит, как рыба об лёд.

Да, действительно, совсем непонятная ситуация. Мне не очень удобно выстуапать от второго лица.

Дабы не было "испорченного телефона", предложил коллеге зарегистрироваться и вести диалог от первого лица.

Ждем_с.

 

Share this post


Link to post
Share on other sites

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

 

#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();  

}

Share this post


Link to post
Share on other sites
Потребление в power down 120мка.

....

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

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

 

 

Share this post


Link to post
Share on other sites
Power down ? Ню-ню....

 

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

Ткните носом я не обижусь :biggrin:

Share this post


Link to post
Share on other sites
Ребята я в этом деле человек новый, можно сказать случайный, можно по-подробней, что не так.

Ткните носом я не обижусь :biggrin:

Найдите таблицу в DS , изучите, и прочтите NOTE10. И потом про fuse

Share this post


Link to post
Share on other sites
Найдите таблицу в DS , изучите, и прочтите NOTE10. И потом про fuse

 

Таблицу нащел, ничего нового не увидел, note заканчиваются на 8 (DS doc8183), про фузы говорил выше.

Share this post


Link to post
Share on other sites
Таблицу нащел, ничего нового не увидел, note заканчиваются на 8 (DS doc8183), про фузы говорил выше.

Эту Table 20-1 Note 10 ?

Share this post


Link to post
Share on other sites
Ткните носом я не обижусь :biggrin:

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

Так что извиняюсь, поторопился...

 

Таблицу нащел, ничего нового не увидел, note заканчиваются на 8 (DS doc8183), про фузы говорил выше.

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

 

Да, и все же - а тактовый генератор реально останавливается ?

Edited by rx3apf

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this