Spänningsfall får pic att starta om..... [LÖST]

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
gvs
EF Sponsor
Inlägg: 1688
Blev medlem: 18 oktober 2003, 14:20:34
Ort: Göteborg
Kontakt:

Spänningsfall får pic att starta om..... [LÖST]

Inlägg av gvs »

Nu har jag monterat i hop min växtdusch som jag tidigare i dag pratade om. Har stött på ett problem... Då pumpen (vindrutespolarpump, Biltema) startar så stänger picen av sig. Ett spänningsfall orsakar detta.
Driver allt med en blyacc 12 volt 4,5 Ah. Picen drivs av en 78L05. Picen drar en trissa, irf540 som drar pumpen. Lyckades förbättra tillförlitligheten genom att sätte en elyt-konding på 470uF nära regulatorn. Men fortfarande droppar det för mycket för att vara tillförlitligt.
Tips?
Senast redigerad av gvs 6 januari 2006, 21:45:24, redigerad totalt 1 gång.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

BOR ?

> 470uF nära regulatorn.

Före eller efter ?

Droppas även 12V'en ?

Pumpen går väll direkt på 12 ? Inte på 78L05'an ?

Prova(t) med en 7805 ?

Och kanske det allra viktigaste, PIC modell ????
gvs
EF Sponsor
Inlägg: 1688
Blev medlem: 18 oktober 2003, 14:20:34
Ort: Göteborg
Kontakt:

Inlägg av gvs »

470uf Sitter före regulatorn.
Hinner aldrig mäta då den droppar, min multimeter är för slö....
Pumpen går på 12 volt.
7805? vad är skillnaden mog "L"?
pic: 12f629
Kör ingen Brown out detect.

kanske skulle ha en egen matning till den?

EDIT: flyttade just kondingen till efter regulatorn, ingen skillnad.

EDIT igen: Den startar faktiskt inte om. Den verkar låsa sig eller nåt, får iaf ingen reaktion från den efter spänningsfallet. Reset hjälper ju visserligen men är inte aktuellt.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

prova:

12V --- [diod] --- [470µF mot jord] --- [7805] --- [0,1µF mot jord] --- [PIC å sånt]

Dioden kommer se till att spänningsfallet på 12V inte drar med sig 5V-sidan så länge 470µF-kondingen orkar driva 5V-sidan.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Den verkar låsa sig eller nåt,

Bug ?
WDT ?

Om du driver den från en spänningskälla som *inte* droppar,
får du då samma resultat ?
gvs
EF Sponsor
Inlägg: 1688
Blev medlem: 18 oktober 2003, 14:20:34
Ort: Göteborg
Kontakt:

Inlägg av gvs »

Slängde på en externdrivning för picen igår kväll nu funkar allt perfa! Ser det dock som en tillfällig lösning så jag ska nog testa $tiffs förslag.
henkebenke
Inlägg: 516
Blev medlem: 31 maj 2003, 10:42:37
Ort: Helsingborg

Inlägg av henkebenke »

Eller så sätter du en stor ellyt efter regulatorn så löser det sig.
gvs
EF Sponsor
Inlägg: 1688
Blev medlem: 18 oktober 2003, 14:20:34
Ort: Göteborg
Kontakt:

Inlägg av gvs »

Nu har jag implementerat stiffs förslag (se nedan), det funkar bra med ett undantag som jag inte blir klok på. Under den tiden som kondingen laddas (alltså precis i början då man slagit på strömmen) så går pumpen hela tiden. Detta är under cirka 5-7 sekunder. Om det vore så att strömmen skulle vara på hela tiden och den skulle gå dag och natt så vore det inget problem. Nu är det dock så att jag stänger av den på natten för pumpen låter MYCKET.
Tips?
$tiff skrev:
12V --- [diod] --- [470µF mot jord] --- [7805] --- [0,1µF mot jord] --- [PIC å sånt]
.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Tar det 5-7 sekunder att ladda upp 470uF from en 12V blyack ?
Det låter orimligt. Eller så är blyacken väldigt dålig...

Men något får din IRF540 att leda. Vad har du på gaten på den ?
Kanske lägga ditt en pulldown till jord så att den hålls ordentligt "stängd" ?
gvs
EF Sponsor
Inlägg: 1688
Blev medlem: 18 oktober 2003, 14:20:34
Ort: Göteborg
Kontakt:

Inlägg av gvs »

Jupp det tar tid, och accen är bra (lite av en motsägelse...). kondingen sitter iofs bakom en diod, 1n4148 tror jag det var jag rotade fram. Ska mäta lite på det men nu är det lunch.

EDIT: Sambon får laga lunch :) mätte lite nu och på utgången från picen får jag verkligen 5 volt under tiden jag laddar kondingen. hel udda....
Det verkar inte vara problem med programvaran ty då jag resetar den eller brytar strömmen under en kort stund (så att den går på kondingen, men kondingen ej hinner laddas ur) så får jag ej det fenomenet.
gvs
EF Sponsor
Inlägg: 1688
Blev medlem: 18 oktober 2003, 14:20:34
Ort: Göteborg
Kontakt:

Inlägg av gvs »

Efter att ha rotat lite i det och mätt så har jag kommit fram till följande:

Då jag slår på strömmen med en lysdiod inkopplad på utgången så tänds dioden, strömmen är 56mA. Efter fem sekunder sjunker strömmen till 26mA. Efter ytterligare två sekunder sjunker den till 4 mA. Alltså: Kondingen laddas med 30mA, dioden drar 22mA. Men varför beter Picen sig som den gör?

Kod:

Kod: Markera allt

 int tid = 0;
  int i = 0;
  int foo;
