Problem med PIC och störningar i strömmatning

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Malm
Inlägg: 215
Blev medlem: 22 februari 2004, 12:55:06
Ort: Borås

Problem med PIC och störningar i strömmatning

Inlägg av Malm »

Har ett problem med en PIC-processor vars uppgift är att läsa av ett numeriskt tangentbord och skicka datan seriellt till en annan processor. Programmerar processorerna mha. en Wisp628, och så länge programmerarens positiva matningsspänning är ansluten till kretsen så fungerar avläsningen klanderfritt. Om jag däremot kopplar ifrån programmeraren helt så blir "slav-PIC:en" väldigt nervös och får för sig att det sker mycket fler knapptryckningar än vad det i själva verket gör. Det verkar som att kontaktstudset ökar dramatiskt då Wispen kopplas ifrån.

Jag antar att detta beror på att Wispen stabiliserar spänningen och tar bort de störningar som orsakar ofrivilliga knapptryckningar. Min fråga är därför vad jag bör göra för att få samma avstörning i min egen krets. Till saken hör att jag redan använder en 0,1 uF-kondensator för att stabilisera matningen.

Tack på förhand!
Användarvisningsbild
jack
EF Sponsor
Inlägg: 2059
Blev medlem: 5 oktober 2004, 17:32:27

Inlägg av jack »

Sitter kondingen nära PICen?
Malm
Inlägg: 215
Blev medlem: 22 februari 2004, 12:55:06
Ort: Borås

Inlägg av Malm »

jack skrev:Sitter kondingen nära PICen?
Rent fysiskt så sitter den på runt 20 cm kabelväg från den processor som kollar tangentbordet.

Edit: Flyttade den närmre och möjligtvis blev det lite bättre. Har dock fortfarande problem med att den ibland detekterar en knapptryckning som två, ett problem som inte uppstår då Wispen är inkopplad.
Senast redigerad av Malm 6 februari 2006, 19:47:53, redigerad totalt 1 gång.
Användarvisningsbild
jack
EF Sponsor
Inlägg: 2059
Blev medlem: 5 oktober 2004, 17:32:27

Inlägg av jack »

Har du testat att sätta den närmare? Typ direkt över PICen?
Malm
Inlägg: 215
Blev medlem: 22 februari 2004, 12:55:06
Ort: Borås

Inlägg av Malm »

Satte den direkt över PIC:en utan förbättring.

Gjorde en annan intressant observation; den stabiliserande effekten hos programmeraren kommer bara då den är kopplad till serieporten på datorn.
gvs
EF Sponsor
Inlägg: 1688
Blev medlem: 18 oktober 2003, 14:20:34
Ort: Göteborg
Kontakt:

Inlägg av gvs »

Känner igen problemet :) hade exakt samma. Ostabil pic blev stabil då programmeraren var ansluten. Lyckades lösa det med en stor e-lyt direkt över picen.
Malm
Inlägg: 215
Blev medlem: 22 februari 2004, 12:55:06
Ort: Borås

Inlägg av Malm »

Fläskade dit en 470 uF-konding och det stabiliserade något. Det blir inga helt sporadiska knapptryckningar längre. Kontaktstudset orsakar dock fortfarande dubbla (och trefaldiga) knapptryckningar... Får kanske lösa detta i mjukvaran.
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Jag har, baserat på erfarenhet, alltid knapptryckningar som detekteras av en 10Hz ISR. Knapperna läsas då ENBART 1 gång/interrupt, ska jag testa fler saker med knapperna (n-key rollover t.ex.) sparar jag avläsningen i en variabel.

Sedan jag har vald detta framgångssätt har jag ett välfungerande knappavkänning utan stuts osv.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

En del är redan sagt, men... :-)

> Till saken hör att jag redan använder en 0,1 uF-kondensator för att stabilisera matningen.

En 100 nF konding används *INTE* till att stabilisera spänningen !

Den används till att filtrera bort högfrekventa störningar som genereras av PIC'en själv.
D.v.s så att switchningsstörningar från PIC'en inte skall störa *andra* kretsar.
Och den skall sitta nära PIC'ens spänningsmatning och jord, mindre 1-2 cm.

