PIC 16F628A a filtrace napájení

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Jirka
Příspěvky: 2034
Registrován: 01 črc 2005, 00:00
Bydliště: zbídačený kraj
Kontaktovat uživatele:

PIC 16F628A a filtrace napájení

#1 Příspěvek 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á.
Naposledy upravil(a) Jirka dne 23 zář 2007, 00:06, celkem upraveno 1 x.
*****
Uživatelský avatar
jankop
Příspěvky: 679
Registrován: 04 dub 2007, 00:00
Kontaktovat uživatele:

#2 Příspěvek 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.
Jirka
Příspěvky: 2034
Registrován: 01 črc 2005, 00:00
Bydliště: zbídačený kraj
Kontaktovat uživatele:

#3 Příspěvek 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.
*****
Uživatelský avatar
jankop
Příspěvky: 679
Registrován: 04 dub 2007, 00:00
Kontaktovat uživatele:

#4 Příspěvek 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.
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“