(Отказ от ответственности в случае, если это не до боли очевидно - я очень 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 В должно быть в порядке.