Прерывистый сброс MCLR на PIC32 - включает переключение электромагнитов

Я работаю над проектом, который включает в себя много переключений электромагнитов.

Коммутация управляется микроконтроллером серии PIC32MX6xx, который определяет требуемые состояния 80 электромагнитов 12 В постоянного тока (каждый рисунок около 15-200 мА) и выводит эти данные на серию взаимосвязанных сдвиговых регистров 74HC595. Выходы этих сдвиговых регистров включают и выключают полевой МОП-транзистор, который, в свою очередь, включает соответствующий электромагнит.

Проблема, с которой я сталкиваюсь, заключается в том, что при переключении электромагнитов PIC периодически перезагружается. Нет никакой конкретной последовательности/нагрузки переключения, которая вызывает этот сброс - это происходит совершенно случайно. Иногда для сброса требуется около 30 секунд переключения, а иногда почти 15 минут.

Что я точно знаю, так это то, что имеет место сброс MCLR — я определил это, отслеживая регистр RCON, где при каждом таком сбросе устанавливается бит флага EXTR (событие сброса MCLR). Это начальная схема PIC, с особым вниманием к выводу MCLR и развязывающим конденсаторам, как рекомендовано в техническом описании PIC.

Выводные и развязывающие конденсаторы MCLR

Из схемы видно, что между GND и переключателем есть резистор 1k, а также подтягивающий резистор 10k на выводе MCLR. Приняв к сведению рекомендацию по установке конденсатора на выводе MCLR для предотвращения непреднамеренного сброса, я добавил керамический конденсатор емкостью 100 нФ между выводом MCLR и GND. Тем не менее, сбросы все еще происходят с перерывами, хотя кажется, что интервал между сбросами был больше, чем без конденсатора.

В надежде исключить возникновение сброса, я заменил резистор 1k между переключателем и GND, а также резистор 10k между выводом MCLR и VDD на резисторы 0 Ом (короткое замыкание). Это гарантирует, что вывод MCLR всегда подключен к VDD. Конденсатор на 100 нФ тоже присутствовал. Таким образом, единственным компонентом, подключенным к выводу MCLR, является конденсатор емкостью 100 нФ между выводом MCLR и GND. Тем не менее, периодические сбросы продолжают происходить.

Система питается от промышленного трансформатора с 380 В переменного тока, 3-фазным входом и 12 В постоянного тока на выходе. Этот выход 12 В постоянного тока затем является входом для двух стабилизаторов напряжения LM1085 - один с выходом 5 В (питание всех логических микросхем), а другой - 3,3 В (питание PIC). Цепь подавления перенапряжения, состоящая из металлооксидного варистора и демпферного диода, также установлена ​​непосредственно перед входами регулятора напряжения (входы 12 В постоянного тока).

Схема переключателя MOSFET для каждого электромагнита выглядит следующим образом:Схема включения электромагнита

Как видно, схема переключения представляет собой топологию схемы переключения верхнего плеча (общий отрицательный), в которой для переключения используются транзисторы NMOS и PMOS. Обратите внимание, что здесь также установлен демпфирующий/обратноходовой диод. Светодиод предназначен исключительно для индикации состояния электромагнита. Это схема, используемая для каждого электромагнита в системе.

Поскольку вывод MCLR является сигналом с активным низким уровнем, единственное событие, которое я могу предвидеть, которое вызовет событие сброса, — это кратковременное падение VDD (поскольку вывод MCLR напрямую подключен к VDD). Однако, поскольку VDD обеспечивается стабилизатором напряжения LM1085, я предполагаю, что внезапный «положительный» скачок напряжения на источнике питания 12 В постоянного тока не вызовет такого падения выходного напряжения регулятора напряжения. Таким образом, единственное объяснение, которое я могу придумать, заключается в том, что напряжение питания, вероятно, на мгновение падает до такого уровня, что вызывает достаточно низкое напряжение на линии VDD, которое запускает событие сброса MCLR, хотя я не могу понять, как это могло бы произойти. случаться. Единственная другая возможность, на мой взгляд, может заключаться в том, что скачок напряжения распространяется на сигнал GND,

