Sida 1 av 1

Sätta oanvända I/O-pinnar som utpinnar

Postat: 4 maj 2012, 10:20:09
av MicaelKarlsson
Hej på er!

Sitter med en liten fundering som lyder så här:

Om det finns oanvända (ej inkopplade) pinnar på en mikrokontroller av valfri sort. Vilka fler fördelar finns det med att sätta dem som utgående (och sätta dess värde till noll) än att risken för inkommande störningar minskar i förhållande till om de lämnas odefinierade eller som inkommande.

Alltså så här kan det se ut för en AVR:

Kod: Markera allt

	
DDRA=0xFF;  //Sätta alla åtta till ut.
PORTA=0x00;  //Sätta värdet till noll.
Vilka fler fördelar (eller kanske nackdelar) ser ni med min fundering ovan?

Re: Sätta oanvända I/O-pinnar som utpinnar

Postat: 4 maj 2012, 10:23:18
av sodjan
Inget att fundera på. Ha *aldrig* oanslutna ingångar på CMOS logik.
Oavsett om det är processorer eller något annat.
Koppla dom någonstans eller sett dom som utgångar.

Re: Sätta oanvända I/O-pinnar som utpinnar

Postat: 4 maj 2012, 10:38:21
av jesse
Nackdelen med en oansluten ingång är att den är väldigt känslig för t.ex. statisk elektricitet och då kan processorn skadas. Dessutom fungerar ingångar så att om dn inte får en signal in på "rätt" nivå (dvs 0-0.8V "nolla" eller 80-100% av VCC "etta") så drar den högre ström (via matningsspänningen) än annars vilket är onödigt.

Nackdelen med utgångar är att de aldrig får råka kortslutas mot t.ex. VCC om de är satta till "noll" (eller mot GND om de är satta till "etta").

En kompromiss kan vara att ansluta ett 1k motstånd till jord och ange dem som ingångar: Motståndet skyddar ganska bra mot ESD och om du kortsluter pinnen mot något annat så gör det inget. När man experimenterar kan det vara lite riskfyllt att konfigurera alla oanvända pinnar som utgångar, eftersom man kan ha dragit några banor fel ==> kortis ==> bränd processor. Om man då inte vill krångla med externa motstånd på pinnarna så bör det interna pull-up-motståndet fungera ganska bra för att stabilisera insignalen. Man ska då vara extra försiktig med att pilla på pinnarna (det ska man aldrig annars heller!)

Observera att vid reset så blir alla pinnar alltid "ingångar utan pull-up / High-Z" vilket gör dem känsliga. På de flesta processorer finns det skyddsdioder på alla pinnar (utom på resetpinnen) som ger ett visst minimiskydd mot statisk elektricitet.

Re: Sätta oanvända I/O-pinnar som utpinnar

Postat: 4 maj 2012, 10:43:46
av MicaelKarlsson
Tack sodjan!
Då är vi helt överens, själv skulle jag koppla det flesta ingångar till jord, om det sätter utgångarna till noll. Men om man tar t.ex. 7404 (hex inverter) så skulle jag sätta ingångarna till VCC för att sätta utgångarna till noll.

jesse: Intressant, tackar!

Re: Sätta oanvända I/O-pinnar som utpinnar

Postat: 4 maj 2012, 18:03:30
av TomasL
Ännu bättre är 1k mot jord, då spelar det ingen roll om man av misstag lyckas sätta porten till 1a

Re: Sätta oanvända I/O-pinnar som utpinnar

Postat: 4 maj 2012, 18:39:09
av Micke_s
Vissa tillverkare brukar köra input med pull-up för dra så lite ström som möjligt och ingen fara om någon pinne är bunden till VCC eller GND.

Re: Sätta oanvända I/O-pinnar som utpinnar

Postat: 5 maj 2012, 13:35:26
av MicaelKarlsson
Tackar för tipsen!

Att dra pinnar till jord via 1k motstånd skall jag använda mig av i framtiden.