Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 17 maja 2025, o 23:24


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 
    Autor Wiadomość
     Tytuł: PWM
    PostNapisane: 7 paź 2023, o 11:02 
    Offline
    Użytkownik

    Dołączył(a): 19 lip 2016
    Posty: 114
    Pomógł: 0

    Witam,
    Używam kontrolera m328P
    Mam ustawione 6 kanałów PWM
    Jakie są możliwości obniżenia częstotliwości?
    Jak skonfigurować żeby częstotliwość wynosiła 100- 300Hz na każdym kanale
    Wiem że można dzielić przez 8, zmniejszyć wartość rezonatora, ale to ciągle jest za szybko.
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: PWM
    PostNapisane: 7 paź 2023, o 11:52 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 26 sty 2016
    Posty: 1170
    Lokalizacja: Kraków
    Pomógł: 93

    Ustaw timer w najprostszym trybie.
    Stwórz dla każdego kanału trzy zmienne: wartośc aktualną, okres i wypełnienie.
    Na początku wusteruj wszystkie wyjścia.
    W obsłudze przepełnienia zwiększaj wartość aktualną każdego kanału.
    Jak przekroczysz wypełnienie, zeruj wyjście (dla każdego kanału osobno).
    Jak przekroszysz okres, zeruj wartość aktualną i wysteruj wyjście.

    To taki najszybszy, ręczny PWM, jeśli ten domyślny ma za dużą częstotliwość.
    Tylko pamiętaj, zmienną okres ustalasz rozdzielczość PWM (jeśli dasz okres 10, to wypełnienie masz co 10%, jak ustawisz 100 to już co 1% itd.).



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: PWM
    PostNapisane: 7 paź 2023, o 19:01 
    Offline
    Użytkownik

    Dołączył(a): 09 lip 2019
    Posty: 117
    Pomógł: 12

    Lu_let napisał(a):
    Witam,
    Używam kontrolera m328P
    Mam ustawione 6 kanałów PWM
    Jakie są możliwości obniżenia częstotliwości?
    Jak skonfigurować żeby częstotliwość wynosiła 100- 300Hz na każdym kanale
    [...]

    Prescaler Twoim przyjacielem.
    Na przykład na stronach Datasheeta 133-134 tego procka są wzory odnośnie uzyskiwanych częstotliwości
    fOCnxPWM = fclk_I/O/(N * (1 + TOP))
    gdzie N to wartość prescalera - 1, 8, 64, 256 lub 1024

    Częstotliwości takie jakie potrzebujesz bez problemu da się uzyskać nawet na procku przetaktowanym do 25MHz.

    Jak ustawisz prescaler na 1 to faktycznie przy taktowanym 16MHz dostaniesz minimalną częstotliwość dla timera 8-bit na poziomie 62.5kHz lub 31.25kHz. Przy Timerach 16-bitowych można zejść z tym prescalerem do 244Hz przy tej prędkości taktowania.

    Ale jak już użyjesz prescalera o wartości 256, to na start dostajesz częstotliwości - w zaleśności od trybu i typu timera - dla taktowania 16MHz - 8 bit - Fast PWM 244Hz, Phase Accurate - 122Hz. Dla 16-bitowych liczników z Fast PWM można zejść do 1Hz.

    Przy 16MHz taktowania, prescalerze 1024 i timerze 16 bit można uzyskać częstotliwości na poziomie 0.12Hz. Nic nie trzeba kombinować programowo :-)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: PWM
    PostNapisane: 7 paź 2023, o 19:28 
    Offline
    Użytkownik

    Dołączył(a): 19 lip 2016
    Posty: 114
    Pomógł: 0

    Czy da się ustawić PWM np. 244Hz na wszystkich sześciu wyjściach,
    i sterować każdym kanałem z osobna przez 6 wejść ADC?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: PWM
    PostNapisane: 7 paź 2023, o 20:19 
    Offline
    Użytkownik

    Dołączył(a): 09 lip 2019
    Posty: 117
    Pomógł: 12

    Lu_let napisał(a):
    Czy da się ustawić PWM np. 244Hz na wszystkich sześciu wyjściach,
    i sterować każdym kanałem z osobna przez 6 wejść ADC?

    W tej chwili akurat nie sprawdzę, ale w teorii powinno dać się coś takiego zrobić.
    Jakiś czas temu klepnąłem sobię funkcje do obsługi timerów - np. dla Timer0 interfejs wyglądał następująco:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    gdzie pierwszy paramtr to wartość prescalera, dutyA i dutyB to współczynniki wypełnienia i dodatkowo boole umożliwiające odwrócenie fazy

    Przy przykładowym użyciu typu
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    dostawałem takie przebiegi (tutaj akurat przykład dla ATmega256, dodatkowo pokazane zostały momenty wywołania poszczególnych przerwań na PB1/5/6 - każde przerwanie to zmiana stanu):
    Obrazek

    Osobny temat to oczywiście odczyt ADC i przepisywanie w odpowiedni sposób do rejestrów timera :-)

    PS. I jeszcze tabelka z przeliczonymi dla Timer0 minimalnymi częstotliwościami w zależności od częstotliwości zegara (odpowiada do prescalerowi ustawionemu na 1024, dla Timerów 16 bit wszystko trzeba podzielić pomnożyć przez 256)
    Obrazek



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: PWM
    PostNapisane: 8 paź 2023, o 20:09 
    Offline
    Użytkownik

    Dołączył(a): 19 lip 2016
    Posty: 114
    Pomógł: 0

    Witam
    Podłączyłem analizator stanów logicznych 6 przebiegów PWM

    Obrazek

    Wydaje się że działa dobrze, ale co dzieje się po odłączeniu programatora?

    Obrazek

    Jaki może być tego powód?
    Niestety nie mam oscyloskopu, może coś nie tak z analizatorem?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: PWM
    PostNapisane: 9 paź 2023, o 05:30 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27396
    Lokalizacja: Szczecin
    Pomógł: 1043

    pewnie masy masz niepołączone analizatora i swojego układu

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: PWM
    PostNapisane: 9 paź 2023, o 16:55 
    Offline
    Użytkownik

    Dołączył(a): 19 lip 2016
    Posty: 114
    Pomógł: 0

    Tak odpięła się masa, i obwód zamykał się przez programator.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: PWM
    PostNapisane: 13 paź 2023, o 18:25 
    Offline
    Użytkownik

    Dołączył(a): 19 lip 2016
    Posty: 114
    Pomógł: 0

    W poszukiwaniu mniejszej częstotliwości PWM
    zamieniłem kwarc na rezonator ceramiczny 480kHz
    Wcześniej używałem rezonatora kwarcowego 18432000Hz
    Zmieniłem źródło taktowania na "rezonator ceramiczny"

    Obrazek
    I przelutowałem rezonator ceramiczny 480kHz
    Teraz niestety nie mogę nic odczytać.

    Obrazek

    Co z tym zrobić? Powrót do poprzedniego kwarcu pewnie nic nie da.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: PWM
    PostNapisane: 13 paź 2023, o 22:02 
    Offline
    Użytkownik

    Dołączył(a): 13 lut 2012
    Posty: 174
    Pomógł: 10

    Próbowałeś metody Mirka?:
    https://www.youtube.com/watch?v=27GfQu66kjc&t=4s



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: PWM
    PostNapisane: 14 paź 2023, o 09:12 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27396
    Lokalizacja: Szczecin
    Pomógł: 1043

    Cytuj:
    Co z tym zrobić?

    zacznij od wylutowania tych kondensatorów co były przy kwarcu

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: PWM
    PostNapisane: 14 paź 2023, o 18:18 
    Offline
    Użytkownik

    Dołączył(a): 19 lip 2016
    Posty: 114
    Pomógł: 0

    Wylutowałem kondensatory, niestety nie ma komunikacji z procesorem.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: PWM
    PostNapisane: 15 paź 2023, o 12:58 
    Offline
    Użytkownik

    Dołączył(a): 13 lut 2012
    Posty: 174
    Pomógł: 10

    Może na próbę warto podmienić rezonator ceramiczny na inny lub zrobić układ RC np. R=33K, C=22pF lub większy C=27pF.
    https://microchipdeveloper.com/8bit:extrc
    Przykład podłaczenia podany jest w datasheet do atmega 8 lub atmega 32 (External RC Oscillator).



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: PWM
    PostNapisane: 15 paź 2023, o 15:55 
    Offline
    Użytkownik

    Dołączył(a): 13 lut 2012
    Posty: 174
    Pomógł: 10

    Można też pomyśleć o dołączeniu równolegle do obecnego rezonatora ceramicznego rezystora 1 M Ohm oraz kondensatorów C1 i C2 po 100 pF.


    Chyba, że jest coś nie tak z atmega328p i jest jakaś analogia do wątku:
    post236308.html#p236308


    Załączniki:

    Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 9 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO