Страница 1 из 1

ATTiny2313 не прошивается повторно при использовании PORTB

Добавлено: Пн ноя 14, 2011 16:28:22
KibeR_ShuriK
Здравствуйте.
Возникла такая проблема - не могу повторно прошить tiny2313 после прошивки кодом(на ассемблере), где на порт B постоянно выводится логическая единица..
Программатор: копия AVR910
Использую AvrProg. Выскакивает ошибка: Can't enter programming mode
Причем ошибка началась с того момента, когда я только-только прошил МК новым кодом - еще на этапе верификации flash. Теперь на всех пинах порта B высокий уровень напряжения, при попытке перепрошивки подключенный светодиод моргает один раз.
Фьюзы и частоту не трогал.

Возможно ли как-нибудь жестко сбросить МК, чтобы он снова заработал? Если нет, то что остается делать?.. Всё-таки жалко свежекупленную тиньку..

Код прошивки на ассемблере:

Код: Выделить всё

.include "tn2313def.inc"   
.list         
.def   temp=R16    

.cseg         
.org    0      


ldi   temp, RAMEND   
out   SPL, temp   

ldi   temp, 0      
out   DDRD, temp   

ldi   temp, 0xFF   
out    DDRB, temp   
out   PORTB, temp   
out    PORTD, temp   

ldi   temp, 0x80   
out   ACSR, temp

main:   ldi temp, 0
   out PORTB, temp
   rjmp   main   


PS. В МК новичок, только учусь :).

Заранее спасибо!

Re: ATTiny2313 не прошивается повторно при использовании POR

Добавлено: Пн ноя 14, 2011 23:37:41
Flasher
поменять программатор

Re: ATTiny2313 не прошивается повторно при использовании POR

Добавлено: Вт ноя 15, 2011 00:16:57
Александр Гончаров
Тоже парился с тинькой, в итоге сделал 1 секундную задержку в самом начале кода... повесил на вывод ресет кнопку "ресет >земля". Далее делаю так нажимаю-отпускаю ресет и в течении секунды нажимаю "стереть" . стирать удобно в AVRPROG выставив AT90S2313. в CodeVision тоже можно стирать но очень долго. еще удобный способ без нажатия кнопки ресет в AVRPROG. запускаем AVRPROG выставляем AT90S2313 нажимаем Advanced, прога выдаст ошибку, жмем ОК появляется окно где жмем chip erase выскочит ошибка, быстро нажимаем ОК и еще раз chip erase, пока идет счет в контролере он определяется и стирается. а вообще для стирания и востановления фьюзов рекомендую спаять AVRDoctor.

reset:
ldi Temp1,RamEnd
out SPL,Temp1

rcall StartDelay ; задержка
rcall StartDelay
rcall StartDelay
........... и т.д.

Re: ATTiny2313 не прошивается повторно при использовании POR

Добавлено: Вт ноя 15, 2011 06:03:16
KibeR_ShuriK
Flasher писал(а):поменять программатор

Были бы деньги... Да и что ему остается делать, когда на портах ввода/вывода постоянно высокий уровень напряжения.





Александр Гончаров писал(а):Тоже парился с тинькой, в итоге сделал 1 секундную задержку в самом начале кода... повесил на вывод ресет кнопку "ресет >земля". Далее делаю так нажимаю-отпускаю ресет и в течении секунды нажимаю "стереть" . стирать удобно в AVRPROG выставив AT90S2313. в CodeVision тоже можно стирать но очень долго. еще удобный способ без нажатия кнопки ресет в AVRPROG. запускаем AVRPROG выставляем AT90S2313 нажимаем Advanced, прога выдаст ошибку, жмем ОК появляется окно где жмем chip erase выскочит ошибка, быстро нажимаем ОК и еще раз chip erase, пока идет счет в контролере он определяется и стирается. а вообще для стирания и востановления фьюзов рекомендую спаять AVRDoctor.

reset:
ldi Temp1,RamEnd
out SPL,Temp1

rcall StartDelay ; задержка
rcall StartDelay
rcall StartDelay
........... и т.д.


Спасибо за совет! Как разберусь с текущим "залоченным" МК, обязательно попробую это на новом :).


//Вопрос всё еще актуален..

Re: ATTiny2313 не прошивается повторно при использовании POR

Добавлено: Вт ноя 15, 2011 06:42:18
ploop
Да и что ему остается делать, когда на портах ввода/вывода постоянно высокий уровень напряжения.

Работать.
Программатору пофигу, что на пинах, после прижатия ресета (вход в режим программирования) все пины становятся входами, за исключением MISO.
Ищите проблему в монтаже/скорости прошивки.