PC
Guest
Sun Apr 06, 2008 6:45 pm
Mam problem, bo w układzie pracuje DS1820 a steruję wentylatorem poprzez PWM
synchronizując start triaka z zerem w sieci. Niestety na czas odczytu
termometru muszę wyłączać przerwania bo inaczej pojawiają się błędy w
transmisji 1 wire. Efektem są pukniecia wentylatora. Jako, że odczyty
temperatury są dość częste pojawiają się 2 kwestie:
1. Jest to irytujące;
2. Może to wpływać na trwałość wentylatora.
Przy założeniu, że musi być 1 wire (odległość) jak sterować wentylatorem
poprzez PWM, żeby wyeliminować ten problem? Może jest jakiś scalak?
Pozdrawiam,
PC
Zbych
Guest
Sun Apr 06, 2008 7:33 pm
PC przemówił ludzkim głosem:
Quote:
Mam problem, bo w układzie pracuje DS1820 a steruję wentylatorem poprzez PWM
synchronizując start triaka z zerem w sieci. Niestety na czas odczytu
termometru muszę wyłączać przerwania bo inaczej pojawiają się błędy w
transmisji 1 wire. Efektem są pukniecia wentylatora. Jako, że odczyty
temperatury są dość częste pojawiają się 2 kwestie:
1. Jest to irytujące;
2. Może to wpływać na trwałość wentylatora.
Przy założeniu, że musi być 1 wire (odległość) jak sterować wentylatorem
poprzez PWM, żeby wyeliminować ten problem? Może jest jakiś scalak?
Spróbuj wykorzystać UART do odmierzania czasów trwania bitów na 1-wire,
nie będziesz musiał wtedy wyłączać przerwań.
Zbych
Guest
Sun Apr 06, 2008 7:33 pm
PC przemówił ludzkim głosem:
Quote:
Mam problem, bo w układzie pracuje DS1820 a steruję wentylatorem poprzez PWM
synchronizując start triaka z zerem w sieci. Niestety na czas odczytu
termometru muszę wyłączać przerwania bo inaczej pojawiają się błędy w
transmisji 1 wire. Efektem są pukniecia wentylatora. Jako, że odczyty
temperatury są dość częste pojawiają się 2 kwestie:
1. Jest to irytujące;
2. Może to wpływać na trwałość wentylatora.
Przy założeniu, że musi być 1 wire (odległość) jak sterować wentylatorem
poprzez PWM, żeby wyeliminować ten problem? Może jest jakiś scalak?
Spróbuj wykorzystać UART do odmierzania czasów trwania bitów na 1-wire,
nie będziesz musiał wtedy wyłączać przerwań.
A. Grodecki
Guest
Sun Apr 06, 2008 7:55 pm
PC napisał(a):
Quote:
Przy założeniu, że musi być 1 wire (odległość) jak sterować wentylatorem
poprzez PWM, żeby wyeliminować ten problem? Może jest jakiś scalak?
Chcesz powiedzieć, że 10ms nie wystarczy żeby zrobić odczyt temperatury
miedzy przerwaniami???
--
Pozdrawiam,
A. Grodecki
"Wszystkie zwierzęta sa równe.
Ale te, które mają futerko w trzykolorowe pasy, są równiejsze."
A. Grodecki
Guest
Sun Apr 06, 2008 7:55 pm
PC napisał(a):
Quote:
Przy założeniu, że musi być 1 wire (odległość) jak sterować wentylatorem
poprzez PWM, żeby wyeliminować ten problem? Może jest jakiś scalak?
Chcesz powiedzieć, że 10ms nie wystarczy żeby zrobić odczyt temperatury
miedzy przerwaniami???
--
Pozdrawiam,
A. Grodecki
"Wszystkie zwierzęta sa równe.
Ale te, które mają futerko w trzykolorowe pasy, są równiejsze."
Konop
Guest
Sun Apr 06, 2008 10:51 pm
PC pisze:
Quote:
Mam problem, bo w układzie pracuje DS1820 a steruję wentylatorem poprzez PWM
synchronizując start triaka z zerem w sieci. Niestety na czas odczytu
termometru muszę wyłączać przerwania bo inaczej pojawiają się błędy w
transmisji 1 wire. Efektem są pukniecia wentylatora. Jako, że odczyty
temperatury są dość częste pojawiają się 2 kwestie:
1. Jest to irytujące;
2. Może to wpływać na trwałość wentylatora.
Przy założeniu, że musi być 1 wire (odległość) jak sterować wentylatorem
poprzez PWM, żeby wyeliminować ten problem? Może jest jakiś scalak?
Pozdrawiam,
PC
No masz kilka wyjść

...
1) z DSa czytać bezpośrednio po przerwaniu od timera... jeśli przerwania
są stosunkowo rzadko, a czas odczytu krótki - wyeliminuje to
"szarpnięcia"... oczywiście nie musisz czytać po każdym przerwaniu, ale
no. co 100 albo co 1000