Ditt probem verkar vara en dåligt *filtrerad* ("glättad" kallas det också)
matningsspänning. Det avhjälps med en elyt 10-1000 uF beroende på
hur mycket ström som din hela krets drar. Är det bara en PIC så fungerar
säkert allt mellan 10-100 uF.

> Fläskade dit en 470 uF-konding och det stabiliserade något.

Hur vet du det ? Alltså bortsett från dubbeltryckningarna ?
Och hur mycket är "något" ??

> Kontaktstudset orsakar dock fortfarande dubbla (och trefaldiga)
> knapptryckningar... Får kanske lösa detta i mjukvaran.

Helt nornalt !!
Om du *inte* tar hänsyn till det i mjukvara, så spelar det ingen som
helst roll hur stabil matningsspänning du har...
Hur "läser" du tangenterna ?
Malm
Inlägg: 215
Blev medlem: 22 februari 2004, 12:55:06
Ort: Borås

Inlägg av Malm »

Grejen är ju den att med programmeraren inkopplad så fungerar allt perfekt. Jag tycker att det borde tyda på att mjukvaran fungerar när det gäller avläsning av matrisen. Det konstiga är att jag får inmatningar långt efter det att knapptryckningen är gjord - vi snackar runt 500 ms. Om det är kontaktstuds som är problemet borde ju inmatningarna komma bra mycket snabbare än så.

Den stora kondensatorn tog bort de sporadiska felaktiga inmatningarna.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

OK, I see...

Nä, 500 ms är lite lång tid för kontaktstudsar...
Darriga fingrar ? :-)

Det är svårt att säga mer utan att ha tillgång till hela kopplingen.

Var kommer matningsspänningen ifrån t.ex.
Hur en MCLR kopplad ?
Vilken PIC ?
Hur är LVP config biten satt ?
Hur är LVP ingången kopplad ?
Är PGD/PGC använda till något annat ?

Jag vill inte ha svar, bara peka på att det finns massor av obekanta
variabler utifrån det du har berättat... :-)

o.s.v, o.s.v...
Malm
Inlägg: 215
Blev medlem: 22 februari 2004, 12:55:06
Ort: Borås

Inlägg av Malm »

Matningen kommer från en transformator vars utgång är specad för 5V 2.0A.

Det jag tycker är konstigt är att allt fungerar så fantastiskt bra då bara matningskablarna till programmeraren är anslutna. Inga andra pinnar är anslutna och således borde felet ligga utanför processorerna. Alla interna konfigurationer går rimligtvis att utesluta eftersom de inte förändras mellan de lyckade och misslyckade försöken.

Den ENDA variabeln som skiljer lyckade och misslyckade försök åt är programmerarens spänningsmatning.

För att ge ett så uttömmande svar som möjligt så kan jag tillägga att de två processorerna är 16F88:or som kör interna oscillatorer på högsta frekvens (20 MHz?). MCLR och LVP är avstängda med fuses. LVP-ingången är kopplad till Wispen under programmering och används för seriell kommunikation hos den ena processorn och för LCD-styrning hos den andra. PGD/PGC används ej i applikationen.
Användarvisningsbild
dr. Agoz
Inlägg: 149
Blev medlem: 9 juni 2005, 11:39:07

Inlägg av dr. Agoz »

en fråga brukar inte transformatorer ha väldigt ful spänning som man senare stabiliserar i apparaten för att ha stabiliseringen nära kretsarna? har läst det (troligen här på forumet) kanske skulle vara en sak som spökar. prova annan spänningskälla kanske?
Malm
Inlägg: 215
Blev medlem: 22 februari 2004, 12:55:06
Ort: Borås

Inlägg av Malm »

Hmm... Det är mycket möjligt att det är en riktig skittransformator jag har fått tag på :P

Ska försöka få fram en vettig spänningskälla för ett test.
Användarvisningsbild
dr. Agoz
Inlägg: 149
Blev medlem: 9 juni 2005, 11:39:07

Inlägg av dr. Agoz »

fyra 1.5v batterier och en 1n4001 (6 - ca 1v)
Skriv svar