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

Я совсем ещё начинающий в программировании МК. Написал простенькую программку - бегущие огни, в AVRStudio. В симуляторе работала, прошил ATtiny 12L, прошивал на STK500. Воткнул на плату - в результате при подаче питания программка не стартует. Вывод Reset подтянут к питанию+5В через 1К. Питание организовано на 7805, по вх-вых кондеры 33мкФ. Работаю на внутреннем генераторе. Чтобы заставить выполняться программу приходится либо коротковременно подкорачивать вывод reset на общий, либо кратковременно снять и снова подать питание.. Покапался в поиске - инфы по контроллерам гора, но нужной не нашёл.. Может кто сталкивался с таким?

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


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

Почитайте фирменную документацию на ваш контроллер.

Возможные причины:

1. Запрограммировано внешнее тактирование (резонатором, RC-цепью или импульсами), а таковое отсутствует. Перепрограммируйте через STK на внутреннее

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

3. Другие причины типа незапрограммированных портов

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


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

1 - Тактирование внутреннее, темболее после принудительного сброса всё начинает работать- еслибы было запрограммировано внешнее- схема бы вообще не включалась.

2 - сторожевой таймер пробовал и включать и выключать и сбрасывал - никакой реакции

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

Снял осциллограммы питания при включении - никаких провалов. И ещё - на выходах МК , если программа не запустилась, высокий уровень

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


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

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

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


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

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

На reset? Вешал 1К на "+" и 0.1мкФ(и 10мкф пробовал) на землю- не помогает, попробую увеличить резистор, хотя большого смысла вродебы и нет..

Увеличил до 56КОм. Кондёр 10мкФ.. Не помогло.. Прикладываю осциллограмку запуска МК.

1 Канал- Напряжение питания

2 канал- Состояние пина 3 МК (PB0). Подтянул его к земле через 1К, чтобы было видно Z состояние..

post-40406-1256886384_thumb.png

На осциллограмме сначала программа не запустилась,а после коротковременного отключения питания запустилась.

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


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

А что у Вас со фьюзами SUT, BODEN, BODLEVEL ?..

Качнул доку, в 12ом нету SUT :) оно выбирается CKSELом

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

в общем имхо надо попробовать CKSEL=0010, BODEN=0, BODLEVEL=0

 

post-2558-1256891563_thumb.png

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

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


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

BODEN включен

BODLEVEL 2.7В

Но пробовал и выключать, CKSEL если не ошибаюсь 0010 (вроде как по умолчанию)

Может ещё какие-нибудь идеи есть? а то 1МК уже пальнул по глупости,но остался ещё один с точно такойже проблемой:(

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


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

CKSEL если не ошибаюсь 0010 (вроде как по умолчанию)

 

а другие значения CKSEL (0011, 0100) не помогают ?

что на осцилограмме reset пина (с резистором и конденсатором) ?

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

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


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

Блокировочные конденсаторы на пинах питания МК стоят?

33мкФ эл-лит, в первом посте писал.

а другие значения CKSEL (0011, 0100) не помогают ?

что на осцилограмме reset пина (с резистором и конденсатором) ?

1- не пробовал

2 - нарастание напряжения на конденсаторе, достигает 3 В через 0.5с, в этот момент вывода МК принимают верхний уровень(на предыдущих осциллограммах)

 

У меня такой вопрос - директиву

.ORG 0x0000 - обязательно указывать в программе? Видел примеры и с ней и без неё..

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


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

...

.ORG 0x0000 - обязательно указывать в программе? Видел примеры и с ней и без неё..

Это значение вроде как по умолчанию используется без явного указания. А почему по питанию керамики нету?

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


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

2.2мкФ X7R непосредственно на лапы МК- ноль реакции, как я собственно и думал:(

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


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

Может на код пора посмотреть :) и все фьюзы как есть.

А то идей никаких как-то %)

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

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


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

Фьюзы выложить не смогу - программатор, собственно как и AVRSTUDIO сейчас далеко.

Код,не судите строго - это моя первая прогаммка для МК:) :

.include "tn12def.inc"

rjmp init;

reti; INT0

reti; PIN_CHANGE

rjmp tim_ovf; TIM0_OVF

reti; EEPROM_READY

reti//rjmp int_acomp; ANALOG_COMP

 

tim_ovf:

inc r17;

cpi r17,4 //1 раз за 4 прерывания таймера

brne ex_ovf;

ldi r17,0;

lsl r2;

bst r2,6

bld r2,0

out portb,r2

 

ex_ovf:

reti

 

main:

//repeat:

//inc r1;

//brne repeat;

rjmp main;

 

//int_acomp:

//ldi r16,0

//reti;

 

init:

cli;

sbr r16,0b11111110

//ldi r16,1;

mov r2,r16;

out portb,r2

ldi r17,0;

ldi r16,0b00000000;

out GIMSK,r16; запрет int0, и прерываний по изм сост. пинов

ldi r16,0b00111111;

out DDRB,r16;

ldi r16,0b11001010

out ACSR,r16

ldi r16,0b00000001

out TCCR0,r16

clr r16;

sbr r16,0b10

out TIMSK,r16

sei;

rjmp main;

Не обращайте внимания на куски неиспользуемых обработчиков прерываний- хотел с ними потом поиграться.

Заметил ещё одну закономерность, если после включения(когда программа не запустилась) снизить напряжение питания~до 1 вольта и снова поднять - программа начинает выполняться

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


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

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

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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