Problem: pomiar częstotliwości na 2051(1051)



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Michał Smolnik" <smolnik_news_at_nospam_go2.pl>
Subject: Problem: pomiar częstotliwości na 2051(1051)
Date: 22 Sep 2000 17:25:07 GMT


Cześć.

Dla lubiących myśleć mam ciekawy problem, męczę się nad tym cały dzień, mam
grypę, w dodatku urządzenie musi być gotowe za trzy dni.

Mikrofon elektretowy podłączony do komparatora 2051 rejestruje wszystkie
dźwięki dochodzące do niego. Chodzi o wykrywanie wśród tych dźwięków tonu
gotowości, potwierdzenia dzwonienia (to miało jakąś fachową nazwę) i
zajętości z pracującego niedaleko telefonu głośnomówiącego. Mikrofon będzie
umieszczony zaraz przy głośniku, więc sygnał będzie łatwo czytelny na tle
otoczenia. To wszystko już rozwiązałem, a oto problem:

Jak mierzyć częstotliwość sygnału (z małą dokładnością), by wykryć
charakterystyczny ton centrali (~300Hz) i czas trwania sygnału (rozróżniać
typy sygnałów). Na sygnał nakładają się też zakłócenia (stukanie w klawisze
telefonu, trzaskanie drzwiami ...). Pamiętajmy, że wyjście wewnętrznego
komparatora jest połączone z P3.6 i nie da się tego puścić na bramkowanie
timerów. Zaznaczam, że procesor jest w tym czasie całkowicie wolny i można
wykorzystać jego prędkość w całości. Częstotliwość zegara nie jest jeszcze
ustalona i może być nawet 24MHz. Zasilanie sieciowe (oszczędzanie energii
nie potrzebne). Praca w zakresie temperatur +5 do +25 stopni. Programuję w
ASMie i Bascomie (z lenistwa).

Mam kilka koncepcji:

1) W pętli głównej bramkować timer sygnałem z komparatora (nie robiąc nic
więcej), gdy częstotliwość sygnału znacznie (np. o 50%) zmieni się (założyć
stałą czasową ok. 100ms), to znaczy, że należy zakończyć pomiar długości
impulsu.

2) Zastosować bramkowanie ustalonym czasem, natomiast zliczać (programowo)
impulsy z komparatora.

3) Podłączyć zewnętrzny komparator i nie bawić się w cuda (wymiary płytki
nie mają aż takiego znaczenia, a cena komparatora albo OA to grosze :-)

Jak wykrywać koniec impulsu? Jaką przyjąć tolerancję?

