Automatiskt jordad ifall pinne ej satt hög på PIC16F84
Automatiskt jordad ifall pinne ej satt hög på PIC16F84
Jordas en pinne på PIC16F84 automatisk, eller är den helt enkelt inte ansluten ifall man inte sätter den hög?
-
- Inlägg: 2360
- Blev medlem: 16 september 2003, 17:18:13
- Ort: Dubai, United Arab Emirates
- Kontakt:
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.
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.
-
- Inlägg: 2360
- Blev medlem: 16 september 2003, 17:18:13
- Ort: Dubai, United Arab Emirates
- Kontakt:
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.
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.
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å.
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å.
-
- Inlägg: 2360
- Blev medlem: 16 september 2003, 17:18:13
- Ort: Dubai, United Arab Emirates
- Kontakt:
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.
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.
-
- Inlägg: 2360
- Blev medlem: 16 september 2003, 17:18:13
- Ort: Dubai, United Arab Emirates
- Kontakt:
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å?
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å?
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.
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.
-
- Inlägg: 700
- Blev medlem: 23 augusti 2003, 20:42:38
-
- Inlägg: 2360
- Blev medlem: 16 september 2003, 17:18:13
- Ort: Dubai, United Arab Emirates
- Kontakt:
Jo formeln stämmer bra den.
Officiellt kan man inte dra ut allt för mycket ström ur en 16F84
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 :-(
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).
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 :-(