Byte av I/O funktion - Q

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Byte av I/O funktion - Q

Inlägg av Erik M »

Låt oss anta att det gäller PIC12F1572, men inte jättenoga, egentligen.


Tanken är att vid start ställs lämplig port som digital In, med WPU.
Den läses därefter av enligt vänstra sidan av schemat nedan, dvs om brytaren medför hög eller låg signal in.
Vartefter den ställs om till att vara digital Ut, och driva n-MOS'n i den högra delen av schemat.
sketch-1457542557941.jpg
Det är tänkt att:
Delningen mellan WPU och 1k ska vara tillräcklig att skilja mellan hög och låg signal in.
OCH
Vid drivning av n-MOS blir signalen hög (eller låg) oavsett brytarens läge och 1k belastar inte med mer än 5mA (vid 5V).

Är detta tillräckligt rätt tänkt?

Vad krävs för att n-MOS'n inte ska slås på vid starten om brytaren står öppen?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Byte av I/O funktion - Q

Inlägg av sodjan »

Vid start (power on) är I/O pinnen ingång (högimpedans) och WPU är "off".
Om du lägger ett större (10-100 K kanske) motstånd från gate till jord
så bör den hållas "off" tills I/O pinnen driver. Men...

Om du sedan bara slår på WPU så kommer den nog att dra gaten hög.

Jag ser det lite svårt att kombinera de där två funktionerna. Oavsett om
du använder WPU eller sätter en extern pull-up till brytaren, så kommer
gaten att dras hög så snart som brytaren inte är nertryckt.

En MOS har mycket hög impedens på gaten och det krävs mycket små
"läckströmmar" för att den ska gå hög.
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: Byte av I/O funktion - Q

Inlägg av Erik M »

Vad som ser ut att hända på porten under uppstart påverkar endast n-MOS.
Koll av insignal sker senare, så den är stabil.
Och när det är klart, dvs avläst i stabilt läge, ändras inställningarna av porten.

Förslagsvis i en ordning som inte tvingar n-MOS att gå på.

Det vore idealiskt, för då har jag tillgång till alla de portar som annars driver n-MOS'ar.


Nå...

Om vi struntar i om n-MOS drivs hög den tid avläsning sker - finns det då problem med denna koppling?
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Byte av I/O funktion - Q

Inlägg av Icecap »

En möjlighet är att du använder en A/D-ingång om det finns.

Då kan brytaren kortsluta ett motstånd eller inte och du använder inte WPU men ett motstånd istället.
Då kan du mäta (med A/D) vilket värde som finns och därmed avgöra huruvida brytaren är av eller på.

Du ska bara se till att spänningen vid öppen brytare är en bit under spänningen som aktiverar MOSFET'en, då kan du känna av utan att aktivera MOSFET'en i onödan.

Men utan A/D blir din koppling omöjlig att få till att fungera på rätt sätt.
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: Byte av I/O funktion - Q

Inlägg av Erik M »

Hur menar du då?

Menar du att det inte går att först avläsa [hög/>4V] kontra [låg/<1V (5V över WPU/1kohm)] In och senare växla mellan [>4V] respektive [<1V] Ut på detta vis?
Effekten på n-MOS ej relevant i sammanhanget.
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Byte av I/O funktion - Q

Inlägg av Icecap »

Med tanke på "Förslagsvis i en ordning som inte tvingar n-MOS att gå på" känns det som att du inte riktigt har vald väg.

Ditt förslag vill ge en '1' på portpinnen vid öppen brytare - OCH samtidig aktivera transistorn.

Den "enda" väg du kan avkänna brytaren och inte aktivera transistorn är att säkra att transistorn inte slå på vid den lägsta spänning som porten behöver för en '1', detta brukat vara 0,7*VDD, vid 5V blir det alltså 3,5V.

Transistorn får alltså inte aktiveras vid en portpinne-spänning på 3,5V men ska vara fullt aktiverat vid 5V.

Detta är i mina ögon ett problem, marginalerna är på tok för små.

Men om portpinnen kan fungera som A/D-ingång också kan en snabb mätning och de rätta värden på motstånd ge att <0,2V är brytare sluten och att >0,4V är brytare öppen.
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: Byte av I/O funktion - Q

Inlägg av Erik M »

Problemställningen ser annorlunda ut än vad du beskriver.

1) Notera att:
"Effekten på n-MOS ej relevant i sammanhanget."
Dvs "effekten på n-MOS", inte "n-MOS effekt".

2) Detta är varken vad jag föreslår eller vad det står:
"Ditt förslag vill ge en '1' på portpinnen vid öppen brytare - OCH samtidig aktivera transistorn."

Det finns inget "OCH samtidigt".
Det enda som kunnat vara samtidigt är att undvika att n-MOS sätts på om insignalen är hög.

Men punkt ett just ovan anger att detta är irrelevant i sammanhanget. Vilket, helt riktigt, är en ändring av frågeställningen.

Vad som är tänkt, är att porten börjar för Input, med WPU, och med öppen brytare blir insignalen då hög. När porten sedan ställs om till Output, givetvis utan WPU, blir porten hög om den sätts hög - sätts hög inifrån. Vilket säkerställs av 1k pull down, dvs ingen kortslutning mot noll när porten sätts hög (för att öppna n-MOS).
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Byte av I/O funktion - Q

Inlägg av Icecap »

Du har fått svar på båda scenario, vilken del är oklar?
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: Byte av I/O funktion - Q

Inlägg av Erik M »

Fördelen med att använda en ADC, som du föreslår, är att man kan utnyttja de sisådär tvåhundra stegen i intervallet under en volt till mer än ett val.

Och för att hålla sig inom vettiga marginaler kan man kanske klämma in fem steg, fem alternativ. Eller vad tror du?
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Byte av I/O funktion - Q

Inlägg av Icecap »

Självklart kan man utnyttja en A/D-ingång till fler bits ingång.
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: Byte av I/O funktion - Q

Inlägg av Erik M »

Frågan var hur många som kunde vara lämpligt i detta fallet.
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Byte av I/O funktion - Q

Inlägg av Icecap »

Det beror ju ganska mycket på tillgängligt utrymme, alltså när transistorn börjar leda.

Om vi ska skita i transistorn är nästa steg hur det ska lösas och där är det "enklaste" att ha en brytare som kortsluter eller inte ett motstånd. Motstånderna ska ju ha olika värden och för enkelhetens skull bör de stiga binärt, alltså 1R, 2R 4R, 8R osv.

Rent praktisk tror jag att gränsen går runt 5 bit.
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: Byte av I/O funktion - Q

Inlägg av Erik M »

Jag tänkte mer på hur många av de tvåhundra som finns tillgängliga i intervallet 0-1 (av fem) volt som kan vara trovärdigt använda.

ADC'n är på tio bitar, att fördela över fem volt - ergo tvåhundra steg per volt.
Dvs potentiellt steg om 5mV. Inte trovärdigt få till det på ett fungerande vis, och definitivt inte nödvändigt. Tio intervall att fånga för att ge tio val räcker gott.

Om hela intervallet användes bleve det, givetvis, en R2-stege att använda.
(Även om jag personligen föredrar en C^2-soffa.)


"...som kortsluter, eller inte, ett motstånd."
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Byte av I/O funktion - Q

Inlägg av sodjan »

> Tio intervall att fånga för att ge tio val räcker gott.

Var kommer "tio val" ifrån?
Var det inte en switch med två lägen som skulle läsas av??
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: Byte av I/O funktion - Q

Inlägg av Erik M »

Tja, från början var det så. Ett val per port.
Men genom att använda ADC enligt ovan så...
Skriv svar