Strona 1 z 1

Atmega328p - USART & CKDIV8

: wtorek 19 lis 2013, 22:39
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.

: środa 20 lis 2013, 06:41
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.

: środa 20 lis 2013, 18:07
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).

: środa 20 lis 2013, 20:47
autor: ElSor
Może w bootloaderze jest ustawiany rejestr CLKPR – Clock Prescale Register (strona 37 w PDFie).

: środa 20 lis 2013, 21:05
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 ?

: środa 20 lis 2013, 21:21
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.