Некоторые ответы на возможные ожидаемые вопросы:

  • Подключение обратноходовых диодов непосредственно к электромагнитам нецелесообразно из-за расположения электромагнитов. Поэтому обратноходовые диоды размещаются вместе со схемой переключения полевого МОП-транзистора на печатной плате схемы управления.
  • Все выходы схемы управления подключаются к блоку Крона, где также подключаются линии положительного сигнала электромагнитов. Расстояние от блока Krone до самих электромагнитов составляет от 2 до 10 метров.
  • В настоящее время у меня нет доступа к осциллографу, чтобы увидеть, что на самом деле происходит на линиях VDD и MCLR.

Учитывая меры предосторожности, которые я уже принял против скачков напряжения, чего мне еще не хватает? Крайне важно, чтобы PIC не сбрасывался с перерывами, как это происходит сейчас.

Входы, советы и комментарии будут с благодарностью.

Заранее спасибо.

Этот выход PIC привязан НЕПОСРЕДСТВЕННО к затвору этого полевого МОП-транзистора?
Превосходный вопрос.
@Trevor: Нет, это выход сдвигового регистра, который напрямую связан с затвором N-канального MOSFET. Это беспокоит?

Ответы (3)

Это сильно пахнет обратными токами соленоида и индуктивными путями отдачи, которые не обрабатываются должным образом. На соленоидах наблюдаются большие и быстрые скачки напряжения. Иногда одной из этих пар достаточно, чтобы микроконтроллер запутался в его внутренней логике. Механизм сброса срабатывает, но не внешним выводом MCLR.

Абсолютно первое, что вы должны сделать, это ДОБАВИТЬ БАЙПАСНУЮ КОЛПАЧКУ на контакты питания и заземления микроконтроллера! Поместите керамический колпачок емкостью 1 мкФ как можно ближе между выводами питания и заземления. Это именно тот симптом, который может вызвать отсутствие байпасной крышки.

Помимо этого, есть еще два очевидных подозреваемых: плохо спроектированные пути питания и обратного тока, а также плохо обработанные индуктивные отдачи.

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

В идеале к соленоидам и цифровым схемам должны подаваться питание и земля по отдельности, причем они подключаются только в одном месте рядом с источником питания. Тогда, конечно, должен быть надлежащий обход мощности в каждой точке использования на цифровой стороне.

У вас есть диод, который должен улавливать индуктивную отдачу, но вы не показали никаких характеристик. Нет, 1N400x здесь не подходит. Я бы предпочел диод Шоттки из-за их очень быстрого времени отклика.

Расположение диода также важно. Хорошо иметь некоторую защиту в цепи вашего драйвера на случай, если что-то случится, но чтобы действительно справиться с индуктивной отдачей, ее следует шунтировать как можно ближе к источнику. Вы хотите сдержать неприятный ток в как можно меньшем и локальном контуре. Маленький размер сводит к минимуму его излучение и емкостную связь с другими объектами. Local не позволяет ему вызывать скачки земли и тому подобное в других частях схемы.

В качестве эксперимента попробуйте добавить диоды Шоттки в обратном порядке к каждому соленоиду прямо у соленоида . Возможно, вы не сможете поместить их в финальную версию, но все равно проведите эксперимент, чтобы посмотреть, изменится ли что-то.

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

