Automatiskt jordad ifall pinne ej satt hög på PIC16F84

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Pinkevin
Inlägg: 285
Blev medlem: 1 januari 2004, 12:44:10
Ort: Norrtälje

Automatiskt jordad ifall pinne ej satt hög på PIC16F84

Inlägg av Pinkevin »

Jordas en pinne på PIC16F84 automatisk, eller är den helt enkelt inte ansluten ifall man inte sätter den hög?
gvs
EF Sponsor
Inlägg: 1688
Blev medlem: 18 oktober 2003, 14:20:34
Ort: Göteborg
Kontakt:

Inlägg av gvs »

Vad menar du? om den är ansluten så är den ju anting hög eller låg. Är den flytande, dvs. ej ansluten, så tolkas den väl som hög. MEN det är inget säkert sätt att ha det på alltså, anslut alla som inte använda antingen till hög eller låg, sak samma vilket
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

Mja, fungerar i bland och i bland inte. Kan beror på hur chippet har startat eller kommit ur reset/sleep-läge.

Lita aldrig på att register och pinnar har att vissr värde från början. Sätt alltid dom värdena som du vill ha manuellt under uppstarten.

På så sätt slipper man fundera: vad är det för default-efter-reset-värde på denna bitt i just den här processorn. Dessutom blir det enklare att flytta koden till en ny processor som kanske har andra defaultvärden.
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

gvs: Jag förutsätter att han menar pinnar som är satta som output.

Men jag håller med dig till 100% när det gällen in-pinnar. Dom ska man alltid koppla till jord eller plus för att hålla dom vid en stabil nivå och inte riskera att få in störningar.

Eller än värre, som man kunde råka ut för på cmos-kretsar utan schmitttrigger på ingångarna, att dom hamnade i sitt analoga arbetsområde och drog ström av bara tusan.
Digger
Inlägg: 89
Blev medlem: 26 oktober 2003, 10:27:56
Ort: Norrköping

Inlägg av Digger »

Kan nämna att mina schmitt-NAND CMOS (4093) drar mycket ström ifall man har flytande ingångar. Det gäller tydligen alltså även för schmittingångar. Gör det litet arbetssamt att laborera med dem eftersom man man måste koppla så många "onödiga anslutningar" ibland. :(
Pinkevin
Inlägg: 285
Blev medlem: 1 januari 2004, 12:44:10
Ort: Norrtälje

Inlägg av Pinkevin »

Jag hade tänkt att bygga en knightrider, men lysdioderna tillsammans med de motstånd jag köpte är till att använda dem med 12 V.
Därför tänkte jag mata dem med 12 V på anoden och jorda dem med PICen, så när en pinne sätts låg så tänds lysdioden.

Så det finns alltså inget sätt att göra output pinnarna "flytande"?
Ifall det inte finns det, hur gör man då på enklast sätt för att sätta pinne a0 till a7 höga, med en PIC16F84?

EDIT: Hur sätter man pinne a0 till a7 höga i PICBasic, skulle det stå.
danei
EF Sponsor
Inlägg: 27416
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg av danei »

Man sätter bitarna i porten till 1
Det ger 5V ut.

Men jag undrar om inte PICen blir ledsen om det kommer in 10V på portarna. Den kan dö av det.
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

Ok, nu förstår jag vad du vill.

Tanken du har är god, men den är inte rätt :-)

Det går inte att koppla en lydsiod mellan 12 volt och en outpinne på en 5-volts matad pic. Pinnarna har clamp-dioder kopplade mot jord (vss) och matningsspänningen (vdd) vilket gör att så fort spänningen på en pinne överstiger vdd med mer än 0.7 volt så börjar det flyta ström därigenom. Eftersom lysdioden är kopplad mot 12 volt så kommer det att flyta en ström mellan 12 volten genom lysdioden och ner till 5-volten vilket gör att den kommer att tändas även när den ska vara anstängd.

Men du har helt rätt i att en utpinne lägger ut "jord" när den inte lägger ut plus. Så det går att koppla lysdioder mellan antingen jord och pinnen (som vanlig) eller mellan 5 volt och pinnen (så lyser dom omvänt mot vad dom brukar göra).

