LOL Я говорил про максимально допустимую нагрузку для портов микроконтроллера, а не про силу тока, которую может выдержать светодиод. Светодиод 30мА выдержит, никто в этом и не сомневался (по крайней мере я), а вот, повторю, порт у микроконтроллера может и не выдержать. К сведению, порт P1 микроконтроллера AT89S8252, к примеру, рассчитан на подключение всего 4х ТТЛ-входов (паспортные данные), для которых встроенный pullup-резистор может обеспечить "1", а это значительно меньше 20мА. Да и нужно определиться со схемой подключения - если у порта выход с открытым коллектором, то правильнее подключать светодиод анодом к +Uип, а катодом через резистор к выводу порта, тогда он будет включен в цепи коллектора транзистора, а ориентировочно сопротивление: 0.5В - это примерное падение напряжения на коллекторном переходе транзистора; 1,5В - падение на светодиоде; R= (5В-0.5В-1.5В)/Iсв Правда светодиод будет гореть когда в порт записан уровень "0". Я с этим согласен, а теперь посчитай суммарный ток при условии если зажгутся все 8 светодиодов по 20мА. Даже если брать 10мА, то это уже предельный для определенных МК режим.
Error_Log Какие-то древние LPT-контроллеры действительно можно было спалить, но это было в прошлом веке Современные контроллеры регулируют силу тока.
Спалить можно чего угодно. Никто там ничего не регулирует, но он действительно не выдаст больший ток без разрушения транзистора, канал "узкий", не пролезет. Если говорить про конкретный чип, то у Atmela в доке нарисована схема порта. И там есть и подтягивающий резистор (около 80-100к) и двухтактный выход, и то и другое управляется, тоесть порт там представлен тремя адресами: * регистр направления - задает направление ввода вывода для каждого пина, порта отдельно * собственно PORTx - если пин включен как выход то управляет двухтактным выходом, если как вход, то лог1 подключает тот самый подтягивающий резистор * PINх - тригер защелка, предназначен для считывания состояния физических линий. У 89с8252 такого разнообразия нет. Например: если записать 1 в порт, а линия при этом будет замкнута на общий накоротко, то чтение PORTx даст 1, а чтение PINx -> 0, при этом если линия включена как выход ток выхода будет ограничен возможностями транзистора, если как вход то ток будет ограничен подтягивающим резистором. Если не устанавливать резисторы то будет так : порт будет пытаться выдать максимальный ток при данном напряжении питания МС (не более 20 ма) предположим Uпит= 5в, на светодиоде 1,5 в => 5-1,5 =3,5 в 3,5*20=70мвт - это тепло будет рассеиваться транзистором порта, в то время как светодиод будет потреблять только 30мвт. Это посчитано очень грубо, но для крайнего случая сойдет. Если таких 8мь ... Если поставить резистор 160ом то на порт придется около 0,1 в =>2мвт, если жаба душит тепло производить - снижайте напряжение питания светодиодов. Что касается TTL то часто указывают, что уровень сигналов соответствуют TTL, но это не значит, что там стоят биполярные транзисторы на выходе, в AT90 серии - полевики. Можно поступить так, включить порт на _вход_, подключить к нему базу транзистора (например типа КТ315) эмиттер на общий, в коллектор светодиод или др нагрузку, если надо то с ограничивающем резистором. Запись 1 будет подключать те самые 100к, они и будут ограничивать ток базы. Минус, если порт сглючит то в место 100 к может включиться транзистор...
Незамечаю, это скорее, не регулирование, а ограничение, под регулированием я понимаю систему с обратной связью и т.п. - про это. - а с этим несогласен.
Gennadiy Регулирование - это поддержание постоянного значения +/- допустимое отклонение. Обратная связь тут значения не имеет. Ограничение не совсем укладывается под это определение. Тем не менее, логический шлюз обычно моделируется как источник тока (а не напряжения). С чем именно? Что BJT (или даже конфигурация Дарлингтон с BJT) позволяет выкачивать 100 и более мА? Или что TTL == 5V? Или что CMOS более 6-10 мА не выдаст?
Нет никакого противоречия. Полевой транзистор при уменьшении сопротивления нагрузки с определенного момента начинает работать как генератор тока. Есть величина, которая характеризует его ток насыщения. Под регулированием подразумевать можно изменение какой-то величины, обусловленное воздействием на устройство регулирования. Поддержание постоянной величины - это стабилизация. А стабилизация часто требует наличие обратной связи. Откуда ты взял 5В ? Если подключать светодиод как было описанно выше (к +Uип и коллектору транзистора), то почти 5В там может быть только при уcловии глубокого насыщения биполярного транзистора, только в этом случае падение напряжения на участке эммитер-коллектор может составлять всего десятки милливольт. Глубокое насыщение транзистора требует величину тока базы транзистора соизмеримую с током нагрузки. В данном случае, если подключить светодиод в качестве коллекторной нагрузки, на переходе транзистора падение напряжения будет в районе 0.5В. Подробности в книге Хоровица и Хилла "Исскуство схемотехники".
Error_Log Каждый понимает терминологию по своему. Не буду больше спорить про регулирование vs. ограничение vs. стабилизация - пользы от этого не будет. Взял и измерил вольтметром Шутка. Ты ещё скажи, что можно замкнуть его нафиг и 5В уже не будет. Если всё это делается не просто ради того, чтобы помигать светодиодами, а чтобы подключить к контроллеру какое-то полезное устройство, светодиоды подключают так, чтобы падения напряжения не происходило, иначе теряются логические уровни TTL. Можно, например, заюзать буферизацию. Привязываться к конкретной реализации порта не практично. Там может вообще оказаться совсем не биполярный транзистор.
Абстрактно от конкретных чипов все верно. Приведите пример современного микроконтроллера с током нагрузки выхода до 100ма, может пригодится, желательно, общего применения, а не "узко заточенного". В девайсе, с которого началось обсуждение, именно так и есть: PS. И простите, за спор, нехочется быть неблагодарным, но ради истины...
Обычно так и делают. Но если человек просто изучает МК, это не нужно. Не спорю. Но учитывать особенности при проэктировании и расчетах нужно обязательно, иначе можно наступить на грабли. P.S. Я не подразумевал какую-либо конкретную модель МК, и не спорю, что в той модели не биполярный транзистор.
Gennadiy Мы говорим о контроллере порта или о программируемом микроконтроллере? Если о втором, то следует смотреть в сторону PLC Schneider Electric - это дорогие, но очень мощные девайсы для автоматизации промышленных агрегатов (до десятков амперов без никакой дополнительной изоляции/буферизации - всё это уже реализовано в самом контроллере). Но МК общего применения (всякие PIC Microchip, Motorola и т.д.) такие нагрузки, наверное, не поддерживают. С другой стороны, ничего ведь не мешает заюзать дополнительный драйвер из нескольких транзисторов (тут уже Error_Log, кажется, обьяснял конфигурацию, но можно купить готовые драйверы), чтоб получить хоть 100мА или больше.