Да, это хайку. (РЕДАКТИРОВАТЬ: исправил это ... теперь это на самом деле Хайку)
Нет, я не улыбаюсь.
Я делаю стандартное тестирование; видя, что происходит, когда один из двух силовых шин замыкается на GND на разработанной мной плате. Мы говорим о шине 12 В, питаемой настольным источником питания, с отдельным встроенным понижающим преобразователем 5 В, который питает другую шину на печатной плате (к которой подключен мой ATmega328PB).
На 12-вольтовой рейке есть несколько цилиндрических домкратов, которые будут доступны конечным пользователям. Поэтому, естественно, я решил вкрутить ювелирную отвертку в одну из них, чтобы провести тест на короткое замыкание.
Смотри, клуб дыма от моего ATmega328PB.
Я думаю, что это означает, что произошло одно из следующих событий:
Схематическое время
Вот схема соединений с ATmega328PB:
Вот все схемы вещей в проекте, которые имеют соединение с шиной 12 В (шина VBAT +) и которые управляют путями возврата тока GND:
А вот схема стволовых разъемов и соответствующих выводов обнаружения разъема (обратите внимание, что они подключаются непосредственно к некоторым из выводов ATmega328PB без последовательного сопротивления):
План короткого замыкания
План устранения коротких замыканий на 12-вольтовой шине состоял в том, чтобы просто отключить N-канальный FET LOAD_FET из-за одного из двух логических условий, встречающихся в прошивке:
- Выборка АЦП с частотой 1 Гц выявила бы состояние перегрузки по току и заставила переключатель FET_LOAD прекратить проводку, тем самым отключив ток короткого замыкания
- Напряжение, подаваемое на ATmega, перейдет в состояние отключения, и MCU сбросит и инициализирует переключатель FET_LOAD в положение «выкл.», Таким образом отключая ток короткого замыкания
Большой дым
Вот осциллографический зонд того, что происходит с шиной Vbat + на канале CH1 (желтый) и шиной +5 на канале CH2 (синий) при замыкании Vbat + на GND посредством применения ювелирной отвертки к оголенным проводам кабеля, который подключен к Цепь с цилиндрическим гнездом (я не вставляла отвертку в розетку ), пока она питается от настольного источника питания, настроенного на 12 В при 5 А:
После того, как это произошло, ATmega просто очень сильно нагрелся, когда бы я ни включил плату, и фактически действовал как короткое замыкание между его входом + 5V и заземлением сигнала. Я распаял ATmega горячим воздухом и проверил FET_LOAD N-канальный FET, чтобы увидеть, был ли он зажарен. Действительно, он потерпел неудачу так, что больше не выключался и не включался полностью, когда напряжение затвора подавалось на +5 или на землю сигнала, а вместо этого работал где-то в сумеречной зоне между ними. При падении ~ 200 мА он падал примерно на 2,3 вольт, независимо от того, был ли он включен или выключен, когда нагрузка была подключена к гнезду ствола.
ломоть
Было предчувствие, что из-за повреждения полевого транзистора причина повреждения ATmega могла быть вызвана передачей высокого напряжения через сток полевого транзистора к его затвору и к MCU. Провел несколько последующих тестов с более низким напряжением, питающим 12В рельс. Обратите внимание, что первые три изображения в основном одинаковы, но с разными пиковыми токами. Как только ATmega отключается (из-за падения напряжения на шине Vbat +), сигнал LOAD_GND_ENABLE, подаваемый MCU (синий, ниже), в свою очередь становится низким, отключая переключатель FET_LOAD .
Условные обозначения:
CH1 = напряжение на Rshunt (0,005 Ом) CH2 = напряжение на сигнале LOAD_GND_ENABLE (подключено к ATmega)
Vbat + подается на 6V:
Vbat + подается на 7V:
Vbat + подается на 8В:
Vbat + подается на 9V:
На этом последнем, ток никогда не прекращал увеличиваться, и сигнал LOAD_GND_ENABLE исполнял фанк-танец, но в целом могло показаться, что максимальные пределы никогда не нарушались на выводе LOAD_GND_ENABLE (по крайней мере, я не думаю, что они были ... У меня есть только 2-канальный прицел, и мне пришлось бы измерять шину + 5 В, чтобы узнать, какое напряжение на LOAD_GND_ENABLE относительно Vcc).
Следующие шаги
У меня есть только 1 доска, которой можно пожертвовать, поэтому я планирую:
Используйте пустой ATmega328PB, чтобы все его контакты были по умолчанию настроены на высокую импеданс без периферийных устройств, настроенных / инициализированных. Повторите тест на короткое замыкание, чтобы убедиться, что ATmega328PB все еще остается в дыму. Если он не выходит из строя, то MCU, должно быть, вышел из строя, потому что он искал / пропускал слишком большой ток из одного из своих выводов, сконфигурированных как выход, когда он выполнял прошивку в предыдущих тестах.
Тест с ATmega328PB, установленным на коммутационной плате (к сожалению, этот чип не поставляется в DIP-пакетах), подключенной к печатной плате с помощью проводов. Выборочно начинайте подключать по одному муховику за раз, запустите тест и посмотрите, какой из них окажется тем, который отвечает за жарку ATmega328PB.
Закажите новую типовую печатную плату с измененной компоновкой, чтобы все дорожки, подключенные к ATmega328PB, были соединены паяными перемычками, которые можно паять вручную во время тестирования. Таким образом, тест на короткое замыкание (и любое другое тестирование) может проводиться с ATmega, подключенным к ограниченному количеству сигналов одновременно, и позволяет легко подключать все другие внешние схемы к этим мостам припоя для управления ими независимо от ATmega ,
Да, это действительно вопрос (ы)!
И вопрос (ы):
- Кто-нибудь видит здесь что-нибудь, чего не вижу я? Это очевидно? Я надеюсь, что это не очевидно ...
- Каким будет ваш следующий шаг?
источник
Ответы:
Я думаю, что ваш переключатель в строке LOAD_GND, вероятно, является виновной стороной, в сочетании с незащищенными линиями обнаружения разъема к микро (что, я хотел бы отметить, связано с LOAD_GND для любого разъема, в который НЕ вставлен штекер).
Подумайте, что произойдет, если вы выключите этот Mosfet (Разъем для обнаружения линий в любом разъеме без вставленного разъема будет подключен к напряжению батареи через короткозамкнутую нагрузку, возникнет дым), у вас должно быть, по крайней мере, некоторое последовательное сопротивление и зажим на гнезде обнаруживают линии (скажем, 10k или около того и пару диодов), но неужели я не вижу, что переключатель LOAD_GND действительно покупает вас через переключатель на верхней стороне?
Между прочим, автомобильная сцена имеет действительно хорошие логические переключатели на верхней стороне со встроенным отключением по току и измерением тока, которые стоит посмотреть.
источник
Это означает, что вы кладете +12 В на незащищенную
JACK_DETECT
линию, обжаривая MCU. Смотрите "напряжение на любом контакте [..]" выше.Перепроектируйте цепь, в которой происходит короткое замыкание,
VBAT+
иJACKx_DETECT
не допускается повышение напряжения на выводе MCU выше VCC - например, с помощью резистора и диода.источник
Видимо не могу комментировать (пока). Но я изменил свой ответ, чтобы согласиться с вышеизложенным, с последующим наблюдением.
Один из пунктов, на который я бы обратил внимание, - это убедиться, что ваши FET находятся в хорошем состоянии (pullup / pulldown), когда ATMega находится в состоянии загрузки / сброса. Контакты обычно устанавливаются в режим ввода IIRC, что приводит к смещению затвора FET и плохому Vgs-накопителю, что увеличивает сопротивление канала. Если ток, протекающий между соединениями стока и источника, будет значительным, он быстро перегреет / разрушит полевой транзистор.
источник