void main() {
  CMCON = 0xff;         // turn comparators of (digital in/out)
  OPTION_REG = 0x7f;    // Global weak pullup enableled
  WPU = 0xff;           // weak pull up
  TRISIO = 001111;              // 0,1,2 = in 4,5 = ut
    foo = (GPIO & 0x07);       // masking out some bits needed?
    if (foo == 0x7) tid = 15;
     else if (foo == 0x6) tid = 30;
     else if (foo == 0x5) tid = 60;
     else if (foo == 0x4) tid = 120;
     else if (foo == 0x3) tid = 180;
     else if (foo == 0x2) tid = 320;
     else if (foo == 0x1) tid = 480;
     else if (foo == 0x0) tid = 720;

  do {                           // beginning of a repeat loop
      Delay_ms(5000);            // wait for 5 seconds (let condensator carge)
      GPIO.F4 = 1;               // turn ON pump on gpio
      Delay_ms(3000);            // wait for 3 seconds
      GPIO.F4 = 0;               // turn OFF pump
      for(i=0; i<(tid*2); i++){  // Wait the number of minutes set in "tid"
      Delay_ms(30000);           // wait for 30 seconds
      }
  }  while(1);                   // endless loop
}
Jag är medveten om att GPIO inte är definierad innan man har satt den till något, men då den alltid är låg efter en reset så tycker jag att det är långsökt att den beter sig som den gör nu.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Hur är lysdioden kopplad ?

> Jag är medveten om att GPIO inte är definierad innan man har satt den till
> något, men då den alltid är låg efter en reset så tycker jag att det är
> långsökt att den beter sig som den gör nu.

GPIO är varken hög eller låg efter reset ! Den är high-Z (d.v.s en ingång).
Men det är ju helt klart från databladet, eller hur ? :-)

Beskriv bättre hur du har kopplat. Inte bara 5V'en, utan *allt*.

Sen det här med att "under tiden jag laddar kondingen", det borde
gå på en bråkdel av en sekund. Vad är det som begränsar strömmen
från acken ?
Kaggen
Inlägg: 432
Blev medlem: 29 januari 2005, 03:06:02

Inlägg av Kaggen »

avg:
> Då jag slår på strömmen med en lysdiod inkopplad på utgången så
> tänds dioden, strömmen är 56mA.

Vart är strömmen 56mA? Vid dioden/utgången eller vid matningen till PIC:en?

Om det är vid dioden/utgången du har 56mA, har du ett motstånd som begränsar strömmen? PIC:en vill helst bara leverera 20mA från utgångarna.

Om du har ett motsånd vid utgången/dioden (rätt avvägt för 20mA och 5 V) så kan väl strömmen omöjligt bli större om spänningen är 5V?

Konstigt isåfall.

Mats
gvs
EF Sponsor
Inlägg: 1688
Blev medlem: 18 oktober 2003, 14:20:34
Ort: Göteborg
Kontakt:

Inlägg av gvs »

Lysdioden är kopplad (med resistor) till vdd och transistorn som sitter i vss. gaten till gpio f4.

givet är den high-z då den resetar, men efter att tris är satt så är den väl odeffad? Menar att jag inte gör något med gpio förän efter fördröjningen på 5 sekunder.

koppling:
12volt till diod (1n4001) och lysdiod lysdiodens andra sida sitter i transistorn som jag beskrev ovan.
Efter dioden, 1n4001 så sitter en konding 470uF och en regulator 78l05. på andra sidan regulatorn sitter picen. gpio 0-2 har intern pull up och kan med jumprar dras till jord. Gpio4 går till pumpen, gpio3 är mclr, 10kOmh pull up till 5 volt och en tryckknapp för att dra den till jord.
Gpio 5 är utgång, men hänger fritt. Har även en resistor på 5kOhm från utgången på 78l05 till jord för att komma över minstra strömmen ( 1mA, picen är specad till 800uA).

Var nog allt.

Så det enda som begränsar strömmen är dioden, men jag tycker inte den ska göra något. Accen levererar ström utan problem. kan driva en 24 volt motor på 300 watt med den, även en 35Watt halogen lyser på bra med uppmätt ström till 3A.

Det som är så märkligt är att det funkar perfa då jag skippar kondingen....
gvs
EF Sponsor
Inlägg: 1688
Blev medlem: 18 oktober 2003, 14:20:34
Ort: Göteborg
Kontakt:

Inlägg av gvs »

Kaggen skrev:avg:
> Då jag slår på strömmen med en lysdiod inkopplad på utgången så
> tänds dioden, strömmen är 56mA.

Vart är strömmen 56mA? Vid dioden/utgången eller vid matningen till PIC:en?

Om det är vid dioden/utgången du har 56mA, har du ett motstånd som begränsar strömmen? PIC:en vill helst bara leverera 20mA från utgångarna.

Om du har ett motsånd vid utgången/dioden (rätt avvägt för 20mA och 5 V) så kan väl strömmen omöjligt bli större om spänningen är 5V?

Konstigt isåfall.

Mats
Strömmen är 56mA vid matningen till kortet. lysdioden drivs av transistorn som drivs av picen, så picen drar jag ingen ström från ( bara till gaten på trissan)


EDIT [LÖST]

Gjorde följande ändringar:
Satte en GPIO.F4 = 0 direkt efter att jag satt TRISIO.
Det löste problemet med att den betede sig konstigt.

Sen hade jag ett till problem. Då jag körde en lampa som drog 3A så funkade det. Pumpen som drog 3A funkade dock inte med kondingen, jag satte då dit en skyddsdiod för att skydda trissan från backspänningar och helt plötsligt funkade det!

Att jag inte hade det från början kan verka konstigt. Jag hade dock en men lyckades släppa ut den magiska röken ur den genom en "liten" felkoppling. Orkade sen inte sätta dit en ny...
Skriv svar