вечная тема- уложенный AVR.

Apr 04, 2013 23:44

после написания большого очередного куска кода и заливки hex файла перестала отвечать программатору ATtiny2313-20su ( Read more... )

Вопрос, Програмирование

Leave a comment

Comments 39

aterentiev April 4 2013, 20:18:20 UTC
Сотни и тысячи раз? Возможно, уже убился флеш...
А вообще такое может имхо происходить только из-за фьюзов и либо что-то произошло с резетом, либо отключился ICP, либо с кварцем намудрено, что в данном случае менее вероятно.

Reply

mikhno April 4 2013, 20:39:09 UTC
Сотни и тысячи раз за практику, на разных экземплярах.

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

ISP у AVR разве можно выключить программно?

Reply

aterentiev April 4 2013, 20:41:36 UTC
aterentiev April 4 2013, 20:48:54 UTC
если программатор подключен корректно, остаются только SPIEN и RSTDISBL
посмотри в битах фьюзов, вдруг что-то там из них неверно

Reply


aterentiev April 4 2013, 20:23:47 UTC
Или я не понял, этим кодом убито три контроллера???

Reply

mikhno April 4 2013, 20:32:08 UTC
да. три подряд. первый раз 40-50 записывался, до этого случая. второй сразу. третий- вручную поменял пару байт в программаторе, дабы убедиться, что чип живой. ридврайт-ок. после заливки того же загруженного файла- труп.

Reply


podrivnik April 4 2013, 20:43:36 UTC
Точно не помню, но в AVR можно использовать вывод Reset как ножку порта.
Если так сделать, то контроллер больше не перешить.

Reply

podrivnik April 4 2013, 20:45:43 UTC
Перечитал. Магия какая то

Reply

aterentiev April 4 2013, 20:50:57 UTC
обычно никакой магии, только кривость ловкость рук :):) сам убивал чипы на раз :)

Reply

podrivnik April 4 2013, 20:53:32 UTC
Может кварц отключён вручную. Я только таким образом убивал.
Надо бы внешний clock попробовать.

Reply


feo_man April 4 2013, 21:09:54 UTC
Было один раз такое, залилось 50% и мк сдох.
Выкинул его нафиг. Больше такого не было, ттт.

Reply


ex0_planet April 4 2013, 21:24:38 UTC
Не магия, было такое не раз.

Смысл в том, что абсолютно весь, _ВЕСЬ_ обмен, включая модуль ISP не асинхронный, тактируется от общего осциллятора. В частности, это означает то, что ISP не может воспринять тактовый сигнал (SPI CLK), который быстрее его собственного клока. При старте МК успевает выставить частоту 15625, и дальше работает на ней, включая reset state.

Снизьте частоту CLK програматора до 1кгц, и у вас получится если не перешить, то хотя бы выставить фьюзы.

Reply

mikhno April 5 2013, 04:37:42 UTC
была такая мысль, но раньше проблемы не было на заниженой тактовой.
т.е. попробовать впихнуть в начало кода пустой цикл на несколько секунд и пытаться коннектиться сразу после ресета, пока не включен прескалер?

Reply


Leave a comment

Up