Jak mierzyc wypelnienie PWM sygnalu.
Masz problem? Zapytaj na forum elektroda.pl z bramką pl.misc.elektronika!
From: Janusz Kossek <scalak_at_nospam_erinet.com>
Subject: Jak mierzyc wypelnienie PWM sygnalu.
Date: Sat, 25 Oct 1997 09:20:26 -0400
Czesc,
Mam maly problem z ktorym chcialbym sie z Wami podzielic i prosic o
sugestie. Moze wyda sie wam trywialny ale mam z nim maly klopot.
Otoz moj uklad pracuje na PIC16C711 (1k pamieci ROM/ 68 RAM)
microprocesorze. Microprocessor ma tyko jeden timer TMR0 (8bit), i 5
zewnetrznych przerwan (1 reagujace na zbocza i 4 reagujace na zmiane
"on change"). Jednym z zadan jakie micro musi wykonaywac jest pomiar
PWM signalu a dokladnie musi rozroznic 6 roznych jego wartosci (
9.1%, 18.2%, 33.6% , 43.2%, 52.6%, 64.3% i 72,2% ). Syganal jest dosc
wolny, jego nominalna wartosc jest T=9.167 ms +-5%. Signal jest
wysylany z wypelnieniem z dokladnoscia do +-3%. Innym dodatkowo
uzalenionym czasowo zadanie jakie uklad musi wykonywac jest generowanie
ciaglego pakietu impulsow(2 impulsu o roznych wypelnieniach) o czsie
trwania 10ms . Oba powyzej wymienione zadania stanowia 25% wszystkich
zadan wykonywanych przez uklad ( a wiec algorytm musi szanowac pamiec)
Moje pytanie, czy macie sugestie jak mierzyc i dekodowac wejsciowy
PWM sygnal bez uzywania dzielenia. Micro ma tylko 1k pamieci i
oczywiscie jak wiekszosc PIC nie ma programowego dzielenia (do
dyspozycji tylko dzielenie i mnozenie przez 2 - shift instrukcje).
Dlaczego PIC ; bo uklad musi byc tani jak barszcz i ma mierzyc dwa
anlogowe sygnaly i kilka cyfrowych tez, dodatkowo sterujac 3 wyjsciami.
Zegar tego ukladu jest oparty na 2% ( w calym przedziale temperaturowym)
ceramicznym rezonatorze, parcujacym z szybkoscia 4 MHz (Kwarc bedzie za
drogi). Zwiekszenie szybkosci zegara nie wchodzi rowniez w rachube (i
tak pracuje za szybko).
Bede Wam bardzo wdzieczny za wszystkie sugestie.
Janusz
From: jareka_at_nospam_dawid.com.pl (Jarek Andrzejewski)
Subject: Re: Jak mierzyc wypelnienie PWM sygnalu.
Date: Sun, 26 Oct 1997 20:52:40 GMT
Najpierw lamerskie pytanie: czy ten "picek" ma A/C? Jeśli tak - to
można scałkować sygnał i przetwarzać go. Jeśli nie ma A/C, to nie mam
pomysłu.
Jarek Andrzejewski
From: bieniek_at_nospam_zr.ita.pwr.wroc.pl (Pawel B.)
Subject: Re: Jak mierzyc wypelnienie PWM sygnalu.
Date: 27 Oct 1997 07:22:06 GMT
In article <3451F21A.61931FA9_at_nospam_erinet.com>, Janusz Kossek <scalak_at_nospam_erinet.com> says:
Czesc,
Mam maly problem z ktorym chcialbym sie z Wami podzielic i prosic o
sugestie. Moze wyda sie wam trywialny ale mam z nim maly klopot.
Otoz moj uklad pracuje na PIC16C711 (1k pamieci ROM/ 68 RAM)
microprocesorze. Microprocessor ma tyko jeden timer TMR0 (8bit), i 5
zewnetrznych przerwan (1 reagujace na zbocza i 4 reagujace na zmiane
"on change"). Jednym z zadan jakie micro musi wykonaywac jest pomiar
PWM signalu a dokladnie musi rozroznic 6 roznych jego wartosci (
9.1%, 18.2%, 33.6% , 43.2%, 52.6%, 64.3% i 72,2% ). Syganal jest dosc
wolny, jego nominalna wartosc jest T=9.167 ms +-5%. Signal jest
wysylany z wypelnieniem z dokladnoscia do +-3%. Innym dodatkowo
uzalenionym czasowo zadanie jakie uklad musi wykonywac jest generowanie
ciaglego pakietu impulsow(2 impulsu o roznych wypelnieniach) o czsie
trwania 10ms . Oba powyzej wymienione zadania stanowia 25% wszystkich
zadan wykonywanych przez uklad ( a wiec algorytm musi szanowac pamiec)
Moje pytanie, czy macie sugestie jak mierzyc i dekodowac wejsciowy
PWM sygnal bez uzywania dzielenia. Micro ma tylko 1k pamieci i
oczywiscie jak wiekszosc PIC nie ma programowego dzielenia (do
dyspozycji tylko dzielenie i mnozenie przez 2 - shift instrukcje).
Dlaczego PIC ; bo uklad musi byc tani jak barszcz i ma mierzyc dwa
anlogowe sygnaly i kilka cyfrowych tez, dodatkowo sterujac 3 wyjsciami.
Zegar tego ukladu jest oparty na 2% ( w calym przedziale temperaturowym)
ceramicznym rezonatorze, parcujacym z szybkoscia 4 MHz (Kwarc bedzie za
drogi). Zwiekszenie szybkosci zegara nie wchodzi rowniez w rachube (i
tak pracuje za szybko).
To moze tak: czas trwania sygnalu jest staly. Podajesz go na wejscie przerwania
i traktujesz jako bramke. w czasie otwarcia bramki zliczasz impulsy z timera a potem
porownujesz z zakresami w pamieci, co pozwala ci na rozroznienie tych 6 wartosci.
Teraz tylko troche matematyki (ale na papierze, a nie wprocesorze) i moze cos z tego
bedzie
Pozdrowienia
Pawel B.
Bede Wam bardzo wdzieczny za wszystkie sugestie.
Janusz