Mysko företeelse PIC vs n-MOSFET.
Postat: 21 september 2015, 16:19:47
Innevarande PIC är P16F630.
Jag tar in signaler på PORTA och skickar ut dem på PORTC.
Inget problem i det, funkar som det ska.
(Som synes i den youtube jag visade i projekttråden.)
Men det uppstår en luring nu.
Så länge de n-MOS som styrs av PORTC är obelastade slås de på och av som de ska.
Vanligen driver de varsin solenoid som i tur drar en växeltunga åt ena eller andra hållet. De är lagda i två motstående par.
Dvs det är antingen RC5 eller RC4 respektive RC1 eller RC0 som aktiveras.
Normalt aktiveras RC4 respektive RC0, dvs vänster vill byta spår och höger vill stanna kvar.
De LED jag satt att markera vilken n-MOS som jobbar fungerar som de ska, oavsett om de drivs från PIC eller n-MOS. Det vill säga de tänder för den n-MOS som borde agera.
Allting fungerar som det ska, tills...
...jag kopplar på belastningarna, solenoiderna.
RC0/RC1, höger spår, fortsätter fungera som det ska.
Det vill säga normalt sätts för rakt fram, RC0.
Ligger någon tätt framför så sätts byte av spår, RC1...
...såtillvida inte anti-kollisionen är aktiv pga bil i vägen på andra spåret.
Vid anti-kollision sätts för rakt fram, RC0.
Vänster spår, RC5/RC4, däremot hittar på dumheter.
Normalt vill vänster byta spår, RC4.
Dock ej om anti-kollision eller om tätt bakom annan bil.
I dessa fall vill vänster fortsätta takt fram, RC5.
När solenoiderna kopplas på uppstår följande:
Vid närkamp styr den första bilen till höger spår, RC4, som den ska (förutom inte om anti-kollision), och efterföljande bil stannar kvar till vänster, RC5, som den ska. Det vill säga den fortsätter försöka köra förbi.
När bilarna kör var för sig blir det dock konstigt.
RC4, byta spår, flimrar till, men sedan är det RC5 som står kvar som aktiv.
Vad det ser ut som kryper det runt så att RC4's n-MOS tänder den n-MOS som, egentligen, endast RC5 ska påverka.
Dioder från Drain till Source ändrar ej.
Dioder från solenoid till Drain ändrar ej.
1 MΩ pulldown på n-MOS ändrar ej.
I ett hugskott satte jag 1 nF mellan RC5 och RC4, ändrade inte heller.
Annan PIC ändrar inte heller.
Jag har inte testat diod från Source till Gate, ännu.
Vad kan detta vara?
(Å börja inte öra om kodningen - den funkar som den ska och otroligt att detta skulle ändra hur programmet uppför sig. Något i hur PIC fungerar kan det dock säkert vara.)
Sammanfattning:
PORTC 5, 4, 1 & 0 driver var sin n-MOS, som i sin tur driver var sin solenoid.
5 & 4 respektive 0 & 1 är aldrig tända samtidigt, dvs 5 eller 4 och 0 eller 1.
Vid belastning, solenoid, förefaller RC4, eller dess n-MOS, tända RC5's n-MOS istället för sin egen. Ingen annan funktion påverkas. Endast den när RC4 ska slås på.
Jag tar in signaler på PORTA och skickar ut dem på PORTC.
Inget problem i det, funkar som det ska.
(Som synes i den youtube jag visade i projekttråden.)
Men det uppstår en luring nu.
Så länge de n-MOS som styrs av PORTC är obelastade slås de på och av som de ska.
Vanligen driver de varsin solenoid som i tur drar en växeltunga åt ena eller andra hållet. De är lagda i två motstående par.
Dvs det är antingen RC5 eller RC4 respektive RC1 eller RC0 som aktiveras.
Normalt aktiveras RC4 respektive RC0, dvs vänster vill byta spår och höger vill stanna kvar.
De LED jag satt att markera vilken n-MOS som jobbar fungerar som de ska, oavsett om de drivs från PIC eller n-MOS. Det vill säga de tänder för den n-MOS som borde agera.
Allting fungerar som det ska, tills...
...jag kopplar på belastningarna, solenoiderna.
RC0/RC1, höger spår, fortsätter fungera som det ska.
Det vill säga normalt sätts för rakt fram, RC0.
Ligger någon tätt framför så sätts byte av spår, RC1...
...såtillvida inte anti-kollisionen är aktiv pga bil i vägen på andra spåret.
Vid anti-kollision sätts för rakt fram, RC0.
Vänster spår, RC5/RC4, däremot hittar på dumheter.
Normalt vill vänster byta spår, RC4.
Dock ej om anti-kollision eller om tätt bakom annan bil.
I dessa fall vill vänster fortsätta takt fram, RC5.
När solenoiderna kopplas på uppstår följande:
Vid närkamp styr den första bilen till höger spår, RC4, som den ska (förutom inte om anti-kollision), och efterföljande bil stannar kvar till vänster, RC5, som den ska. Det vill säga den fortsätter försöka köra förbi.
När bilarna kör var för sig blir det dock konstigt.
RC4, byta spår, flimrar till, men sedan är det RC5 som står kvar som aktiv.
Vad det ser ut som kryper det runt så att RC4's n-MOS tänder den n-MOS som, egentligen, endast RC5 ska påverka.
Dioder från Drain till Source ändrar ej.
Dioder från solenoid till Drain ändrar ej.
1 MΩ pulldown på n-MOS ändrar ej.
I ett hugskott satte jag 1 nF mellan RC5 och RC4, ändrade inte heller.
Annan PIC ändrar inte heller.
Jag har inte testat diod från Source till Gate, ännu.
Vad kan detta vara?
(Å börja inte öra om kodningen - den funkar som den ska och otroligt att detta skulle ändra hur programmet uppför sig. Något i hur PIC fungerar kan det dock säkert vara.)
Sammanfattning:
PORTC 5, 4, 1 & 0 driver var sin n-MOS, som i sin tur driver var sin solenoid.
5 & 4 respektive 0 & 1 är aldrig tända samtidigt, dvs 5 eller 4 och 0 eller 1.
Vid belastning, solenoid, förefaller RC4, eller dess n-MOS, tända RC5's n-MOS istället för sin egen. Ingen annan funktion påverkas. Endast den när RC4 ska slås på.