Большое спасибо за ответ, Олин. Как указано в техническом описании, существует множество шунтирующих колпачков, как можно ближе к контактам питания и заземления PIC. Я абсолютно уверен, что байпасных колпачков достаточно, но я просто перепроверю. Согласно моим предыдущим ответам на комментарии других авторов, одним определенным виновником является использование общих обратных путей заземления (и линий электропитания) к соленоидам и от них. Их разделение, безусловно, является одним из улучшений системы. В настоящее время у меня есть диоды 1N4007, и я заменю их диодами Шоттки в соответствии с вашим предложением.
предыдущий комментарий продолжение Я уверен, что у меня есть хорошая идея, как улучшить дизайн вокруг земли и линий электропередач. Самая сложная часть для меня, чтобы правильно понять / решить, — это обработка индуктивной отдачи. Крайне сложно добраться до настоящих соленоидов, чтобы добавить диоды для эксперимента. Лучшее, что я могу сделать, это построить небольшую установку с такими же соленоидами, смоделировать реальную систему и посмотреть, что произойдет. Что касается вашего предложения по диодам Шоттки, то являются ли они обычно лучшим выбором, чем стандартные диоды 1N400x для такого приложения?
@wave: диоды Шоттки обычно лучше подходят для улавливания индуктивной отдачи из-за их быстрого времени отклика. Это важно, если используется ШИМ, когда ток от предыдущего импульса все еще течет, когда начинается новый импульс. 1N400x слишком медленные для этого. Из-за меньшего падения напряжения Шоттки они позволяют току циркулировать немного дольше, прежде чем затухнуть. Это может замедлить время выключения реле. Об этом позаботится последовательный резистор нужного размера. По сути, таким образом вы получаете управляемое конечное напряжение отдачи.
Я понимаю, что вы имеете в виду под диодами Шоттки. В моем случае ШИМ не происходит, но если можно использовать лучший диод, то кажется логичным улучшить конструкцию в этом аспекте. Я просмотрел таблицы данных нескольких диодов Шоттки, и 1N5819 кажется подходящим выбором для моего приложения. У меня есть еще один вопрос, который я хочу задать, но я отправлю вам сообщение в чате, так как он отличается от первоначального вопроса.

Давайте рассмотрим ваши возможности.

PIC имеет множество путей сброса с различными флагами регистров, чтобы указать источник сброса. MCLR является одним из них. Вы уже пробовали подключить MCLR непосредственно к шине питания для PIC, поэтому вы можете исключить шум на этом контакте как источник этого события.

PIC также оснащен функцией сброса при включении питания, которая происходит, если питание отключается и снова подается. Я предполагаю, что вы говорите, что флаг EXTR установлен, что установлен ТОЛЬКО этот флаг, то есть все остальные флаги не установлены. Таким образом, вы не потеряли питание на чипе.

Точно так же мощность не падала, и не устанавливался флажок отключения питания.

Итак, что нам остается... Чип сделал что-то внутри, что вы не можете объяснить.

Что может быть причиной этого? Микросхема имеет внутренний регулятор напряжения для управления внутренней схемой и требует наличия колпачка C1. Колпачок должен быть очень близко к контакту VCAP. Я предполагаю, что пока вы следовали этим инструкциям.

Итак, если предположить, что все вышесказанное верно, и мы знаем, что сброс происходит при переключении соленоидов, что может произойти?

Вы не указали в своих рисунках или тексте, как подключены обратные пути (массы) для соленоидов. Однако положение обратноходового диода D5 предполагает, что заземление нагрузки и логики общее. Это было бы ошибкой. Заземления от соленоидов должны возвращаться к регулятору 12 В по их собственному пути, отдельному от системы заземления 5 В, и обратный диод должен быть подключен к этой земле. Невыполнение этого требования может привести к значительному всплеску или смещению заземления PIC, что приведет к непредсказуемым внутренним последствиям.

Поскольку длина ваших выводов очень велика, я бы также предложил добавить небольшую демпферную цепь (RC) через обратный диод.

Далее, глядя на вашу схему драйвера, я не вижу резистора на затворе Q25.

МОП-транзисторы имеют значительную емкость на затворе как стока, так и истока. Это означает, что на выходе 74HC595 будет значительный всплеск тока при включении и выключении MOSFET. Кроме того, когда вы выключите его, сток будет близок к 12 В, и 74HC595 должен будет снизить это напряжение с конденсатора затвор-исток. Как это связано с PIC и что это делает с внутренними компонентами PIC, неясно.