Czy ktoś z grupowiczów zajmował się tym tematem?
Kiedy zbierze się konsylium, może dojdziemy do konkretnych wniosków. Moje
myślenie z powodu grypy jest dość mętne :-(
--
pozdrawiam
Michał Smolnik
smolnik_at_nospam_go2.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "/\\_MS_/\\" <m__s_at_nospam_go2.pl>
Subject: Re: Problem: pomiar częstotliwości na 2051(1051)
Date: Sat, 23 Sep 2000 11:20:25 +0200


Jak mierzyć częstotliwość sygnału (z małą dokładnością), by wykryć
charakterystyczny ton centrali (~300Hz) i czas trwania sygnału (rozróżniać
typy sygnałów). Na sygnał nakładają się też zakłócenia (stukanie w
klawisze
telefonu, trzaskanie drzwiami ...). Pamiętajmy, że wyjście wewnętrznego
komparatora jest połączone z P3.6 i nie da się tego puścić na bramkowanie
timerów. Zaznaczam, że procesor jest w tym czasie całkowicie wolny i można
wykorzystać jego prędkość w całości. Częstotliwość zegara nie jest jeszcze
ustalona i może być nawet 24MHz. Zasilanie sieciowe (oszczędzanie energii
nie potrzebne). Praca w zakresie temperatur +5 do +25 stopni. Programuję w
ASMie i Bascomie (z lenistwa).


Kiedys napisalem program na 2051 do dekodowania tzw selektywnego
wywolania czyli sekw. 5 tonow (ok 900Hz .. ok 2500Hz) po
70..100ms kazdy . Moja koncepcja to pomiar okresu fwe , sprawdzenie
czy miesci sie w zalozonym przedziale (tolerancja np +/-5%)
i przeprowadzeniu krotkiej analizy w zaleznosci od tego
czy sygnal zmiescil sie w granicach czy nie ,
ile pomiarow zmiescilo sie w tolerancji i ile w tym czasie bylo bledow
Sygnal wejsciowy lepiej dac na int0 przez tranzystor ksztaltujacy impulsy
Napisz do czego to ma byc lub co ma robic


--
_
|\ /| (_
| |___) m__s_at_nospam_go2.pl
___________________________
Ziemia jest pieklem innego swiata






--
Logitech Cordless Desktop iTouch? Za darmo ?!? http://konkurs.rubikon.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Michał Smolnik" <smolnik_news_at_nospam_go2.pl>
Subject: Re: Problem: pomiar częstotliwości na 2051(1051)
Date: 23 Sep 2000 14:50:01 GMT


/\ MS_\ <m__s_at_nospam_go2.pl> napisał(a) w artykule
<8qhta5$atu$1_at_nospam_aquarius.webcorp.com.pl>...
{ciach}
Sygnal wejsciowy lepiej dac na int0 przez tranzystor ksztaltujacy impulsy
Napisz do czego to ma byc lub co ma robic

To ma być domofon współpracujący z dowolną centralą wewnętrzną.
Wykorzystałem bebechy z aparatu głośnomówiącego (wychodzi taniej niż
kupowanie części), a że telefon nie ma separacji galwanicznej od sieci tel.
nie chcę łączyć procka (urządzenie zasilane będzie z sieci) bezpośrednio z
układem telefonu. Wpadłem na pomysł, żeby przy głośniku dać mikrofon
elektretowy i przy pomocy komparatora mierzyć długość impulsów.

Dzięki za zainteresowanie.

--
pozdrawiam
Michał Smolnik
smolnik_at_nospam_go2.pl


Poprzedni Następny
Wiadomość
Spis treści
From: "Michał Smolnik" <smolnik_news_at_nospam_go2.pl>
Subject: Re: Problem: pomiar częstotliwości na 2051(1051)
Date: 23 Sep 2000 19:11:04 GMT


napisałem:

To ma być domofon współpracujący z dowolną centralą wewnętrzną.
Wykorzystałem bebechy z aparatu głośnomówiącego (wychodzi taniej niż
kupowanie części), a że telefon nie ma separacji galwanicznej od sieci
tel.
nie chcę łączyć procka (urządzenie zasilane będzie z sieci) bezpośrednio
z
układem telefonu. Wpadłem na pomysł, żeby przy głośniku dać mikrofon
elektretowy i przy pomocy komparatora mierzyć długość impulsów.

Spoko, już rozwiązałem, ale mam problem z BASCOMEM - nie akceptuje
polecenia SELECT CASE (niby działa, ale gdy END SELECT znajduje się na
swoim miejscu, to pisze, że nie ma Select Case, a gdy usunę End Select, to
pisze, że właśnie jego brakuje). Co zrobić?

--
pozdrawiam
Michał Smolnik
smolnik_at_nospam_go2.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Rafal Baranowski" <Rafal.Baranowski_at_nospam_bloknet.com.pl>
Subject: Odp: Problem: pomiar częstotliwości na 2051(1051)
Date: Sun, 24 Sep 2000 20:29:01 +0200


Spoko, już rozwiązałem, ale mam problem z BASCOMEM - nie akceptuje
polecenia SELECT CASE (niby działa, ale gdy END SELECT znajduje się na
swoim miejscu, to pisze, że nie ma Select Case, a gdy usunę End Select, to
pisze, że właśnie jego brakuje). Co zrobić?

Uzyc if, then, elseif. Bascom ma mnostwo bugow... Nie wiem jak mozna takie
cos wypuszczac na rynek.

Pozdrawiam,
Rafal.




Poprzedni Następny
Wiadomość
Spis treści
From: "Michał Smolnik" <smolnik_news_at_nospam_go2.pl>
Subject: Re: Problem: pomiar częstotliwości na 2051(1051)
Date: 26 Sep 2000 09:56:27 GMT


Rafal Baranowski <Rafal.Baranowski_at_nospam_bloknet.com.pl> napisał(a) w artykule
<8qlgpc$j1l$1_at_nospam_zeus.polsl.gliwice.pl>...
Uzyc if, then, elseif. Bascom ma mnostwo bugow... Nie wiem jak mozna
takie
cos wypuszczac na rynek.

Już wiem, co jest. W helpie pisze, że w poleceniu CASE można użyć składni
np. 10 TO 15.
W rzeczywistości (jest to opisane w przykładach, które można ściągnąć ze
strony Bascoma) kompilator nie dopuszcza takiego czegoś.

Co do bugów Bascoma, to racja. Dlatego piszę, że używam go z lenistwa. Gdy
mam zrobić coś, co jest trywialnie proste i nie musi być szybkie, to robię
to w BASCOMIE, a gdy ma być niezawodne i wykorzystywać możliwości procka,
to w ASMie. Czasami zastępuję wadliwe komendy własnymi wstawkami w
asemblerze.

Programy na tym poziomie powinni wypuszczać w wersji beta. Nie rozumiem
zachwytu p. Raabe (EdW) nad cudownością tego kompilatora. Przecież mniej
czasu trwałoby nauczenie się maszynowego niż bawienie się w detektywa i
wyszukiwaniu co tak naprawdę nie gra, szczególnie, że komunikaty błędów
nijak mają się do faktycznej przyczyny błędu.
Do oswojenia się z procesorem Bascom jest dobry, ale ja wolę mieć poczucie
pełnej kontroli nad procesorem, wiedzieć co siedzi w jakim rejestrze. Z
drugiej strony wykonywanie bardziej skomplikowanych obliczeń na dużych
liczbach jest takie proste... Jestem w rozterce, chyba przesiądę się na C
(najpierw muszę go poznać).

--
pozdrawiam
Michał Smolnik
smolnik_at_nospam_go2.pl

Poprzedni Następny
Wiadomość
Spis treści
From: Sebastian =?iso-8859-1?Q?Bia=B3y?= <heby_at_nospam_poczta.onet.pl>
Subject: Re: Problem: pomiar =?iso-8859-1?Q?cz=EAstotliwo=B6ci?= na 2051(1051)
Date: Mon, 25 Sep 2000 11:33:21 +0200


"Michał Smolnik" napisał(a):
Jak mierzyć częstotliwość sygnału (z małą dokładnością), by wykryć
charakterystyczny ton centrali (~300Hz) i czas trwania sygnału (rozróżniać
typy sygnałów). Na sygnał nakładają się też zakłócenia (stukanie w klawisze

Moze jednak nie robic na sile za pomoca uC ? Zdaje sie, ze twoj problem
to wykrycie okreslonej czestotliwosci w szumie. Chyba mozna by
zastosowac prosty filtr i jakis detektor np. NE567. moze z reszta
wystarszyl by sam detektor bez filtra. W sumie 1 scalak i pare elementow
biernych wiecej.

--

Sebastian Bialy - heby_at_nospam_poczta.onet.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Michał Smolnik" <smolnik_news_at_nospam_go2.pl>
Subject: Re: Problem: pomiar częstotliwości na 2051(1051)
Date: 27 Sep 2000 19:22:51 GMT


Sebastian Biały <heby_at_nospam_poczta.onet.pl> napisał(a) w artykule
Moze jednak nie robic na sile za pomoca uC ? Zdaje sie, ze twoj problem
to wykrycie okreslonej czestotliwosci w szumie. Chyba mozna by
zastosowac prosty filtr i jakis detektor np. NE567. moze z reszta
wystarszyl by sam detektor bez filtra. W sumie 1 scalak i pare elementow
biernych wiecej.

Wykrywanie tej częstotliwości to połowa roboty, potem jest jeszcze
wybieranie impulsów telefonicznych w dekadzie (impulsowo), obsługa
klawiatury (kilku klawiszy), wyświetlacza. Słowem - typowe zadanie na
mikroprocesor.
Zbudowane z dyskretnych elementów mogłoby zajšć dobrš szafę.

Ale zamiast bawić się w programowe wykrywanie częstotliwości, zrobiłem
"koprocesor" na NE567 i do wejścia podaję już efekt porównania
--
pozdrawiam
Michał Smolnik
smolnik_at_nospam_go2.pl