Я попытался построить схему, как показано на рисунке ниже, где LDO+MCU содержит Atmega328P с питанием от LDO:
В катоде D3 имеется основной источник питания, напряжение которого может достигать 20 В для питания LDO и MCU. VUSB может быть 5В, если он есть.
Теоретически: если напряжение от J1 находится между минимальным рабочим напряжением и 5 В, я могу выбрать MCU для управления PWR_CTRL. В этом состоянии, если PWR_CTRL имеет ВЫСОКОЕ значение, питание потребляется от USB, в противном случае - от J1. Если напряжение от J1 составляет> 5 В, я всегда сливаю напряжение с J1 в соответствии с законами Кирхгофа.
На самом деле происходит вот что (среди прочих выдаваемых второстепенной важности):
Что мне здесь не хватает?
ПОЖАЛУЙСТА, обратите внимание, что цель вопроса состоит не в том, чтобы найти решение, которое работает, а в том, чтобы выяснить, почему у этого решения есть такие проблемы.
Вместо того, чтобы собирать воедино разрозненные части и надеяться получить желаемый результат, это можно сделать проще и устойчивее к глупостям с помощью специализированной микросхемы: LTC4412 от Linear Tech . Схема ниже должна помочь вам начать.
смоделируйте эту схему - схема, созданная с помощью CircuitLab
Обратите внимание, что PWR_CTRL в этой схеме имеет ВЫСОКИЙ уровень для выбора Vbus и НИЗКИЙ уровень для выбора Vusb, когда оба источника питания подключены.
Что мне здесь не хватает?
Q3 представляет собой P-канальный полевой транзистор и находится в схеме в перевернутом виде. Осмотрите на его корпусе диод в символе.
D1 может нагружать выход вашего MCU, если он не настроен как Open Collector.
ТриФазыУгорь
тексен
ТриФазыУгорь
тексен
тексен
Олин Латроп