Värde på pullup-motstånd och liknande i digitala koppling
Värde på pullup-motstånd och liknande i digitala koppling
Jag undrar hur man ska gå till väga när man dimensionerar pullup-motstånd, återkopplingsmotstånd och liknande i digitala kopplingar.
I skolan lärde jag mig inget specifikt om sådant, det var mer om analoga filter och brus.
Jag brukar bara sätta dit 1k, eller 10k, tja det som ligger närmast i lådan. Men jag inser att det borde gå att använda betydligt högre värden i vissa sammanhang, och krävas mindre värden i andra.
En PIC drar ju bara några mA obelastad, så med några 1k pullup som dras låga går det ju mer ström "till spillo" i motstånden än vad hela PICen drar obelastad. Det känns spontant onödigt att använda så små motstånd. Dock kanske de finns olika oväntade kapacitanser/induktanser som gör att höga värden inte funkar med höga frekvenser. En klasskamrat drog t.ex. sladdar från kristallen till PIC:en och då gick inte programräknaren.
Det brukar finnas angivet kapacitansen på kretsars pinnar vilket jag antar att man kan titta på. Men jag undrar om inte kapacitansen mellan raderna på ett kopplingsdäck, banorna på experimentkort eller byglingstrådar i härvor kan ha högre kapacitans.
Vad bör man använda för metoder och tumregler?
I skolan lärde jag mig inget specifikt om sådant, det var mer om analoga filter och brus.
Jag brukar bara sätta dit 1k, eller 10k, tja det som ligger närmast i lådan. Men jag inser att det borde gå att använda betydligt högre värden i vissa sammanhang, och krävas mindre värden i andra.
En PIC drar ju bara några mA obelastad, så med några 1k pullup som dras låga går det ju mer ström "till spillo" i motstånden än vad hela PICen drar obelastad. Det känns spontant onödigt att använda så små motstånd. Dock kanske de finns olika oväntade kapacitanser/induktanser som gör att höga värden inte funkar med höga frekvenser. En klasskamrat drog t.ex. sladdar från kristallen till PIC:en och då gick inte programräknaren.
Det brukar finnas angivet kapacitansen på kretsars pinnar vilket jag antar att man kan titta på. Men jag undrar om inte kapacitansen mellan raderna på ett kopplingsdäck, banorna på experimentkort eller byglingstrådar i härvor kan ha högre kapacitans.
Vad bör man använda för metoder och tumregler?
Om det är en pull-up(/down) bara för att hålla en ingång på ett känd nivå och den inte utsätts för speciella störningar duger 10K helt fint.
Men jag undrar över en sak.... "så med några 1k pullup som dras låga går det ju mer ström "till spillo" i motstånden än vad hela PICen drar obelastad"
Menar du att du monterar pull-up på utgångar? Varför i så fall?
Pull-up(/down) använder jag bara om inte jag kan säkerställa ett lämpligt nivå på annat sätt och en ingång drar "ingen ström", en utgång med totem-pole drivning behöver ingen pull-up(/down), alltså är det bara OC-utgångar som behöver det och som kan dra ström.
I de fall beror det exakta värdet på motståndet på vilken hastighet som önskas, kapacitiv belastning osv.
Men jag undrar över en sak.... "så med några 1k pullup som dras låga går det ju mer ström "till spillo" i motstånden än vad hela PICen drar obelastad"
Menar du att du monterar pull-up på utgångar? Varför i så fall?
Pull-up(/down) använder jag bara om inte jag kan säkerställa ett lämpligt nivå på annat sätt och en ingång drar "ingen ström", en utgång med totem-pole drivning behöver ingen pull-up(/down), alltså är det bara OC-utgångar som behöver det och som kan dra ström.
I de fall beror det exakta värdet på motståndet på vilken hastighet som önskas, kapacitiv belastning osv.
Ja, som en säkerhetåtgärd ifall någon krets skulle gå sönder eller på något sätt lämna en utgång flytande som kan få dåliga följder. T.ex. vid seriekommunikation, eller drivning av stora transistorer.
Om man drar motstånd mellan in/utgångar på kretsar, är det brytfrekvensen/stigtiden på filtret som bildas av motståndet och kapacitanserna som avgör motståndets värde? hur långt över den digitala frekvensen bör man lägga brytfrekvensen?
Är det en bra ide att lägga en liten kondensator över motståndet för att få bättre stigtid?
Om man drar motstånd mellan in/utgångar på kretsar, är det brytfrekvensen/stigtiden på filtret som bildas av motståndet och kapacitanserna som avgör motståndets värde? hur långt över den digitala frekvensen bör man lägga brytfrekvensen?
Är det en bra ide att lägga en liten kondensator över motståndet för att få bättre stigtid?
Alltså: om du lägger en konding över en pull-up(/down) motstånd blir den ju avkopplat.
Men du verkar inte skilja mellan "skyddsmotstånd" och pull-up(/down) motstånd och det är förvisso samma sorts komponent men ändamålet är mycket olika.
* En pull-up går mellan VCC och en ut-/ingång för att antingen säkerställa nivå och/eller "hjälpa till" med att dra nog plus.
* En pull-down gör exakt det samma fast till GND.
* Ett skyddsmotstånd sitter i serie med ett signal, kan vara för att begränsa ström, begränsa störningar eller annat samt en kombination därav.
Jag delade dom i 2 grupper då det är 2 mycket olika funktioner de uppfyller.
Sen får du definiera vilka du menar när du börjar prata om snabba upp osv.
Men du verkar inte skilja mellan "skyddsmotstånd" och pull-up(/down) motstånd och det är förvisso samma sorts komponent men ändamålet är mycket olika.
* En pull-up går mellan VCC och en ut-/ingång för att antingen säkerställa nivå och/eller "hjälpa till" med att dra nog plus.
* En pull-down gör exakt det samma fast till GND.
* Ett skyddsmotstånd sitter i serie med ett signal, kan vara för att begränsa ström, begränsa störningar eller annat samt en kombination därav.
Jag delade dom i 2 grupper då det är 2 mycket olika funktioner de uppfyller.
Sen får du definiera vilka du menar när du börjar prata om snabba upp osv.
Det jag tänker är att tråden ska innehålla allmäna råd om val av motstånd i digitala samband. Tror det kan vara andra som undrar det också.
Tänkte inte försöka få svar på specifika frågor från mig. Det borde jag så klart skrivit i första inlägget.
Jag ville inte skilja på motstånden för att hålla ämnet brett, men du har ju nog helt rätt i att man måste dela upp svaren.
Frågan om kondensator gällde med skyddsmotstånd.
Sen undrar jag också hur man ska få fram vilken kapacitans man ska räkna med.
Om man använder en komparator/OP för digitala signaler, vilken storlek på motståndet är lämpligt att välja då?
OK, mycket spridda frågor, men jag tycker det hör till ämnet.
Tänkte inte försöka få svar på specifika frågor från mig. Det borde jag så klart skrivit i första inlägget.
Jag ville inte skilja på motstånden för att hålla ämnet brett, men du har ju nog helt rätt i att man måste dela upp svaren.
Frågan om kondensator gällde med skyddsmotstånd.
Sen undrar jag också hur man ska få fram vilken kapacitans man ska räkna med.
Om man använder en komparator/OP för digitala signaler, vilken storlek på motståndet är lämpligt att välja då?
OK, mycket spridda frågor, men jag tycker det hör till ämnet.
Nu kom jag på en annan anledning till varför jag brukar ha pull-up/-down-motstånd på utgångar. När PIC-kretsen är i reset blir alla pinnar ingångar.
Här kommer mer specifika frågor.
På J1 och J2 kommer signaler från en PIC på 100 kHz.
Signalerna är:
J1 låg, J2 hög
J1 och J2 hög
J2 låg, J1 hög
J1 och J2 hög
När signalen är låg drivs MOSFETens gate hög och vice versa.
Här lade jag pull-up motstånd vid ingången som säkerhet om kontakten skulle lossna/inte sitta i. Det finns risk att MOSFETen/-erna pajar om en/båda signalerna fastnar låg.
Fråga 1:
ICL 7667 drar 0,1 uA "input current" och >2V räknas som hög ingång. Räcker det då med (12V - 2V) / (0,1 * 10^-6) = 100 kohm som pullup?
Fråga 2:
Jag hade en ide' om att göra J1 och J2 höga genom att göra utgångarna på PICen till ingångar/tristate under dom två delarna av sekvensen. Hur skulle jag ha dimensionerat motstånden då?
Fråga 3:
Skulle det vara en bra ide' att sätta kondensatorer över R5 och R6 för att få snabbare till/frånslag av mosfetarna?
Här kommer mer specifika frågor.
På J1 och J2 kommer signaler från en PIC på 100 kHz.
Signalerna är:
J1 låg, J2 hög
J1 och J2 hög
J2 låg, J1 hög
J1 och J2 hög
När signalen är låg drivs MOSFETens gate hög och vice versa.
Här lade jag pull-up motstånd vid ingången som säkerhet om kontakten skulle lossna/inte sitta i. Det finns risk att MOSFETen/-erna pajar om en/båda signalerna fastnar låg.
Fråga 1:
ICL 7667 drar 0,1 uA "input current" och >2V räknas som hög ingång. Räcker det då med (12V - 2V) / (0,1 * 10^-6) = 100 kohm som pullup?
Fråga 2:
Jag hade en ide' om att göra J1 och J2 höga genom att göra utgångarna på PICen till ingångar/tristate under dom två delarna av sekvensen. Hur skulle jag ha dimensionerat motstånden då?
Fråga 3:
Skulle det vara en bra ide' att sätta kondensatorer över R5 och R6 för att få snabbare till/frånslag av mosfetarna?
F1
Bra, tack, det är precis sånt här jag är ute efter.
EDIT: Jag hade räknat fel, det blir 100 Mohm. Skulle det största kolutskicktsmotståndet jag hittade på ELFA, 10 Mohm funka utmärkt som pull-up?
Det blir ju säkerhetsfaktor 10, men det låter ju väldigt stort!
F2
Dåligt skrivet av mig. Sekvensen är alltså de fyra raderna -
J1 låg, J2 hög
J1 och J2 hög
J2 låg, J1 hög
J1 och J2 hög
som repeteras hela tiden.
Jag hade svårt att få processorn att hinna följa den sekvensen i 100 kHz, så ide'n var att göra utgångarna tristate på dom två gångerna i sekvensen J1 och J2 är höga samtidigt för att få effektivare kod. Kodoptimeringen funkade dock inte som jag tänkt, så jag lät pinnarna vara utgång hela tiden. Men det spelar ingen roll här, för det är principen jag är ute efter.
Om utgångarna vore open collector antar jag att man skulle dimensionerat på det sättet jag undrar över. Då drivs ju bara signalerna låga, och dras höga av motståndet. P.g.a kapacitans på kretsens ingång och strökapacitanser borde det ta en stund för signalen att stiga till hög.
Fråga 2.1
Finns det några tumregler/metoder för att uppskatta kapacitansen?
Fråga 2.2
Dimensioneras motståndet för önskad stigtid på signalen som om det vore ett lågpassfilter, eller måste man ta hänsysn till annat, t.ex. ströinduktans?
F3
Ja ICL7667 är det, men vid högre frekvenser kanske snabbare tillslag vore en fördel. Men det var ingen bra ide alltså, tack.
Bra, tack, det är precis sånt här jag är ute efter.
EDIT: Jag hade räknat fel, det blir 100 Mohm. Skulle det största kolutskicktsmotståndet jag hittade på ELFA, 10 Mohm funka utmärkt som pull-up?
Det blir ju säkerhetsfaktor 10, men det låter ju väldigt stort!
F2
Dåligt skrivet av mig. Sekvensen är alltså de fyra raderna -
J1 låg, J2 hög
J1 och J2 hög
J2 låg, J1 hög
J1 och J2 hög
som repeteras hela tiden.
Jag hade svårt att få processorn att hinna följa den sekvensen i 100 kHz, så ide'n var att göra utgångarna tristate på dom två gångerna i sekvensen J1 och J2 är höga samtidigt för att få effektivare kod. Kodoptimeringen funkade dock inte som jag tänkt, så jag lät pinnarna vara utgång hela tiden. Men det spelar ingen roll här, för det är principen jag är ute efter.
Om utgångarna vore open collector antar jag att man skulle dimensionerat på det sättet jag undrar över. Då drivs ju bara signalerna låga, och dras höga av motståndet. P.g.a kapacitans på kretsens ingång och strökapacitanser borde det ta en stund för signalen att stiga till hög.
Fråga 2.1
Finns det några tumregler/metoder för att uppskatta kapacitansen?
Fråga 2.2
Dimensioneras motståndet för önskad stigtid på signalen som om det vore ett lågpassfilter, eller måste man ta hänsysn till annat, t.ex. ströinduktans?
F3
Ja ICL7667 är det, men vid högre frekvenser kanske snabbare tillslag vore en fördel. Men det var ingen bra ide alltså, tack.
Jag vill kunna känna mig trygg i att välja motstånd. Gillar inte att dra till med värden ur luften, och det gäller allt, inte bara elektronik.
Jag skulle därför vilja ha metod som jag använder när jag dimensionerar motstånd. Metoden tycker jag bör innehålla någon typ av räknande som har samband med det som påverkar motståndet och komponenterna kring det.
10k-47k fungerar kanske, men för mig är det värden tagna ur luften i princip. Om jag ska kunna lite på värdena, och känna mig trygg i att välja dem måste det på något sätt visas att det är lämpliga värden som funkar.
Vad är det för störningar som gör att 10 Mohm inte fungerar?
Jag skulle därför vilja ha metod som jag använder när jag dimensionerar motstånd. Metoden tycker jag bör innehålla någon typ av räknande som har samband med det som påverkar motståndet och komponenterna kring det.
10k-47k fungerar kanske, men för mig är det värden tagna ur luften i princip. Om jag ska kunna lite på värdena, och känna mig trygg i att välja dem måste det på något sätt visas att det är lämpliga värden som funkar.
Vad är det för störningar som gör att 10 Mohm inte fungerar?
Intressant tråd det här som gav svaret på en del frågor man haft när man suttit och konstruerat nåt. Något som jag saknar dock är en tråd i FAQ delen som tar upp lite om EMC, EMI och RFI. Hade varit trevligt att samla lite saker man bör tänkta på inom ämnet vid konstruktion av elektronik. Tex bypasskondingar, resistorer för att minska stig och falltider på signaler osv