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

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
MicaelKarlsson
Inlägg: 4669
Blev medlem: 18 juni 2004, 09:16:07
Ort: Aneby
Kontakt:

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

Inlägg 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?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

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

Inlägg 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.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

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

Inlägg 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.
Användarvisningsbild
MicaelKarlsson
Inlägg: 4669
Blev medlem: 18 juni 2004, 09:16:07
Ort: Aneby
Kontakt:

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

Inlägg 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!
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46987
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

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

Inlägg av TomasL »

Ännu bättre är 1k mot jord, då spelar det ingen roll om man av misstag lyckas sätta porten till 1a
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

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

Inlägg 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.
Användarvisningsbild
MicaelKarlsson
Inlägg: 4669
Blev medlem: 18 juni 2004, 09:16:07
Ort: Aneby
Kontakt:

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

Inlägg av MicaelKarlsson »

Tackar för tipsen!

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