Stránka 1 z 1

PCF8583 jako čítač impulsů

Napsal: 16 srp 2017, 13:43
od mhepp
Ahoj,

mám problém s konstrukcí, kde používám PCF8583 jako čítač impulsů...

Zapojení je v podstatě katalogové, místo krystalu mám magnetický spínač (takové to co sepne při přiblížení magnetu) a pull-up rezistor. SW část zapojení funguje, problém je se zákmity na spínači. Registruji vždy 1-4 pulsy na jedno sepnutí (celkem náhodně).

Zkoušel jsem to omezit pomocí RC členu, ale dostal jsem se pouze do stavu, kdy se to asi celé rozkmitalo, takže jsem získal násobně více pulsů (cca 250 až 900 v závislosti na hodnotách R a C, počet samozřejmě náhodný ve velkém rozmezí). Potřebuji snímat pulsy maximálně desítka za sekundu, spíše budou ale velmi řídké (miskový srážkoměr).

Nemám k dispozici osciloskop, abych se podíval, co se děje na vstupu.

Dále mne napadlo použít hallův spínač, problém je v napájení -- 3.3V, nenašel jsem žádný, který by fungoval při tomto napětí -- poradíte, prosím?

Dále mne napadlo zařadit mezi spínač s RC optočlen, žádný jsem ale v šuplíku nenašel -- má to cenu zkoušet?

Děkuji za rady...

Napsal: 16 srp 2017, 14:08
od Jirka525
Co je čidlem, které vysílá pulsy? Jazýčkový kontakt nebo je to podpořené nějakou elektronikou?

Napsal: 16 srp 2017, 14:09
od EKKAR
Ten krystal není u mikrořadiče jako čidlo, ten tam slouží jako zdroj taktovacího signálu pro interní bloky a řídí vlastně rychlost běhu vlastního programu. Krystal dej kam patří, případně na jeden z vývodů pro něj (kterej, to najdeš v datasheetu) připoj vnější přesnější oscilátor a jako čidlo použij třeba piezoelement z nějaký hračky, napojenej na jedno- až dvoutranzistorovej zesilovací a omezovací stupeň, kterej ti z pádu kapky učuní krásnej obdélníkovej impuls, normálně zpracovatelnej mikrořadičem.

Napsal: 16 srp 2017, 14:29
od Jirka525
Ekkare domnívám se že tazatel měl na mysli "event counter mode", při kterém se pulsy připojují na vstup OSCI. Podle mě by to mělo fungovat i bez krystalu jako prostý čítač. Pravdou je, že jsem to takhle nikdy nezkoušel.

Napsal: 16 srp 2017, 14:32
od EKKAR
Jo, mohlo by to fungovat - ale musí to bejt čistej impuls ošetřenej proti zákmitům - což jak zjevně vidno, nemá.

Napsal: 16 srp 2017, 14:47
od Milan
Mezi jazýček a čítač zapoj RC integrační člen s časovou konstantou cca 20- 30 ms a Schmittův klopný obvod ,buď jedno hradlo SKO nebo ze dvou tranzistorů a pár odporů. Neuškodí přívod k jazýčku stínit , vstup čítače je jistě na dost vysoké impedanci.

Napsal: 16 srp 2017, 14:48
od mhepp
Děkuji, že jste si to srovnali a teď bych poprosil... ;)

Je to tak, jak jste postupně pochopili... Zákmity na spínači jsou problém. Pokud jsem přidal RC obvod proti zákmitům (http://www.eng.utah.edu/~cs5780/debouncing.pdf, strana 13 a 16), tak znikly oscilace na vstupu (jinak si množství pulsů nedovedu vysvětlit).

Máte nějakou radu jak vyčistit ty zákmity? Rád bych nějaké jednoduché řešení... Ještě mne napadlo dát tam 555, ale ta pracuje podle katalogu od 4.5V, což já jsem limitován 3.3V (potřebuji na stejnou I2C připojit i zařízení, které 5V nedá, vést dvě napájení by opět byl problém).

Děkuji za rady...

Edit:

Milan: SKO jsem nedával -- doporučíš nějaký na 3.3V, jazýček je připojen přes krátké vodiče (cca 5cm) z kroucené dvojlinky, tam by se toho nemuselo moc nachytat.
EKKAR píše:Jo, mohlo by to fungovat - ale musí to bejt čistej impuls ošetřenej proti zákmitům - což jak zjevně vidno, nemá.

Napsal: 16 srp 2017, 14:50
od Jirka525
Jestli je tam skutečně pouze kmitající kontakt, tak by mohlo pomoci následující zapojení.

Napsal: 16 srp 2017, 14:52
od ZdenekHQ
Šlo by použít přepínací jazýčkové relé a dva NANDy viz levá část obrázku.


Obrázek

Napsal: 16 srp 2017, 17:44
od Milan
Oscilace při připojení rc členu ti vznikají zřejmě proto, protože ten vstup není "logický", ale v určité části lineární a zesilující ,jak jinak také u oscilátoru. SKO tam vnutí jen úrovně 0 a 1 a tudíž tu lineární oblast při změně stavu "přeskočí ". Můžeš použít třeba hradlo z 4093 , raději nic rychlého jako HC, HCT ap . - ty ne. Prostě tento vstup procesoru není sám o sobě vhodný ke zpracování analogového signálu a musíš mu jej proto tím SKO "předžvýkat" . Řada procesorů má na regulerních vstupech ten SKO již uvnitř a pak to funguje bez problémů .

Napsal: 17 srp 2017, 12:42
od mhepp
Milan píše:Oscilace při připojení rc členu ti vznikají zřejmě proto, protože ten vstup není "logický", ale v určité části lineární a zesilující ,jak jinak také u oscilátoru. SKO tam vnutí jen úrovně 0 a 1 a tudíž tu lineární oblast při změně stavu "přeskočí ". Můžeš použít třeba hradlo z 4093 , raději nic rychlého jako HC, HCT ap . - ty ne. Prostě tento vstup procesoru není sám o sobě vhodný ke zpracování analogového signálu a musíš mu jej proto tím SKO "předžvýkat" . Řada procesorů má na regulerních vstupech ten SKO již uvnitř a pak to funguje bez problémů .
K podobnému závěru jsem došel také, ale mé znalosti jsou v tomto směru velice povrchní, už jsem z toho opravdu vypadl. Poznámka o rychlých hradlech je docela důležitá, práskl bych tam první, co by mi příšlo pod ruku a divil bych se i nadále...

Každopádně děkuji všem za zajímavé podněty a rychlé reakce, o výsledek se podělím, jen to nebude hned, mám toho teď docela dost...

Napsal: 26 bře 2018, 20:05
od mhepp
Zdravím po čase,

řešení jsem nalezl, tak se chci podělit.

Jako omezení zákmitů na spínači jsem použil 2 odpory 10k a kondenzátor 1uF, připojil na SKO 74hc14, výstup z SKO na PCF a hle, ono to funguje. Hodnoty jsem nastřelil by voko, co šuplík ve vhodném rozměru dal (kanibalizuji staré DPS s SMD součástkami ;) )

Takže děkuji za rady, vyřešeno.