Как штатными настройками убить микроконтроллер. Часть 2

enter image description here


Не так давно я писал о том, как мне удалось превратить в «кирпич» микроконтроллер, задав неудачную комбинацию настроек. Проблема была в том, что у меня случайно получилось ввести в режим работы «по требованию» генератор, тактирующий ядро контроллера. При этом, отключалось все, в том числе и модуль отладки. Множество людей откликнулись на мою просьбу и дали мне несколько дельных советов и многие до сих пор спрашивают чем же все закончилось. Так вот история развивалась довольно комично, но закончилась весьма банально. Подробности под катом.


Итак, последовав советам опытных людей, мы отправились перечитывать в User Manual разделы, посвященные отладке и режимам загрузки контроллера. Оказалось, что вроде как есть режим загрузки, при котором контроллер не начинает выполнять код, а ждет подключение отладчика.


enter image description here


Оставалось самое трудное — припаяться к нужным пинам чтобы правильно выполнить последовательность загрузки. Аппаратура, позволяющая это сделать и не убить плату, у нас находится в другом офисе, поэтому плату было ехать туда и отдавать все специалистам…


Но в день, когда мы собирались ее везти, произошло нечто необъяснимое. Вечером плата была положена в пакетик, затем в коробку, а коробка была убрана в сумку. Однако с утра платы в сумке не нашлось. Она просто исчезла! Мы перерыли всю сумку, все коробки которые нашли, обращались в бюро находок в автобусах, в которых ехала сумка… Все тщетно. Потратив на поиски пару дней, решили плюнуть на эту плату и ждать пока будут изготовлены новые (а это почти 4 недели). Хорошо, что при этом удалось продолжить работу с прошивкой, так как у нас была Arduino M0 с похожим процессором.


enter image description here


В тот момент мне вспомнился анекдот про русского и два титановых шарика, но было как-то не смешно.


Однако, в результате очередного мозгового штурма, мы вспомнили, что перед тем как уехать домой с платой, была произведена уборка на столах. Мы бегом побежали к шкафам с деталями и, перерыв там все с низу до верху, нашли пропажу в том самом пакетике. Оказалось, что кто-то случайно в последний момент вынул плату из коробки и убрал ее к другим деталям. Потом коробку закрыли, положили в сумку и т.д. Вот теперь анекдот уже воспринимался не так печально.


В итоге, потратив еще день на пайку нужных проводов, мы приступили к оживлению. Тут стоит сказать, что пока мы развлекались поисками платы, к нам приехал J-Link. Правда, не оригинал, а дешевый аналог неизвестного производителя.


Так вот, как выяснилось, не нужно было ничего даже паять. Этот J-Link сходу увидел микроконтроллер, хотя дорогой и более «навороченный» ULink отказывался все время это делать.


После того, как злополучная прошивка была стерта, все встало на свои места и все отладчики без проблем смогли подключиться к контроллеру.


Мы предполагаем, что нас спасло то, что J-Link умеет тактировать модуль отладки сам в обход ядра. Я не знаю спецификации SWD и не разбирался глубоко в разнице между J-Link и ULink, но похоже что дешевый аналог работает лучше дорогого и навороченного. Правда, при этом, регулярно перегорает…


На этом история заканчивается. Плата работает, прошивка пишется. Всем спасибо за помощь!

Комментарии (0)

© Habrahabr.ru