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

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

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

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

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

 

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

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

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

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

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

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


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

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

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

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


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

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

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


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

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

Плата с 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 мкА - очевидно, сказываются наводки на "висящие в воздухе" ноги.

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

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


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

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

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

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

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


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

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

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

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

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


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

Плохо, что топикстартер молчит, как рыба об лёд.

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

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

Ждем_с.

 

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


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

Ребята привет, это я собственно виновник торжества. По возникшим вопросам: программатор на 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();  

}

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


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

Потребление в power down 120мка.

....

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

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

 

 

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


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

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

 

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

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

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


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

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

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

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

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


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

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

 

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

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


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

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

Эту Table 20-1 Note 10 ?

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


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

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

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

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

 

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

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

 

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

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

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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