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

в 6:35, , рубрики: arduino, atmel, brick, microcontroller, microcontrollers, Интернет вещей, микроконтроллеры, ненормальное программирование, Программирование, программирование микроконтроллеров, Разработка для интернета вещей, Разработка робототехники

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, но похоже что дешевый аналог работает лучше дорогого и навороченного. Правда, при этом, регулярно перегорает...

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

Автор: AlexandrSurkov

Источник

Поделиться новостью

* - обязательные к заполнению поля