Если у МК на ногу вывести 0 - то это фактически значит, что эта нога внутри МК проключена на землю.
Теперь, предположим, есть LCD модуль, который на свою ногу выдает 1 (например сигнал busy). И внутри LCD модуля эта единица на самом деле тоже прокинута с питания +5В.
Если ошибится, и у МК на ноге, которая принмает сигнал от LCD модуля, поставить не режим ввода, а режим вывода и поставить на этой ноге 0 (т.е. кинуть на землю), то получится, что ток потечет от +5, через ногу LCD, через ногу МК, на GND. И так как там резюков нету никаких, то ток будет нехилый и все к черту погорит.
Или нет? Ставим эксперимент.
Итак, рассказываю о попытке обуйства Atmega 8L подав с его ног 1 на коротко на землю.
Код:
#define F_CPU 1000000 #include#include void main() { DDRD=0xff; DDRC=0xff; DDRB=0xff; PORTD=0xff; PORTB=0xff; PORTC=0b00100000; while(1){ PORTC^=0b00100000; _delay_ms(250); } }
т.е. на порты D и B на все ноги подано 1. на ноге 5 порта C мигает LED, чтобы показывать жизнь.
вывод ног подан на амперметр через который ток сливается на землю.
итак,
1 нога - 0.08А, холодный чип
2 ноги - 0.16А, холодный чип
3 ноги - 0.22А (уже не линейно), чуть греется
.
.
.
.
12 ног - 0.66-0.68А, горячий как черт (палец можно держать 2-3 секунды), 15 минут, все еще живет, без охлаждения
Направил на него вентилятор, стал умереено теплым. УБрал вентилятор, горячий, рабочий, даже программируется.
Дальше продолжать не стал - надоело.
Вот так.