(Отказ от ответственности в случае, если это не до боли очевидно - я очень n00b, особенно когда дело доходит до понимания транзисторов).
Я думал, что все выяснил - p-канальный MOSFET является (или может использоваться в качестве) переключателем на стороне высокого уровня для источника напряжения, отличного от того, на котором работает мой MCU. Чтобы проверить мое понимание, я собрал на макете следующее:
смоделировать эту схему - схема, созданная с использованием CircuitLab
Код на U1 (5 В Arduino) позволяет мне вести линию на высоком или низком уровне или переводить ее в состояние с высоким z для имитации всех 3 сценариев. Я ожидал, что при низком уровне линии светодиод будет светиться при 9 В, а при высоком уровне - выключить светодиод (0 В на стоке Mosfet). То, что на самом деле произошло, было - нет света вообще, а сток имел напряжение 6 В (5,9 В). Я совершенно сбит с толку - что здесь происходит?
Вот мосфет, который я использую: https://www.sparkfun.com/datasheets/Components/General/FQP27P06.pdf
Он должен управляться даже с помощью логического уровня 3,3 В, поэтому 5 В должно быть в порядке.
Есть несколько вещей, которые нужно изменить в вашей схеме:
Вы хотите вытащить затвор MOSFET до 9 В, а не VCC.
Как только вы это сделаете, вы не сможете напрямую использовать вывод LED_EN, потому что он, скорее всего, не будет 9V-толерантным.
Чтобы исправить это, вы можете использовать N-канальный MOSFET, чтобы опустить ворота P-FET.
Вам понадобится токоограничивающий резистор на светодиоде.
Вот диаграмма, которую я сделал для другого ответа :
Это приводит в движение двигатель, но та же схема работает для управления светодиодом (с дополнительным резистором). Я думаю, что связанный ответ также даст вам хорошую информацию, если я сам так скажу! :)
Удачи.
источник
Ваша схема как есть не будет работать вообще. Он всегда должен быть включен, потому что у вас всегда есть Vsg> Vthreshold. Вам нужен резистор 10 кОм, подключенный к линии 9 В, но он будет работать только в том случае, если ваш логический блок 5 В может блокировать до 9 В в режиме высокого Z. По сути, PMOS отключится, когда на стороне высокого напряжения будет то же напряжение, что и на затворе. Pmos включится, когда напряжение на затворе упадет ~ 0,7 В (Vthreshold) ниже напряжения источника.
Чтобы включить, вы захотите управлять высоким Z, а чтобы выключить, вам нужно снизить напряжение на затворе до 0.
источник