Сотни и тысячи раз? Возможно, уже убился флеш... А вообще такое может имхо происходить только из-за фьюзов и либо что-то произошло с резетом, либо отключился ICP, либо с кварцем намудрено, что в данном случае менее вероятно.
Сотни и тысячи раз за практику, на разных экземплярах.
на сброс реакция есть- программно зажженный светодиод тухнет. кварц исключен, ибо классика на коротких дорожках и измеренных перед впайкой конденсаторах по 22пФ.
да. три подряд. первый раз 40-50 записывался, до этого случая. второй сразу. третий- вручную поменял пару байт в программаторе, дабы убедиться, что чип живой. ридврайт-ок. после заливки того же загруженного файла- труп.
Смысл в том, что абсолютно весь, _ВЕСЬ_ обмен, включая модуль ISP не асинхронный, тактируется от общего осциллятора. В частности, это означает то, что ISP не может воспринять тактовый сигнал (SPI CLK), который быстрее его собственного клока. При старте МК успевает выставить частоту 15625, и дальше работает на ней, включая reset state.
Снизьте частоту CLK програматора до 1кгц, и у вас получится если не перешить, то хотя бы выставить фьюзы.
была такая мысль, но раньше проблемы не было на заниженой тактовой. т.е. попробовать впихнуть в начало кода пустой цикл на несколько секунд и пытаться коннектиться сразу после ресета, пока не включен прескалер?
Comments 39
А вообще такое может имхо происходить только из-за фьюзов и либо что-то произошло с резетом, либо отключился ICP, либо с кварцем намудрено, что в данном случае менее вероятно.
Reply
на сброс реакция есть- программно зажженный светодиод тухнет. кварц исключен, ибо классика на коротких дорожках и измеренных перед впайкой конденсаторах по 22пФ.
ISP у AVR разве можно выключить программно?
Reply
http://www.engbedded.com/fusecalc/
SPIEN
Reply
посмотри в битах фьюзов, вдруг что-то там из них неверно
Reply
Reply
Reply
Если так сделать, то контроллер больше не перешить.
Reply
Reply
Reply
Надо бы внешний clock попробовать.
Reply
Выкинул его нафиг. Больше такого не было, ттт.
Reply
Смысл в том, что абсолютно весь, _ВЕСЬ_ обмен, включая модуль ISP не асинхронный, тактируется от общего осциллятора. В частности, это означает то, что ISP не может воспринять тактовый сигнал (SPI CLK), который быстрее его собственного клока. При старте МК успевает выставить частоту 15625, и дальше работает на ней, включая reset state.
Снизьте частоту CLK програматора до 1кгц, и у вас получится если не перешить, то хотя бы выставить фьюзы.
Reply
т.е. попробовать впихнуть в начало кода пустой цикл на несколько секунд и пытаться коннектиться сразу после ресета, пока не включен прескалер?
Reply
Leave a comment