Предположения:
- Внешняя схема не подключена (кроме схемы программирования, которую мы считаем правильной).
- ОК не неисправен.
- Под уничтожением я подразумеваю выпустить синий дым смерти, а не брикетировать его в программном обеспечении.
- Это "нормальный" ОК. Не какое-то очень странное устройство, предназначенное для конкретных целей.
Кто-нибудь видел когда-нибудь подобное? Как это возможно?
Задний план:
Спикер собрания, которому я помог, сказал, что это возможно (и даже не так сложно) сделать это, и некоторые другие люди согласились с ним. Я никогда не видел, чтобы это произошло, и когда я спросил их, как это возможно, я не получил реального ответа. Мне действительно любопытно сейчас, и я хотел бы получить обратную связь.
microcontroller
software
damage
Хуан Карлос
источник
источник
Ответы:
Конечно, вы можете с инструкцией HCF !
Тем не менее, я говорю, что это невозможно без каких-либо внешних схем, кроме питания и тому подобное.
Даже включение некоторых преднамеренно неисправных соединений, возможно, не обрезает его: если вы привязываете все gpi к шине питания, устанавливая их как выход (к противоположной шине питания), которые могут рассеивать довольно много энергии. Вывод GPIO, вероятно, защищен от короткого замыкания, поэтому ничего страшного не произойдет.
Проектирование внешней схемы, которая разрушает микросхему по своему желанию, на мой взгляд, тоже не тривиально. Первое, что приходит на ум, - это источник питания высокого напряжения, nmos и резистор:
смоделировать эту схему - Схема, созданная с использованием CircuitLab Где:
Операция проста: если микро-релизы GPIOx M1 включаются, Vcc поднимается и ваш чип загорается. Обратите внимание, что это дерьмовая установка, например, HV необходимо включить после того, как вы будете уверены, что GPIOx надежно закреплен на земле. Некоторым транзисторам может не понравиться напряжение -5 В и т. Д. Но вы получите картину.
источник
Отказ от ответственности: суперкат сказал, что сначала в комментарии.
На самом деле, невозможно физически уничтожить большинство микроконтроллеров, но его можно носить достаточно, чтобы начать работать со сбоями до такой степени, что он станет непригодным для использования. У меня есть опыт работы с MSP430 от TI.
Эти MCU позволяют перепрограммировать всю вспышку в любое время. Мало того, что флэш-память можно носить, перезаписывая ее миллионы раз до тех пор, пока она не выйдет из строя, но встроенный в чип генератор программирования флэш-памяти может вызвать сбой в процессоре нижнего уровня, если генератор программирования неправильно настроен. Это допустимый диапазон частот, разрешенных для программирования. При выходе за пределы этого диапазона (медленнее) время программирования может стать чрезмерно большим и привести к выходу из строя ячеек флэш-памяти. После всего лишь нескольких сотен циклов можно «сжечь» ячейки вспышки, что приведет к необратимому выходу из строя.
Кроме того, некоторые модели позволяют разогнать ядро, увеличивая внутреннее напряжение до более высокой скорости. MCU работает от источника питания 1,8-3,6 В, но само ядро рассчитано на работу от 1,8 В. Если вы слишком сильно разогнали ядро на шине питания 3,6 В, переключая все входы / выходы, активируя все периферийные устройства и работая на частоте 40 МГц (обычно это максимум 25 МГц на больших моделях) в небольшом закрытом корпусе, вы можете обжечь ядро из-за перегрева. На самом деле некоторые ребята сказали, что они достигли этих частот (обычно DCO отказывает раньше и чип сохраняется, но хорошо ... возможно).
Просто попробуйте?
источник
Согласно stackexchange - «Это действительно плохая идея, чтобы оставить входной контакт MCU плавающим?»
Он описывает несколько обстоятельств, при которых микросхема может быть повреждена контактом разомкнутой цепи. Редактировать: пример Spansion Analog и Microcontroller Products говорит:
Условием в этом вопросе является разомкнутая цепь.
Таким образом, наша задача состоит в том, чтобы управлять , что с мая в будет повредить штифт. Я думаю, что этого достаточно, чтобы выйти за рамки «кирпича».
Один механизм, идентифицированный в этом ответе, приводит входной вывод к напряжению среднего значения, когда оба дополняющих транзистора включены. При работе в этом режиме интерфейс контактов может перегреваться или выходить из строя.
Входной контакт имеет очень высокий импеданс, а также является конденсатором. Предположительно, у них достаточно связи между соседними контактами, чтобы переключение соседних контактов достаточно быстро могло привести заряд на входной контакт и выдвинуть его в это «горячее» состояние. Может быть, половина выводов ввода / вывода, переведенных в это состояние, нагреет чип достаточно, чтобы вызвать повреждение?
(Существует ли режим, в котором емкость контакта с разомкнутой цепью может использоваться как удвоитель напряжения? Хмм.)
Я также думаю, что разрушительной вспышки достаточно. Я думаю, что это достаточно плохо, чтобы сделать чип бесполезным.
Это не обязательно должна быть вспышка, а только страница, содержащая векторы Power-on, RESET и т. Д. Ограничение на одну страницу может занять несколько десятков секунд.
У меня было указание, но нет веских доказательств), что для некоторых микроконтроллеров это может быть хуже. Я присутствовал на презентации пару лет назад. Кто-то спросил, почему конкуренты предлагали запчасти с гораздо более высокими циклами записи на флэш-память. Ведущий (крупный неназванный производитель микроконтроллеров) сказал, что они использовали гораздо более консервативный подход в своих спецификациях флэш-памяти. Он сказал, что их гарантия была определена при значительно более высокой температуре, чем была отраслевая норма. Кто-то спросил "ну и что". Выступающий сказал, что продукты нескольких производителей будут иметь значительно меньший срок службы, чем их детали при той же температуре, что и при использовании. Мое воспоминание было 5x станет <1x. Он сказал, что это очень нелинейно. Я понял, что программирование на 80C вместо 25C будет «плохой вещью».
Таким образом, перезапись флэш-памяти в сочетании с очень горячей микросхемой может также сделать ее бесполезной менее чем за 10 секунд.
Редактировать:
я думаю, что "выпустить синий дым смерти" является более жестким ограничением, чем требуется. Если какая-либо из цепей контактов RESET, детектор отключения, схема включения питания, RC или кварцевый генератор (и, возможно, несколько других цепей) могут быть повреждены, микросхема станет бесполезной.
Как уже отмечали другие, разбитая вспышка убьет и ее непоправимо.
«Дым» звучит впечатляюще, но менее очевидные смертельные атаки все еще смертельны, и их гораздо труднее обнаружить.
источник
Одним из потенциальных источников такого разрушения является защелка SCR, где непреднамеренные (встроенные) транзисторы в микросхеме собираются вместе, образуя своего рода TRIAC, который затем может поглощать большой ток. Это может легко взорвать соединительные провода, и я даже видел устройства в пластиковом корпусе, явно искаженные из-за выделяемого тепла.
Типичная причина - вождение (даже на мгновение) входа выше или ниже рельсов питания или заземления соответственно, но я думаю, вы могли бы увидеть, что это произошло, если бы вход оставался плавающим. И тогда нетрудно представить схему, в которой плавающая способность входа контролировалась программным обеспечением (хотя это было бы очень глупо разрешить).
источник
ВОЗМОЖНО, что программное обеспечение, специально предназначенное для этой цели и предназначенное для очень специфического процессора, может вызвать разгон до такой степени, что процессор перегреется. При условии, конечно, что процессор содержит программно-конфигурируемые регистры управления часами.
Конечно, НЕ ВСЕ могут быть повреждены ВСЕ процессоры. Если бы это было правдой, то были бы миллиарды Z80, 6800 и 6502, оставленные на обочине небрежным написанием программного обеспечения, когда мы еще печатали машинный код вручную, совершая множество случайных ошибок.
источник
Это моя статья о разрушении микроконтроллера с как можно меньшим количеством деталей ...
Просто переключите выходные контакты на несколько кГц!
Вы все еще можете не видеть дым, в зависимости от внутреннего режима отказа, хотя.
смоделировать эту схему - схема, созданная с использованием CircuitLab
Редактировать, добавлено 22 августа
Теперь я не думаю, что вы можете испортить микроконтроллер с учетом критериев. Но вы можете легко испортить внешнюю схему с неправильным кодом. Пример, который приходит на ум, - это простой повышающий преобразователь, который я недавно разработал ... простая приостановка кода во время отладки может привести к замыканию индуктора на массу через MOSFET. пуф
источник
С точки зрения обычного кода пользовательского режима, я не думаю, что вы можете написать что-нибудь, что сломает чип.
Тем не менее, я помню дни микропроцессоров, которые могли быть разрушены менее чем за минуту или даже секунды, если радиатор упал. Затем они добавили схемы термического обнаружения, которые выключали бы часы, если деталь становилась слишком горячей. Теперь, когда мы можем установить гораздо больше транзисторов, чем можно использовать за один раз, микросхемы способны выделять больше тепла, чем теплоотвод может рассеивать, а также благодаря управлению питанием и тепловым цепям, которые обеспечивают его безопасность. Например, см. Intel Turbo Boost 2.0, Поэтому кажется вполне возможным расплавить микросхему, если вы можете обойти или поднять ограничение на управление питанием и тепловую цепь. Итак, если они находятся под программным контролем (не знаю; может быть, это требует обновления BIOS?), Вы можете запустить несколько параллельных циклов бездействия, встроенную работу с графическим процессором, аппаратное декодирование и кодирование H.264, и все, что чип может сделать, все сразу, пока чип не перегреется и не испустит волшебный синий дым.
источник
Я больше всего знаком с процессорами STM32, поэтому они наиболее применимы к этому семейству. Но подобные подходы могут быть возможны и с другими процессорами:
Существует постоянный режим защиты от записи. Поэтому, если вы запрограммируете этот бит и какую-нибудь бесполезную программу на FLASH, MCU никогда не сможет использоваться снова. Я не знаю, считается ли это «кирпичом», но это требует постоянного аппаратного механизма.
Контакты для программирования можно перенастраивать как GPIO. Поскольку тактовый вывод управляется устройством программирования, это может быть использовано для короткого замыкания. Скорее всего, это сломало бы тот единственный вывод, который был бы плохим программирующим выводом.
Как упомянуто dirkt, PLL можно использовать для разгона процессора. Это может привести к его перегреву или повреждению.
источник
Кто когда-либо говорил, что не понимает, насколько сложным является процесс проектирования таких чипов. Это не означает, что ошибки не случаются, и что покрытие кода регрессии и угловых случаев иногда пропускает некоторые вещи, но сделать заявление о том, что ВСЕ или даже большинство процессоров имеют этот недостаток, логически сомнительно.
Просто спросите себя, что происходит, когда время наработки часов превышает требования по времени (при условии, что оно не перегревается). чип выходит из строя и, возможно, портит память и даже доступ к жестким дискам, но в основном процессор снова запускается и даже запускает ОС снова, если повреждение устранено. Так какой вид правильно сконструированного микрокода может вызвать БОЛЬШЕ разрушения, чем этот сценарий? - Скорее всего, нет ответа.
TLDR; Все процессоры имеют эту ошибку - НЕ
источник
Я считаю, что, безусловно, возможно физически уничтожить микроконтроллер (MC) с помощью программного обеспечения. Все, что требуется, - это комбинация MC для выполнения «плотного» цикла инструкций, которые вызывают 100% -ное использование, и «дефектного» радиатора, который позволяет накоплению тепла внутри чипа. Вопрос о том, как быстро будет накапливаться тепло, зависит от того, займет ли это секунды, минуты или часы.
У меня есть ноутбук, который я могу использовать только на 50% непрерывного использования. Если я превышаю это, компьютер выключается. Это означает, что при использовании 50% температура MC ниже установленной точки запуска. По мере увеличения использования температура MC увеличивается, пока не будет достигнута точка срабатывания. Если цепь термического отключения не работает (или не имеет ее), температура MC будет расти до тех пор, пока он не будет разрушен.
источник
смоделировать эту схему - схема, созданная с использованием CircuitLab
Приведенный выше код заставляет MCU выдвигать высокий уровень PB2, а низкий уровень PB4, и это создает короткое замыкание от VDD к PB2 до PB4 к GND, и драйверы портов PB2 и / или PB4 быстро срабатывают. Короткое замыкание может быть невинной ошибкой, такой как случайная пайка моста.
источник