Stránka 1 z 1

PIC 16F628A a filtrace napájení

Napsal: 12 zář 2007, 11:51
od Jirka
edit: vyřešeno

Zdravím,

dělám pokusy s tímto procesorem, a při využití vnitřního oscilátoru na 37kHz se občas porcesor chová zvláštně, kdy dělá "mrtvého brouka" a nereaguje na žádné podněty (vstupy). Stejně se choval i při zapnutém vnitřním oscilátoru na 4MHz, ale tam stačilo přidat napájení 100nF kondenzátor, a od té doby vše funguje.
Zřejmě se dostává rušení z oscilátoru na napájení.

Takže se chci zeptat, jak fitrujete (blokujete) napájení procesoru při využití vnitřního oscilátoru na 37kHz ? Jaké kondenzátory tam dáváte ?


Listoval jsem v datasheetu a žádné doporučení jsem tam nenašel, nebo jsem to přehlédl. Zkoušel jsem na napájení kondíky 1 mikro a 10mikro, ale bez výsledku. Program je dobře napsán, po prodloužení časových smyček a spuštění na 4MHz vše běží, jak má.

Napsal: 12 zář 2007, 15:32
od jankop
Čím nižší pracovní kmitočet procesoru, tím nižší nároky na blokování Vdd.
Problém bych hledal v nesprávném ošetření MCLR, BOREN, PWRT, WDT, v chybnem nastavení FOSC, nedovoleném použití SLEEP instrukce nebo v běžném špatném ošetření vstupů.
Kmitočet interního oscilátoru je 48KHz, nikoliv 37KHz.
Tvrzení, že program je správně napsán zní značně sebevědomě. Já naopak sebevědomě tvrdím, že oscilátor s odběrem cca 10uA asi moc s napájením cvičit nebude a prostě někde děláš chybu. Buď v hardware, nebo v software, nebo obojím. Dej něco do placu a můžem se bavit dál.

Napsal: 13 zář 2007, 21:43
od Jirka
No těch 37 kHz udávají v datasheetu, strana 27 článek 4.2.2.6 PCON Register, a strana 97 clánek 14.2.8 SPECIAL FEATURE: DUAL SPEED
OSCILLATOR MODES , ale o to tu nejde.

MCLR bych řekl, že mám ošetřeno správně, BOREN , SLEEP nevyužívám, PWRT, WDT snad je dobře. Co se týká ošetření vstupů, jsou použity spínače, a protože program je v podstatě kontrola vstupům a je proložen čekacími smyčkami, takže odskoky kontaktů nejsou podstatný, tak bych řekl, že tímto to taky není.

Celé zapojení fungovalo správně až do doby, kdy začalo pršet a zvýšila se vzdušná vlhkost (voda se do něj ale nedostala ani v něm nekondenzuje), po té se začal procesor "sekat". Hledal jsem součástku, která mohla navlhnout a změnit vlastnosti, ale nic jsem neobjevil.

Pak mě napadlo, jestli vodiče díky vlhkosti nemohly "změnit svoji kapacitu", a tím funkci zapojení ovlivnit. Usuzoval jsem na to na základě zkušeností se stejnými problémy při provozu PIC na 4MHz a použitím kondenzátoru 100nF, viz výše.

Více ti pošlu přes SZ, abys mi mohl zkusit poradit, pokud budeš chtít.

Napsal: 13 zář 2007, 22:10
od jankop
Asi používáš starý nebo špatný datasheet, protože na tebou odkazovaných místech mám uvedeno tohle:
1.
bit 3 OSCF: INTOSC Oscillator Frequency bit
1 = 4 MHz typical
0 = 48 kHz typical
2.
This feature allows users to dynamically toggle the oscillator speed
between 4 MHz and 48 kHz nominal in the INTOSC
Ale to je opravdu nepodstatné...
Rád o problému podiskutuji. Sám jsem něco podobného zažil, způsobeno to bylo neošetřeným vstupem a důsledky byly naprosto nepochopitelné. Za normálních podmínek při běžných impedancích nemůže hrát roli, jestli venku prší nebo ne. Určitě na to přijdem.