Советы по arduino для начинающих: 10 способов убить микроконтроллер
Первое что приходит на ум, это что-то из списка: кинуть ее под каток, сжечь в костре, утопить или ударить по микроконтроллеру чем-то тяжелым. Идеи хорошие, а главное действенные. В этот раз мы все же рассмотрим как новички, сами того не ведая, могут вывести из строя плату arduino. Не стоит думать что с bluepill от STM32 дела обстоят иначе. В данной статье arduino использовано только для примера. Все ниже описанное распространяется практически на любой микроконтроллер.
Способ №1: Короткое замыкание пина IO на землю.
Представим ситуация что вы сконфигурировали pin на выход и установили логическую единицу на нем. Рассмотрим схему как потечет ток в случае замыкания его землю.
В даташите на микроконтроллер Atmega328 указано, что максимальный ток через любой из пинов IO не должен превышать 40мА. В то же время его сопротивление не превышает 25 Ом. Как результат имеем превышение максимально допустимого тока в 5 раз. Первое что приходит на ум — защитить все выходы плавкими предохранителями, но есть более правильное решение (в его правильности вы убедитесь ниже): использовать стабилитрон и резистор на 220 Ом:
Способ №2: Замкнуть два пина между собой
Эта ошибка аналогична предыдущей. Если на одном выводе микроконтроллера установить высокий логический уровень, а на другом низкий и замкнуть эти выводы между собой, то путь по которому потечёт ток будет следующим
Как видно, протекающий ток опять таки ограничивается только внутренним сопротивлением. Чтобы предотвратить подобные ситуации можно использовать схему защиты предложенную выше.
Способ №3: Приложить к выводу микроконтроллера повышенное напряжение
Как следует из заголовка, если приложить к любому выводу ардуино напряжение выше 5,5В, то можно сжечь не только микроконтроллер.
Рассмотрим как в Atmega328p реализована защита от статического электричества.
При кратковременном превышении напряжения на пине более чем на 0,5В сработает защита от статического электричества. Но диоды не рассчитаны на долговременную работу в таком режиме и при длительном воздействии сгорят, оставив вывод без защиты от перенапряжения. Путь прохождения тока будет следующим.
Напряжение выше 5 вольт поступает на линию питания и может сжечь остальные компоненты, например микросхему USB интерфейса. Для предотвращения подобных неприятностей применяется стабилитрон в схеме защиты, которая используется выше.
Способ №4: Перепутать полярность источника питания
Посмотрим по какому контуру потечет ток, если перепутать полярность источника питания arduino. Величина приложенного напряжения при этом не играет особой роли. Хватит и стандартных 5В чтобы сжечь контроллер.
Способ №5: Запитать arduino от повышенного напряжения
При подаче питания 6В и выше, многие компоненты на плате выйдут из строя. Если в это время плата подключена к компьютеру по USB, то сгореть может и сам порт. В худшем случае может и до южного моста дойти дело. Так что не рекомендуется вообще подавать внешнее питание на плату подключенную к компьютеру. Рассмотрим контур прохождения тока.
Способ №6: Подать повышенное напряжение на пин 3.3В
При этом сгорит не сама ардуинка, а подключенная к этой линии периферия. Если подать более 9В, то это чревато также выходом из строя регулятора напряжения и прохождением тока дальше по цепи. При этом есть риск пробоя и попаданием повышенного напряжения на порт USB. К несчастью на этой линии уже сидит контроллер и микросхема интерфейса, который также выйдут из строя.
Как и в предыдущем случае, защита реализуется при помощи компаратора. Достаточно пересчитать делитель на не инвертирующем входе операционного усилителя, чтобы на нем было 2.4В при входном напряжении 3.3В.
Способ №7: Закоротить Vin на землю
Этот способ может сжечь защиту от переполюсовки описанную выше. Если закоротить пин Vin на землю, то ограничиваться ток будет только защитным диод и сопротивлением проводников печатной платы. При таком раскладе сгореть может не только диод, но и тонкие проводники.
Для защиты от подобных ситуаций стоит поставить само-восстанавливающийся предохранитель на 500мА последовательно с диодом. В крайнем случае можно обойтись обычным плавким предохранителем на такой же ток.
Способ №8: Подать внешнее питание при подключенной нагрузке к Vin
Подав питания напрямую на выход стабилизатор, при подключенных сторонних модулей на его вход, стабилизатор выйдет из строя. Ток через него пойдет в обратном направлении, так как защита от подобного не реализована.
Способ №9: Подать напряжение выше 13В на пин RESET
Этот пин напрямую соединяется с одноименным выводом Atmega328p и при подаче завышенного напряжения на него (больше 13 Вольт), микроконтроллер выйдет из строя.
Защититься от подобных ситуация можно подключив вывод RESET микроконтроллера через токо-ограничивающий резистор номиналом 1кОм, как показано на схеме:
Способ №10: Превысить общий ток микроконтроллера
В самом первом способе был упомянут максимальный ток в 40мА. Это значит что один порт может максимально пропускать через себя 40мА, но это не значит что 10 пинов смогут пропустить 400мА. В даташите на микроконтроллер, есть такая характеристика как максимальный общий ток микроконтроллера. Для Atmega328p он составляет всего 200мА. Превышение этого значения приведет к выходу микросхемы из строя.