Микроконтроллер NXP LPC 4330 сильно нагревается и иногда не запускается

РЕДАКТИРОВАТЬ 3 Правильное решение показано ниже, в ответе TurboJ на самом деле эта точная проблема была упомянута в ошибках LPC4300 ES_LPC43x0:

введите описание изображения здесь

РЕДАКТИРОВАТЬ: Нет, извините, ложная тревога. Новая плата начала делать то же самое :(

РЕДАКТИРОВАТЬ 2: Я начинаю задаваться вопросом, виноват ли плохой макет. Показана шина +3V3. Поскольку плата является двухслойной, мне пришлось отказаться от традиционной плоскости питания, и питание обеспечивается одной 6-миллиметровой дорожкой. Я заметил, что проблема никогда не возникала на плате без установленных развязывающих конденсаторов, но начала возникать, когда я добавил конденсаторы 0,1 мкФ.

У меня есть плата с микроконтроллером LPC NXP 4330 (ARM Cortex M4/M0 dual core) в форм-факторе TBGA-100. Ситуация с питанием сложная, потому что у меня есть датчики, которым требуется прецизионное питание 4 В, поэтому основной источник питания должен быть с падением напряжения LDO выше 4 В, поэтому он питается следующим образом:

3,7 В Lipoly или USB (управляется через зарядное устройство MAX1555) -> 4,5 В повышающий/понижающий переключатель (встроенный переключатель TPS63061) -> 3,3 В линейный с низким падением напряжения (LP38691) -> LPC 4330

Я заметил, что при запуске микроконтроллер на секунду становится очень горячим (слишком горячим, чтобы его можно было коснуться), прежде чем установить более разумную температуру. Когда это происходит, я могу нормально общаться через JTAG и запускать свое приложение. Он всегда будет запускаться таким образом при подключении к настольному источнику питания 4,5 В (полностью минуя импульсный стабилизатор). Импульсный ток очень высок, до пары сотен мА, что подтверждает скачок температуры.

При подключении к коммутатору (благо он на другой плате, так что его легко обойти) иногда не запускается. Я предполагаю, что это связано с тем, что импульсный ток вызывает отключение коммутатора, потому что он переходит в режим перегрузки по току. Если я отключу коммутатор от нагрузки, сначала подключу аккумулятор, а затем снова подключу его к нагрузке, микроконтроллер нагреется (как обычно), а затем заработает.

Это нормальное поведение для LPC 4330? Кажется довольно необычным, что микроконтроллеру требуется несколько сотен мА для запуска (куда уходит весь этот ток?). Есть ли способ предотвратить этот начальный бросок тока, когда вся схема подключена.

Я включил схему, в понедельник мне нужно будет провести тесты по наращиванию поставок.

схема (основная микроплата)Основная плата микроконтроллера

схема (плата питания)Плата питания и разъема USB

макет, показывающий шину +3V3Макет с изображением шины +3V3

Схема и трассировка линии 3,3 В при запуске были бы полезны.
Я ненавижу такие схемы. Вы должны просмотреть всю схему, чтобы найти, к чему подключается сеть.
Это трудно прочитать, если у вас нет программного обеспечения, так как тогда вы можете просто ввести show <NET> в командную строку. В основном это нужно для того, чтобы оставаться в рамках ограничений бесплатного программного обеспечения Eagle (1 страница схемы)
Что произойдет, если вы удерживаете сброс процессора при включении?
Если я припаяю провод к земле вместо резистора на !RESET, ничего не произойдет. Не греется, но и из сброса процессор выйти не может. У меня нет переключателя сброса, поэтому нет возможности физически подтвердить !RESET после включения питания.
Хорошо, что вы разобрались. Вместо того, чтобы редактировать вопрос, предпочтительнее опубликовать решение как ответ, и вы можете пометить его как принятое, чтобы он не выглядел так, как будто он все еще ожидает решения.
К сожалению, это не было решением, все еще происходит на новой доске. Проблемы с запуском действительно больно диагностировать...
Если удержание ЦП в режиме сброса предотвращает всплеск мощности, тогда я буду менее подозрительным к блокировке и более подозрительным к войнам драйверов ввода-вывода. Или установлены неправильные компоненты поддержки; Однажды я видел нечто подобное, когда рядом с трансформатором Ethernet были установлены неправильные резисторы смещения. Можете ли вы попробовать изменить прошивку, например, чтобы остановить немедленно, а затем перемещать остановку после каждой конфигурации периферийного устройства, пока вы не выясните, где возникает текущий всплеск?
Я пробовал это, но похоже, что это произойдет, если строка !RESET вообще подтянется. Кроме того, проблема не сохраняется, когда код работает, он нагревается, а затем остывает до приемлемой температуры.

Ответы (2)

Одним из возможных источников блокировки является USB_VBUS. Техническое описание LPC43xx позволяет VBUS быть 5 В только при наличии VCC, но в вашем случае это занимает небольшое время, пока регуляторы не запустятся. Рассмотрите возможность добавления резистора на этом пути.

Еще одна проблема — это переключатель включения ПЛИС 3V3 LDO. Он будет включен по умолчанию, так как контакты GPIO имеют «слабый высокий уровень», когда они не настроены. Результирующий уровень напряжения достаточно высок, чтобы включить регулятор. Контакт SNSдолжен быть подключен к VOUT, если он есть. Вы должны изменить рисунок в случае, если они не являются.

Я попытался протестировать его только с батареей (вообще не подключен USB), и он все равно будет защелкиваться / нагреваться, но похоже, что это потенциальная проблема. Я заметил, что во многих конструкциях будет использоваться LM3526-H (переключатель питания USB), но это кажется излишне сложным, поскольку мне не нужно делать ничего необычного с USB (например, без OTG). Будет ли добавление резистора к VBUS просто ограничивать ток или увеличивать время нарастания?
Кроме того, на упаковке LDO, которую я использую, нет контакта SNS, как ни странно, есть контакт N/C, где SNS существует на других пакетах. Я оставил SNS в символе схемы, потому что он есть в альтернативных пакетах, но, думаю, я мог бы переименовать его в SNS/NC. Это должно быть нормально, что FPGA LDO запускается, он существует только для того, чтобы дать микро-гибкость для отключения FPGA, если это необходимо для экономии энергии.
Извините, что поднимаю старую тему, но это было то, что нужно! Я изменил это на принятый ответ.

NXP 4330 в соответствии с IEC 60134 абсолютный максимальный ток не должен превышать 100 мА. Устройство рассчитано на 80 мА при 200 МГц при 3,3 В. Похоже, он рассеивает гораздо больше, чем это, поэтому я подозреваю

если источник питания имеет медленную рампу запуска, внутренняя нестабильность может вызвать колебания максимальной частоты, поэтому может помочь сброс при включении питания. Естественно, если микросхема начинает колебаться от 2 до 3 В, а напряжения на интерфейсе превышают этот уровень, могут возникнуть отказы защелки, когда токи короткого замыкания могут превышать 150 мА на порт, поэтому проверьте мощность на линейных изменениях последовательности на осциллографе с токовым шунтом. Убедитесь, что переключатель интерфейса имеет достаточно низкое сопротивление для быстрого переключения.

Интересно, имеет ли к этому какое-то отношение компоновка, поскольку мне пришлось использовать двухслойную конструкцию (поэтому, несмотря на то, что заземляющая плоскость в основном не повреждена, нет силовой плоскости, только дорожки, которые подают питание). Однако, если проблема заключается в медленном разгоне, не усугубляет ли проблему увеличение емкости (в виде плоскости питания)? Поможет ли добавление конденсатора к сигналу !RESET (тем самым задерживая начало выполнения программы)?
Если питание отключится через несколько секунд, нет проблем. Если он переключается через 100 мс, это большая проблема. Даже при 100 мкФ на борту переключатель 0,05 Ом включается за 5 мкс. Проверьте время нарастания и напряжение и заподозрите свой переключатель. !RESET всегда больше, чем напряжение нарастания в наихудшем случае. Так да.