Спасибо за ответ. К сожалению, я не проверял, были ли установлены какие-либо другие флаги, кроме флага EXTR после сброса. Это, безусловно, то, что мне придется перепроверить, чтобы быть уверенным. Конденсатор находится примерно в 12 мм от контакта VCAP из-за разводки дорожек других контактов. Как вы указали, основания между электромагнитами и логикой действительно общие, что действительно является красным флагом. Что касается демпферной цепи на обратноходовом диоде, какая для этого будет подходящая постоянная времени? ** продолжение комментария в новом комментарии после этого **
** продолжение предыдущего комментария ** В затворе Q25 действительно нет резистора. Ваш комментарий по этому поводу вызывает возможное объяснение другого явления - в некоторых отдельных случаях некоторые транзисторы оставались «включенными» после того, как выходы 74HC595 изменились на 0 (выкл.). Когда эти электромагниты нужно было снова включить, NMOS-транзисторы сгорели (указанный максимальный ток для NMOS-транзисторов составляет 0,5 А, а для PMOS - 4,2 А). Это еще одна проблема, которую мне еще предстоит решить. Я скоро начну отдельную тему по этому поводу и поставлю ссылку в исходный вопрос.
@wave.jaco Демпфер RC должен быть не менее *10 вашего минимального времени переключения. Да, этот небольшой встроенный резистор помогает обеспечить большую изоляцию при работе с индуктивными нагрузками, которые создают довольно неудобные пики. Вероятно, по той же причине целесообразно добавить еще один над N-каналом к ​​воротам P-канала.
Спасибо за разъяснения по поводу постоянной времени демпфера RC. Этот встроенный резистор на транзисторах может быть именно тем, что необходимо для предотвращения повреждения транзисторов, как я упоминал в своем предыдущем комментарии. Я предполагаю, что он также защитит 74HC595 от этих шипов? В тех случаях, когда транзисторы были повреждены, как я описал, соответствующий 74HC595 также был сожжен. Какое значение будет подходящим для этого резистора? Если я правильно понимаю, этот резистор будет просто рассеивать этот заряд медленнее, чем сейчас (при коротком замыкании)?
предыдущий комментарий продолжение Возвращаясь к проблеме земли между электромагнитами и остальной частью системы. Ранее вы упомянули, что у электромагнитов должен быть свой собственный путь возврата к земле, отдельный от остальных путей возврата системы к земле. Правильно ли я понимаю, если я говорю, что заземление электромагнитов должно идти непосредственно на землю трансформатора постоянного тока 12 В, и что остальная часть системы (системная логика 5 В и PIC) может иметь другой, но общий заземление? путь к той же земле трансформатора 12 В постоянного тока?
@wave.jaco да, основания должны встретиться где-то до регулятора U1. Если есть длинные провода от платы обратно к источнику, вам может понадобиться дополнительная фильтрация на входе регулятора. Большой объем и быстрый байпас. НАБЛЮДАЙТЕ за смещением Vgd на n-канальном MOSFET, которое вызовет разделение земли. Если его становится слишком много, вам может потребоваться оптоизоляция.
@wave.jaco Re-in-lines ... ваша миссия - ограничить ток на выводе микросхемы, но это также замедлит время переключения MOSFET, поэтому слишком большой - это плохо. Некоторые эксперименты оправданы.

Не менее 4 путей для нарушения работы MCU (1) связь электрических полей с MR (2) связь магнитных полей (3) разрушение VDD или перенапряжение VDD (4) выход из строя GND, что с обратными путями FET, разделяющими GND с MCU

Давайте сначала обратимся к (4):

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

Интересно, что ЛОКАЛЬНАЯ БАТАРЕЯ в драйверах полевых транзисторов, использующая катушки индуктивности 1 мкГн в линии 12 вольт, с Rdampen 0,03 Ом, изолирует мусор драйвера полевых транзисторов. Этот 1 мкГн должен выдерживать большой ток: 30 соленоидов * 0,2 ампера = 6 ампер.

Обратите внимание на разделение GND между драйверами FET и MCU. Делая ЛОКАЛЬНУЮ БАТАРЕЮ, переходные токи в GND очень малы; конденсатор емкостью 1000 мкФ обеспечивает импульсные токи; если переключение соленоида занимает 10 мкс при токе 0,2 ампера, нарушение VDD в FET Drivers составляет

г В / г Т знак равно я / С
г В знак равно я * Т / С

г В знак равно 0,2 а м п * 10 ты С / 0,001 Ф а р а г знак равно 2 е 6 / 1 е 3 знак равно 2 м я л л я В о л т с

Если ЛОКАЛЬНАЯ БАТАРЕЯ не останавливает сбросы, то может помочь экранирующая пластина. Чтобы зафиксировать ввод заряда Efield, привяжите экран КОРОТКИМ ПРОВОДОМ к ЗАЗЕМЛЕНИЮ MCU; Вы используете Ground Plane под MCU?

===========================================

