freezer 0 30 октября, 2009 Опубликовано 30 октября, 2009 · Жалоба Я совсем ещё начинающий в программировании МК. Написал простенькую программку - бегущие огни, в AVRStudio. В симуляторе работала, прошил ATtiny 12L, прошивал на STK500. Воткнул на плату - в результате при подаче питания программка не стартует. Вывод Reset подтянут к питанию+5В через 1К. Питание организовано на 7805, по вх-вых кондеры 33мкФ. Работаю на внутреннем генераторе. Чтобы заставить выполняться программу приходится либо коротковременно подкорачивать вывод reset на общий, либо кратковременно снять и снова подать питание.. Покапался в поиске - инфы по контроллерам гора, но нужной не нашёл.. Может кто сталкивался с таким? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_G 11 30 октября, 2009 Опубликовано 30 октября, 2009 · Жалоба Почитайте фирменную документацию на ваш контроллер. Возможные причины: 1. Запрограммировано внешнее тактирование (резонатором, RC-цепью или импульсами), а таковое отсутствует. Перепрограммируйте через STK на внутреннее 2. Запрограммировано использование сторожевого таймера, а в программе оный не сбрасывается периодически 3. Другие причины типа незапрограммированных портов Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
freezer 0 30 октября, 2009 Опубликовано 30 октября, 2009 · Жалоба 1 - Тактирование внутреннее, темболее после принудительного сброса всё начинает работать- еслибы было запрограммировано внешнее- схема бы вообще не включалась. 2 - сторожевой таймер пробовал и включать и выключать и сбрасывал - никакой реакции 3 - все выводы порта работают как выходы, кроме вывода reset, на всех висят по резистору и леду, подключенных к положительной шине питания, те диод загорается если на выводе низкий уровень. Снял осциллограммы питания при включении - никаких провалов. И ещё - на выходах МК , если программа не запустилась, высокий уровень Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vovanse 0 30 октября, 2009 Опубликовано 30 октября, 2009 · Жалоба Попробуйте резистор поставить на 4.7к, и конденсатор на землю на 10nF. По-моему, нет сброса при включении питания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
freezer 0 30 октября, 2009 Опубликовано 30 октября, 2009 · Жалоба Попробуйте резистор поставить на 4.7к, и конденсатор на землю на 10nF. По-моему, нет сброса при включении питания. На reset? Вешал 1К на "+" и 0.1мкФ(и 10мкф пробовал) на землю- не помогает, попробую увеличить резистор, хотя большого смысла вродебы и нет.. Увеличил до 56КОм. Кондёр 10мкФ.. Не помогло.. Прикладываю осциллограмку запуска МК. 1 Канал- Напряжение питания 2 канал- Состояние пина 3 МК (PB0). Подтянул его к земле через 1К, чтобы было видно Z состояние.. На осциллограмме сначала программа не запустилась,а после коротковременного отключения питания запустилась. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ronin 0 30 октября, 2009 Опубликовано 30 октября, 2009 (изменено) · Жалоба А что у Вас со фьюзами SUT, BODEN, BODLEVEL ?.. Качнул доку, в 12ом нету SUT :) оно выбирается CKSELом Качнул еррату, и там забавное нашлось (.ля что за нах с запретом копирования текста из ерраты у атмела...) в общем имхо надо попробовать CKSEL=0010, BODEN=0, BODLEVEL=0 Изменено 30 октября, 2009 пользователем Ronin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
freezer 0 30 октября, 2009 Опубликовано 30 октября, 2009 · Жалоба BODEN включен BODLEVEL 2.7В Но пробовал и выключать, CKSEL если не ошибаюсь 0010 (вроде как по умолчанию) Может ещё какие-нибудь идеи есть? а то 1МК уже пальнул по глупости,но остался ещё один с точно такойже проблемой:( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ronin 0 30 октября, 2009 Опубликовано 30 октября, 2009 (изменено) · Жалоба CKSEL если не ошибаюсь 0010 (вроде как по умолчанию) а другие значения CKSEL (0011, 0100) не помогают ? что на осцилограмме reset пина (с резистором и конденсатором) ? Изменено 30 октября, 2009 пользователем Ronin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GDI 0 30 октября, 2009 Опубликовано 30 октября, 2009 · Жалоба Блокировочные конденсаторы на пинах питания МК стоят? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
freezer 0 30 октября, 2009 Опубликовано 30 октября, 2009 · Жалоба Блокировочные конденсаторы на пинах питания МК стоят? 33мкФ эл-лит, в первом посте писал. а другие значения CKSEL (0011, 0100) не помогают ? что на осцилограмме reset пина (с резистором и конденсатором) ? 1- не пробовал 2 - нарастание напряжения на конденсаторе, достигает 3 В через 0.5с, в этот момент вывода МК принимают верхний уровень(на предыдущих осциллограммах) У меня такой вопрос - директиву .ORG 0x0000 - обязательно указывать в программе? Видел примеры и с ней и без неё.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mp41 0 30 октября, 2009 Опубликовано 30 октября, 2009 · Жалоба ... .ORG 0x0000 - обязательно указывать в программе? Видел примеры и с ней и без неё.. Это значение вроде как по умолчанию используется без явного указания. А почему по питанию керамики нету? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
freezer 0 30 октября, 2009 Опубликовано 30 октября, 2009 · Жалоба 2.2мкФ X7R непосредственно на лапы МК- ноль реакции, как я собственно и думал:( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ronin 0 30 октября, 2009 Опубликовано 30 октября, 2009 (изменено) · Жалоба Может на код пора посмотреть :) и все фьюзы как есть. А то идей никаких как-то %) Изменено 30 октября, 2009 пользователем Ronin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
freezer 0 30 октября, 2009 Опубликовано 30 октября, 2009 · Жалоба Фьюзы выложить не смогу - программатор, собственно как и 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 вольта и снова поднять - программа начинает выполняться Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mp41 0 30 октября, 2009 Опубликовано 30 октября, 2009 · Жалоба Я обычно ставлю адреса векторов прерываний, без них как-то стремно смотрится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться