Atmega328p - USART & CKDIV8

Czyli wszystko co potrzebne prawdziwemu DIY'owi;) Porady, pytania i opisy używanego przez nas sprzętu.
marecki-1993
Posty: 11
Rejestracja: piątek 25 paź 2013, 10:04
Lokalizacja: waw

Atmega328p - USART & CKDIV8

Post autor: marecki-1993 »

Witam,

Jeśli taktuję kwarcem=16MHz to po ustawieniu CKDIV8 procesor jest taktowany 2MHz.
Czy USART będzie taktowany z 16MHz, czy 2MHz ?

Pozdrawiam.
Awatar użytkownika
Flora
Posty: 221
Rejestracja: wtorek 25 wrz 2012, 13:38
Lokalizacja: Bydgoszcz

Post autor: Flora »

Źródłem sterującym dla USARTa jest sygnał zegarowy po preskalerze (cały procesor pracuje z taką częstotliwością), czyli w Twoim przypadku będzie to częstotliwość 2MHz

Jest to rozrysowane w dokumentacji na stronie 26.
marecki-1993
Posty: 11
Rejestracja: piątek 25 paź 2013, 10:04
Lokalizacja: waw

Post autor: marecki-1993 »

To dlaczego po wgraniu bootloadera dla Adruino (który emuluje STK500) i ustawieniu CKDIV8 jak w oryginale, bootloader komunikuje się z prędkością 57600 ?

Przecież dla tej prędkości na USART byłyby problemy z komunikacją (8,5% błędów).
Awatar użytkownika
ElSor
Site Admin
Posty: 5041
Rejestracja: niedziela 13 wrz 2009, 12:52
Lokalizacja: Ozimek

Post autor: ElSor »

Może w bootloaderze jest ustawiany rejestr CLKPR – Clock Prescale Register (strona 37 w PDFie).
marecki-1993
Posty: 11
Rejestracja: piątek 25 paź 2013, 10:04
Lokalizacja: waw

Post autor: marecki-1993 »

Widziałem ten rejestr, ale nie za bardzo wiem jak on "działa".
Czy w każdym momencie można zmienić w programie częstotliwość taktowania procka ?
Czy niezależnie od ustawienia CKDIV8 można zmieniać CLKPR ?
Awatar użytkownika
ElSor
Site Admin
Posty: 5041
Rejestracja: niedziela 13 wrz 2009, 12:52
Lokalizacja: Ozimek

Post autor: ElSor »

Tak to wygląda właśnie ale nie dam głowy, bo osobiście nie korzystałem z niego.

Napisz sobie prosty program z miganiem diody i sprawdź jak działa ten rejestr.
ODPOWIEDZ