Какое расстроенное напряжение из-за быстро переключаемых токов через МОП-транзисторы? [предупреждение: этот пример предназначен для того, чтобы расстроить вас, чтобы побудить вас заняться планированием печатной платы (или нескольких печатных плат) и контуров. ]

Предположим, у вас есть 0,2 ампера, переключение за 5 наносекунд. Течет по длинному проводу. Магнитное соединение в петлю размером 0,1 м * 0,1 м (квадрат 4 дюйма). Чему равно индуцированное напряжение, если расстояние равно 10 см (0,1 м)?

Используйте формулу

В я н г ты с е знак равно [ М U 0 * М ты р * А р е а / 2 * п я * Д я с т а н с е ] * г я / г Т

Площадь = 0,1*0,1 = 0,01 метра. Расстояние 0,1 метра. Mu0 равно 4*I*10^-7. Формула становится

В я н г ты с е знак равно 2 е 7 * А р е а / Д я с т а н с е * г я / г Т

Vinduce = 2e-7 * 0,01/0,1 * 40 миллионов ампер/сек Vinduce = 2e-7 * 0,1 * 40e+6 = 8 * e-7 * e+6 = 8 * e-1 = 0,8 вольт.

Одновременное переключение двух полевых транзисторов: 1,6 В. Одновременное переключение трех полевых транзисторов: 2,4 В.

Итак, давайте пересмотрим систему GND:

схематический

смоделируйте эту схему

Спасибо за ответ. Как указал Тревор, общие основания между драйверами/электромагнитами FET и MCU являются весьма вероятной причиной сброса. Что касается концепции МЕСТНОЙ БАТАРЕИ, вы предлагаете мне добавить катушку индуктивности 1 мкГн и 1000 мкФ на каждые 30 магнитов? Если сбой VDD (на основе ваших расчетов) составляет 2 мВ на магнит, будет ли это складываться пропорционально, если несколько магнитов переключаются одновременно? Кроме того, что вы подразумеваете под «импульсными токами», которые обеспечивает конденсатор емкостью 1000 мкФ? Под MCU находится наземная плоскость. Вся «неиспользуемая» поверхность на печатной плате представляет собой заземляющий слой.
Крышка 1000 мкФ может питать все 100 соленоидов, если хотите. Обратите внимание на резистор 0,03 Ом слева от 1 мкГн. Это значение выбирается из sqrt(L/C) для демпфирования, чтобы предотвратить звон этого L+C. Длинные провода к соленоидам при 1 мкГн/метр (эмпирическое правило) являются еще одной причиной звона. Вы можете сместить переключение, используя различные значения резисторов от регистра сдвига до затворов полевого транзистора; но delta_R 100 Ом * 1000 пФ Cgate составляет всего 100 наносекунд изменения задержки. Попробуйте припаять провод #22 параллельно существующему заземлению, чтобы связать вместе различные части заземления. Да, эти 2 мВ складываются.
Правильно ли я понимаю, что вы имеете в виду, что крышка на 1000 мкФ отфильтровывает импульсные токи, а не обеспечивает их? Спасибо за разъяснения по поводу резистора 0,03 Ом. Я вижу, что ваша схема говорит, что это 100 Ом. Это просто опечатка, или этот резистор есть в дополнение к резистору 0,03 Ом, таким образом, всего 100,03 Ом осталось от катушки индуктивности 1 мкГн? Под «переключением в шахматном порядке» вы имеете в виду добавление резисторов различных номиналов к затворам полевого транзистора, чтобы учесть среднюю возможную длину проводов к электромагнитам? Я не слишком уверен, что вы подразумеваете под этим «ошеломлением».
Этот резистор должен быть 0,03 Ом; спасибо за упоминание этой ошибки. Что касается импульсных токов, поскольку полевые транзисторы резко подают ток на соленоиды, мы хотим, чтобы переходные токи питались локально от конденсатора емкостью 1000 мкФ; индуктор - это просто способ дополнительно стимулировать переходные процессы ТОЛЬКО от 1000 мкФ; что 0,03 демпфирует LC-контур. Постоянный ток для соленоида будет проходить через 0,03 Ом + 1 мкГн. Чтобы сместить переключение, вы можете переключать полевые транзисторы с различными задержками, но ваши 100 управляющих сигналов поступают из этого сдвигового регистра. Вам понадобятся задержки RC, плюс Шмиттс.