Serwis Edukacyjny w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej Autor artykułu: mgr Jerzy Wałaszek |
©2024 mgr Jerzy Wałaszek |
https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines
Generacja czasu martwego opiera się na dwóch 4-bitowych licznikach zliczających w dół, które odliczają czas martwy, co pokazuje rysunek powyżej. Przed generatorem czasu martwego znajduje się dedykowany preskaler, który może dzielić zegar timera/licznika 1 (PCK lub CK) przez 1, 2, 4 lub 8. Udostępnia to duży zakres czasów martwych do generowania. Preskaler jest sterowany dwoma bitami DTPS1[1:0] z rejestru we/wy pod adresem 0x23. Blok posiada również detektor zboczy narastającego i opadającego, który jest używany do wyzwalania okresu zliczania czasu martwego. W zależności od zbocza jedno z przejść przy zboczach narastających OC1x lub OC1x jest opóźniane, aż licznik zliczy do zera. Komparator jest używany do porównywania licznika z zerem i zatrzymywania wstawiania czasu martwego po osiągnięciu zera. Licznik jest ładowany 4-bitową wartością DT1xH lub DT1xL z rejestru we/wy DT1x, zależnie od zbocza na wyjściu generatora PWM generator, gdy rozpoczęte zostało wstawienie czasu martwego.
Długość okresu zliczania ustawia użytkownik przez wybór
ustawień preskalera w rejestrze 0x23 i wybór wartości czasu
martwego w rejestrze we/wy DT1x. Rejestr DT1x składa się z dwóch
4-bitowych pól: DT1xH
i DT1xL, które oddzielnie kontrolują okresy czasu martwego
wyjścia PWM i jego wyjścia komplementarnego. W ten sposób
narastające zbocza na końcówkach OC1x i
OC1x mogą
posiadać różne okresy czasu martwego. Czas martwy jest ustawiany
jako liczba preskalowanych taktów zegarowych generatora czasu
martwego.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x23 | – | – | – | – | – | – | DTPS11 | DTPS10 | DTPS1 |
Zapis/Odczyt | O | O | O | O | O | O | Z/O | Z/O | |
Wartość początkowa | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Dedykowany preskaler czasu martwego znajdujący się przed generatorem czasu martwego może dzielić zegar timera/licznika 1 (PCK lub CK) przez 1, 2, 4 lub 8 udostępniając szeroki zakres czasów martwych, które mogą być generowane. Preskaler czasu martwego sterowany jest dwoma bitami DTPS1[1:0], które definiują współczynnik podziału preskalera wg poniższej tabelki.
DTPS11 | DTPS10 | Podział zegara timera/licznika 1 |
0 | 0 | przez 1 (bez dzielenia) |
0 | 1 | przez 2 |
1 | 0 | przez 4 |
1 | 1 | przez 8 |
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x25 | DT1AH3 | DT1AH2 | DT1AH1 | DT1AH0 | DT1AL3 | DT1AL2 | DT1AL1 | DT1AL0 | DT1A |
Zapis/Odczyt | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | |
Wartość początkowa | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Rejestr A wartości czasu martwego jest 8-bitowym rejestrem do zapisu/odczytu.
Opóźnienie czasu martwego na końcówkach OC1A i OC1A jest ustawiane przez wartość w rejestrze DT1A. Rejestr składa się z dwóch pól, DT1AH[3:0] i DT1AL[3:0], po jednym dla każdego komplementarnego wyjścia. Stąd różne czasy martwe można ustawić dla zbocza narastającego wyjścia OC1A i OC1A.
Czas martwy wyjścia OC1A. Opóźnienie czasu martwego jest ustawiane jako liczba preskalowanych taktów timera/licznika. Minimalny czas martwy wynosi zero, a maksymalny jest równy okresowi preskalowanego zegara timera/licznika przemnożonemu przez 15.
Czas martwy wyjścia OC1A. Opóźnienie czasu martwego jest ustawiane jako liczba preskalowanych taktów timera/licznika. Minimalny czas martwy wynosi zero, a maksymalny jest równy okresowi preskalowanego zegara timera/licznika przemnożonemu przez 15.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x24 | DT1BH3 | DT1BH2 | DT1BH1 | DT1BH0 | DT1BL3 | DT1BL2 | DT1BL1 | DT1BL0 | DT1B |
Zapis/Odczyt | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | |
Wartość początkowa | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Rejestr B wartości czasu martwego jest 8-bitowym rejestrem do zapisu/odczytu.
Opóźnienie czasu martwego na końcówkach OC1B i OC1B jest ustawiane przez wartość w rejestrze DT1B. Rejestr składa się z dwóch pól, DT1BH[3:0] i DT1BL[3:0], po jednym dla każdego komplementarnego wyjścia. Stąd różne czasy martwe można ustawić dla zbocza narastającego wyjścia OC1B i OC1B.
Czas martwy wyjścia OC1B. Opóźnienie czasu martwego jest ustawiane jako liczba preskalowanych taktów timera/licznika. Minimalny czas martwy wynosi zero, a maksymalny jest równy okresowi preskalowanego zegara timera/licznika przemnożonemu przez 15.
Czas martwy wyjścia OC1B. Opóźnienie czasu martwego jest ustawiane jako liczba preskalowanych taktów timera/licznika. Minimalny czas martwy wynosi zero, a maksymalny jest równy okresowi preskalowanego zegara timera/licznika przemnożonemu przez 15.
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2024 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.