Fast det finns ett undantag. Port RA4 är en specialport och den kan inte lägga ut plus 5 volt, utan bara jord eller flytande. Det står i databladet på sidan 15 (enligt sidan självt) sidan 17 enligt Acrobats Readers sidräknare.
Pinkevin
Inlägg: 285
Blev medlem: 1 januari 2004, 12:44:10
Ort: Norrtälje

Inlägg av Pinkevin »

En pinne räcker inte så långt när det behövs åtta.
Finns det inget sätt alls att lösa detta på (förutom att koppla en transistor till varje output pinne som ska leda 12 V från kollektorn till emittern när pinnen den är kopplad till blir hög)?
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

Vad jag menade med undantag är att PA4 inga kan lägga ut 5 volt. Men den har clampdioder iallfall, så inte ens den fungerar som du vill.

Jag tycker att det enklaste alternativen är att köra på 5 volt rakt igenom. Antingen köper du 8 nya motstånd (kostar några kr totalt) eller så paralellkopplar du två motstånd för varje diod för att få igenom lite mera ström vid 5 volt. Man bör dock räkna på det så att det inte blir helt galet.

Vad är det för lysdioder du har och hur mycket är motstånden på?
Pinkevin
Inlägg: 285
Blev medlem: 1 januari 2004, 12:44:10
Ort: Norrtälje

Inlägg av Pinkevin »

Okej.

Hm, hur var det man gjorde för att räkna ut motståndet vid parallellkoppling? (R1xR2)/(R1+R2) eller?

Dessa:
http://cgi.ebay.com/ws/eBayISAPI.dll?Vi ... gory=26207

Spänningsfall: 2.8-3.8V
Ström den drar: 30mA (Max)
Reverse Voltage: 5V (vad är detta för något?)

Också är motstånden 470 ohm 1/4 W.
Senast redigerad av Pinkevin 29 januari 2004, 21:50:20, redigerad totalt 1 gång.
Robert Nielsen
Inlägg: 700
Blev medlem: 23 augusti 2003, 20:42:38

Inlägg av Robert Nielsen »

Formeln är rätt Rers=(R1*R2)/(R1+R2) eller 1/Rers=1/R1+1/R2
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

Jo formeln stämmer bra den.

Officiellt kan man inte dra ut allt för mycket ström ur en 16F84

Kod: Markera allt

Total power dissipation  =  800 mW
Maximum current out of VSS pin  =  150 mA
Maximum current into VDD pin   =  100 mA
Maximum output current sunk by any I/O pin  = 25 mA
Maximum output current sourced by any I/O pin = 25 mA
Maximum current sunk by PORTA = 80 mA
Maximum current sourced by PORTA = 50 mA
Maximum current sunk by PORTB = 150 mA
Maximum current sourced by PORTB  = 100 mA

Power dissipation is calculated as follows: Pdis = VDD x {IDD - å IOH} + å {(VDD-VOH) x IOH} + å(VOl x IOL).
Fast i praktiken kan kan gå ganska långt utanför dessa maxgränser.

Det var en ganska stor range på spänningsfallet. För 20 mA ska motstånden ju vara mellan 60 och 110 ohm.Har man otur kan det i verkligheten bli nästen dubbelt så mycket som man tänkt sig eller bara hälften :-(
danei
EF Sponsor
Inlägg: 27416
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg av danei »

På tal om port RA...
Jag har problem att få RA3 att gå hög. någon som har en ide? RA4 fick jag ordnig på efter lite letande i databladet. Och en pinne som var brännd på den första PICen (låg på 2,8V konstant) men RA3 vägrar lyda.
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

Näe, det låter mysko. RA0-3 är ju vanliga vaniljportar på en 'F84. Inget speciellt alls och inte delade med någon annan intern pereferifunktionalitet.

Har du kollat eventuella kortslutingar mot en närliggande pinnar? Mät resistansen mellan pinne 2 mot 1,3 och gnd.
Skriv svar