Rysunku do tych artykułów też powstawały w Excelu :) http://www.leon-instruments.pl/2013/03/verilog-pwm-z-korekcja-fazy.html http://leon-instruments.blogspot.com/2013/09/wzmacniacze-operacyjne.html
Ciekawostka: W xmega64A3 w dokumentacji także jest wektor przerwania "OSCF_INT_vect" jednakże w pliku rejestrów iox64a3.h jest "OSC_XOSCF_vect" jako ten właśnie wektor 1. Tak jak by ktoś szukał :)
Witam. Mam problem ze skonfigurowaniem PLL. Wywołanie funkcji: http://pastebin.com/cn0e92dG kręci moją ATXmega16D4-AU do 40 MHz zamiast 32MHz (sprawdzałem na timerze i używając delay, oba sposoby wykazując 40MHz). Gdy jako sygnał zegarowy ustawię rezonator kwarcowy dostaję ładne 16MHz, czyli coś źle robię z PLL. PLL taktowany z 16MHz rezonatora, mnoży zegagar x8, później preskalery B i C dzielą zegar każdy przez dwa, co powinno dać 32MHz Mógłby mi Pan powiedzieć co jest nie tak? Dziękuję.
Wiem, że linkowanie do obcego forum nie jest ładne, ale proszę najwyżej tego nie dodawać do komentarzy. http://forum.atnel.pl/topic10829.html Wie może pan dlaczego |= nie jest równoznaczne z =, jeżeli wg. noty initial value rejestru OSC_PLLCTRL to 0? Proszę o maila. deerjelen@gmail.com. Ew mógłbym podesłać disassembly obu funkcji.
Trudno powiedzieć. Najprawdopodobniej coś już było wpisane do OSC_PLLCTRL i użycie operatora |= nadpisało nową wartość na starą i w ten sposób możliwe, że PLL dostawał nie ten sygnał co trzeba. Zdecydowanie odradzam stosowanie operatorów |= oraz &= wszędzie jak leci, bo można się na tym nieźle przejechać. Tylko operator = daje pewność, że odpowiednie bity zostaną ustawione lub wyzerowane (a poza tym = działa szybciej i zajmuje mniej pamięci niż |=)
Witam. W książce "AVR Praktyczne projekty" i w tym artykule pisze Pan, że do poprawnej pracy PLL, czętotliwość wyjściowa zegara musi wynosić co najmniej 10 MHz. Mógłby Pan podać źródło tej informacji bo szukałem w nocie PDF mojego procesora (ATXmega128A1U" oraz w dokumentacji AVR:1003 i nie udało mi sie na to trafić. Rozumiem przez to, że dla wewnętrznego oscylatora RC 2 MHz i PLL = 4 nie uda się uzyskać 8 MHz bo coś będzie się "krzaczyć"? Pozdrawiam
13 komentarze :
W jakim programie powstał schemat?
W Excelu :)
No te bloczki kolorowe tak mi właśnie znajomo wyglądały ;)
Rysunku do tych artykułów też powstawały w Excelu :)
http://www.leon-instruments.pl/2013/03/verilog-pwm-z-korekcja-fazy.html
http://leon-instruments.blogspot.com/2013/09/wzmacniacze-operacyjne.html
Ciekawostka:
W xmega64A3 w dokumentacji także jest wektor przerwania "OSCF_INT_vect" jednakże w pliku rejestrów iox64a3.h jest "OSC_XOSCF_vect" jako ten właśnie wektor 1.
Tak jak by ktoś szukał :)
Dlaczego ostatni zdefiniowany plik naglowkowy .h jest w "" a nie <> ?
Dlaczego ostatni .h jest w "" a nie <> ?
Bo to jest biblioteka lokalna a nie globalna
Witam.
Mam problem ze skonfigurowaniem PLL. Wywołanie funkcji:
http://pastebin.com/cn0e92dG
kręci moją ATXmega16D4-AU do 40 MHz zamiast 32MHz (sprawdzałem na timerze i używając delay, oba sposoby wykazując 40MHz).
Gdy jako sygnał zegarowy ustawię rezonator kwarcowy dostaję ładne 16MHz, czyli coś źle robię z PLL.
PLL taktowany z 16MHz rezonatora, mnoży zegagar x8, później preskalery B i C dzielą zegar każdy przez dwa, co powinno dać 32MHz
Mógłby mi Pan powiedzieć co jest nie tak?
Dziękuję.
W jaki sposób dokładniej mierzysz częstotliwość zegara?
Wiem, że linkowanie do obcego forum nie jest ładne, ale proszę najwyżej tego nie dodawać do komentarzy.
http://forum.atnel.pl/topic10829.html
Wie może pan dlaczego |= nie jest równoznaczne z =, jeżeli wg. noty initial value rejestru OSC_PLLCTRL to 0? Proszę o maila. deerjelen@gmail.com. Ew mógłbym podesłać disassembly obu funkcji.
Trudno powiedzieć. Najprawdopodobniej coś już było wpisane do OSC_PLLCTRL i użycie operatora |= nadpisało nową wartość na starą i w ten sposób możliwe, że PLL dostawał nie ten sygnał co trzeba. Zdecydowanie odradzam stosowanie operatorów |= oraz &= wszędzie jak leci, bo można się na tym nieźle przejechać. Tylko operator = daje pewność, że odpowiednie bity zostaną ustawione lub wyzerowane (a poza tym = działa szybciej i zajmuje mniej pamięci niż |=)
Witam. W książce "AVR Praktyczne projekty" i w tym artykule pisze Pan, że do poprawnej pracy PLL, czętotliwość wyjściowa zegara musi wynosić co najmniej 10 MHz. Mógłby Pan podać źródło tej informacji bo szukałem w nocie PDF mojego procesora (ATXmega128A1U" oraz w dokumentacji AVR:1003 i nie udało mi sie na to trafić. Rozumiem przez to, że dla wewnętrznego oscylatora RC 2 MHz i PLL = 4 nie uda się uzyskać 8 MHz bo coś będzie się "krzaczyć"?
Pozdrawiam
Prześlij komentarz
Skomentuj!