...
2) skorzystać z np. AVRów, które mogą mieć sprzętowy PWM... ale to chyba
wywoła problem z synchronizacją z zerem w sieci - ale nie wiem, może
jest jakiś tryb PWM który to zapewnia (jest ich tyle, że nie sposób
wszystkie zapamiętać

)
3) skorzystać z innego proca, który sprzętowo obsłuży 1wire
4) wykorzystanie do 1wire timera (timer liczy czas także w trakcie
trwania przerwania, więc przerwania od PWMa nie spowodują złego timingu
na 1wire)...
Pozdrawiam
Konop
Konop
Guest
Sun Apr 06, 2008 10:51 pm
PC pisze:
Quote:
Mam problem, bo w układzie pracuje DS1820 a steruję wentylatorem poprzez PWM
synchronizując start triaka z zerem w sieci. Niestety na czas odczytu
termometru muszę wyłączać przerwania bo inaczej pojawiają się błędy w
transmisji 1 wire. Efektem są pukniecia wentylatora. Jako, że odczyty
temperatury są dość częste pojawiają się 2 kwestie:
1. Jest to irytujące;
2. Może to wpływać na trwałość wentylatora.
Przy założeniu, że musi być 1 wire (odległość) jak sterować wentylatorem
poprzez PWM, żeby wyeliminować ten problem? Może jest jakiś scalak?
Pozdrawiam,
PC
No masz kilka wyjść

...
1) z DSa czytać bezpośrednio po przerwaniu od timera... jeśli przerwania
są stosunkowo rzadko, a czas odczytu krótki - wyeliminuje to
"szarpnięcia"... oczywiście nie musisz czytać po każdym przerwaniu, ale
no. co 100 albo co 1000

...
2) skorzystać z np. AVRów, które mogą mieć sprzętowy PWM... ale to chyba
wywoła problem z synchronizacją z zerem w sieci - ale nie wiem, może
jest jakiś tryb PWM który to zapewnia (jest ich tyle, że nie sposób
wszystkie zapamiętać

)
3) skorzystać z innego proca, który sprzętowo obsłuży 1wire
4) wykorzystanie do 1wire timera (timer liczy czas także w trakcie
trwania przerwania, więc przerwania od PWMa nie spowodują złego timingu
na 1wire)...
Pozdrawiam
Konop
PC
Guest
Mon Apr 07, 2008 7:28 am
Nie pomyślałem, żeby czytać temeraturę w podprogramie obsługi przerwania!!
Dzięki.
PC
Konop
Guest
Mon Apr 07, 2008 5:45 pm
PC pisze:
Quote:
Nie pomyślałem, żeby czytać temeraturę w podprogramie obsługi przerwania!!
No ja kiedyś robiłem termometr z wyświetlaczem 7-segmentowym i też
musiałem to zrobić, żeby wyświetlacz nie migotał

... niby takie
oczywiste, a też nie od razu na to wpadłem

...
Pozdrawiam
Konop
PC
Guest
Wed Apr 09, 2008 10:40 am
Udało się w końcu choć nie było to takie oczywiste. W zależności od
wymaganego opóźnienia impulsu sterujacego triakiem muszę procedury obsługi
DS-a uruchamiać albo przed impulsem albo za. Ale teraz działa idealnie.
Pozdrawiam,
PC
Peacemaker
Guest
Mon Apr 14, 2008 12:15 pm
Quote:
Mam problem, bo w układzie pracuje DS1820 a steruję wentylatorem poprzez
PWM synchronizując start triaka z zerem w sieci. Niestety na czas odczytu
termometru muszę wyłączać przerwania bo inaczej pojawiają się błędy w
transmisji 1 wire. Efektem są pukniecia wentylatora. Jako, że odczyty
temperatury są dość częste pojawiają się 2 kwestie:
1. Jest to irytujące;
2. Może to wpływać na trwałość wentylatora.
Przy założeniu, że musi być 1 wire (odległość) jak sterować wentylatorem
poprzez PWM, żeby wyeliminować ten problem? Może jest jakiś scalak?
Pozdrawiam,
PC
Z ciekawości, a jak ty sygnałem PWM sterujesz tego triaka skoro triaka
włączysz ale wyłącza go jedynie przejście przez zero?
--
--
pzdr
peacemaker
>
PC
Guest
Fri Apr 18, 2008 8:09 am
Quote:
Z ciekawości, a jak ty sygnałem PWM sterujesz tego triaka skoro triaka
włączysz ale wyłącza go jedynie przejście przez zero?
W zerze sieci dostaję przerwanie z AC na wtórnym przez diodę. Startuję timer
i mierzę opóźnienie. Gdy timer odmierzy co trzeba daję szpilkę na triaka a
wyłacza się sam w zerze. Cykl powtarza się co pół okresu sieci.
PC