8051, 1 wire i synchronizacja sieci 230V

Apr 06, 2008 8 Replies

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



PC przemówił ludzkim głosem:

Spróbuj wykorzystać UART do odmierzania czasów trwania bitów na 1-wire, nie będziesz musiał wtedy wyłączać przerwań.

PC napisał(a):

Chcesz powiedzieć, że 10ms nie wystarczy żeby zrobić odczyt temperatury miedzy przerwaniami???

PC pisze:

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

Nie pomy¶la³em, ¿eby czytaæ temeraturê w podprogramie obs³ugi przerwania!!

Dziêki.

PC

PC pisze:

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 :P...

Pozdrawiam Konop

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

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

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required