Yellow Rabbit

Огонь по сути такая простая вещь

Почувствовать себя Прометеем с Raspberry Pi

Как человек, не знающий за какой конец держать паяльник, я очень опасаюсь повредить Raspberry Pi. Поэтому мне хочется получить ясное представление как устроены эти GPIO чтобы не поджарить их.

Упрощенно каждый GPIO можно представить как пару полевых транзисторов с плавающим затвором:

CMOS output

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

Итак, у нас имеется два транзистора, один из которых открыт. Какой? Зависит от уровня на Input: если там 0, то открыт U2 (у него канал типа P и он сужается при положительном заряде на затворе 1), если же там 1, то открыт U1 (у него канал типа N и он расширяется при положительном заряде на затворе 1).

Но самое смешное тут то, что ток через переходы транзисторов ничем не ограничен.

Допустимые и начальные значения

Напряжение. Тут всё просто — 3.3V.

Ток. Может быть запрограммирован как 2, 4, 6, 8, 10, 12, 14 или 16mA. Однако тут есть подвох: все GPIO должны потреблять вместе не более 50mA. Начальное значение нигде не документировано, считается, что все выходы работают на 8mA. Кроме того программирование определённого тока означает лишь то, что при этом токе гарантировано различение логических уровней напряжения.

То есть ток будет потребляться тот, что нужен нагрузке независимо от запрограммированного, но более 16mA потреблять не стоит:smile:.

Расчёт схемы

Итак имеем светодиод:

Голубой 5mm светодиод

Из википедии подсматриваем табличку падений напряжений на 20mA 5mm светодиодах различного цвета:

Цвет Падение напряжения
Красный
Жёлтый
Зелёный
Голубой

Пусть ток через диод будет 8mA, свечение мы заметим. Падение напряжения на диоде принимаем худшее — 2.48V. Оставшееся напряжение должно падать на резисторе R1.

Резистор и светодиод На резисторе падает . При токе в 8mA сопротивление резистора R1 равно . У меня есть резисторы в и : Два резистора

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

Проверка на плате

У меня есть небольшой блок питания, который можно использовать для проверки схемы перед подключением к Raspberri Pi:

Небольшой блок питания Регуляторы AMS1117, на которых построен это блок, описаны как защищённые от короткого замыкания и температурной перегрузки, так что ничего страшного не случится, если в схеме или расчётах будут ошибки.

Нужно только помнить, что максимальное входное напряжение равно 15V.

Собираем плату:

Макет платы

И проверяем напряжение на резисторе: Плата и мультиметр

0.36V, значит на моём светодиоде падает больше, чем рассчитывалось:smile_cat:. Посчитаем какой ток течёт в цепи:

A

Неплохо. Светодиод светится, ток вполне безопасный, можно переходить непосредственно к Raspberry Pi. Но это в следующий раз:smiley: