Podstawy o nowych procesorach Microchip ( Atmel ) serii AVR128xx.
Omówię tu część rejestrów o przedstawię praktyczne ich wykorzystanie.
Procesory tej serii są wyposażone w zegar wewnętrzny z taktowaniem do 24MHz oraz wewnętrzny zegar RTC.
Na poniższym rysunku jest przedstawiony diagram zależności urządzeń od oscylatorów wewnętrznych jak i zewnętrznych procesora.
Rozpiska bitów i ich znaczenie w rejestrach kontroli zegara.
CLKCTRL.MCLKCTRLA
Bit.7 - CLKOUT Kiedy ten bit jest zapisany na „1”, zegar peryferyjny jest wysyłany na pin CLKOUT. Dopóki działa zegar peryferyjny, zegar jest wyprowadzany na pin.
Bity 3:0 - CLKSEL To pole bitowe wybiera źródło zegara głównego (CLK_MAIN).
CLKCTRL.MCLKCTRLB
Bity 4: 1 - PDIV [3: 0] Podział preskalera
Value       Name     Description
0x0Â Â Â Â Â Â Â Â Â DIV2 Â Â Â Â Â CLK_MAIN divided by 2
0x1 Â Â Â Â Â Â Â Â Â DIV4 Â Â Â Â Â CLK_MAIN divided by 4
0x2 Â Â Â Â Â Â Â Â Â DIV8 Â Â Â Â Â CLK_MAIN divided by 8
0x3 Â Â Â Â Â Â Â Â Â DIV16 Â Â Â CLK_MAIN divided by 16
0x4 Â Â Â Â Â Â Â Â Â DIV32 Â Â Â CLK_MAIN divided by 32
0x5 Â Â Â Â Â Â Â Â Â DIV64 Â Â Â CLK_MAIN divided by 64
0x6-0x7 Â Â Â - Reserved
0x8 Â Â Â Â Â Â Â Â Â DIV6 Â Â Â Â Â CLK_MAIN divided by 6
0x9 Â Â Â Â Â Â Â Â Â DIV10 Â Â Â CLK_MAIN divided by 10
0xA Â Â Â Â Â Â Â Â Â DIV12 Â Â Â CLK_MAIN divided by 12
0xB Â Â Â Â Â Â Â Â Â DIV24 Â Â Â CLK_MAIN divided by 24
0xC Â Â Â Â Â Â Â Â Â DIV48 Â Â Â CLK_MAIN divided by 48
other        - Reserved
Bit 0 - PEN Włącz prescaler
Ten bit musi być zapisany na „1”, aby włączyć preskaler.
Po włączeniu współczynnik podziału jest wybierany przez pole bitowe PDIV.
Kiedy ten bit zostanie zapisany na „0”, główny zegar przejdzie przez niepodzielony (CLK_PER = CLK_MAIN), niezależnie od wartości PDIV.
CLKCTRL.MCLKLOCK
Bit 0 - LOCKEN Włączenie blokady.
Zapisanie tego bitu na „1” zablokuje rejestry CLKCTRL.MCLKCTRLA i CLKCTRL.MCLKCTRLB oraz, jeśli ma to zastosowanie, ustawienia kalibracji bieżącego głównego źródła zegara przed dalszymi aktualizacjami oprogramowania.
Po zapisaniu rejestru CLKCTRL.MCLKLOCK nie będzie można dokonywać zmian do następnego resetu sprzętu. Chroni to rejestry CLKCTRL.MCLKCTRLA i CLKCTRL.MCLKCTRLB oraz ustawienia kalibracji głównego źródła zegara przed niezamierzoną modyfikacją przez oprogramowanie.
CLKCTRL.MCLKSTATUS
Rejestr przeznaczony tylko do odczytu.
Bit 5 - PLLS Stan PLL
        0 PLL nie jest stabilny
        1 PLL jest stabilny Bit 4 - EXTS Status zegara zewnętrznego
        0 EXTCLK nie jest stabilny
        1 EXTCLK jest stabilny Bit 3 - XOSC32KS Status zewnętrznego oscylatora kwarcowego 32768 Hz
        0 XOSC32K nie jest stabilny
        1 XOSC32K jest stabilny Bit 2 - OSC32KS Status wewnętrznego oscylatora 32768 Hz o bardzo małej mocy
        0 OSC32K nie jest stabilny
        1 OSC32K jest stabilny Bit 1 - OSCHFS - stan wewnętrznego oscylatora wysokiej częstotliwości
        0 OSCHF nie jest stabilny
        1 OSCHF jest stabilny Bit 0 - SOSC - Zmiana oscylatora głównego zegara
        0 źródło zegara CLK_MAIN nie jest przełączane
        1 Zegar
CLKCTRL.OSCHFCTRLA
Rejest po resecie przyjmuje następującą wartość 0000 1100 co oznacza start wewnętrznego zagara z prędkością taktowania 4MHz.
Bit 7 - RUNSTDBY Run Standby
Ten bit = 1 wprowadza oscylator w trybach uśpienia Active, Idle i Standby.
Wyjście oscylatora nie jest wysyłane do innych urządzeń peryferyjnych, jeśli nie jest wymagane.
Otwarcie bramki zegarowej po żądaniu zajmuje dwa cykle, ale czas rozruchu oscylatora zostanie usunięty.
Ten bit jest pod ochronÄ… przed zmianÄ… konfiguracji.
Bity 5: 2 - FRQSEL [3: 0] Wybór częstotliwości
To pole bitowe wybiera częstotliwość wyjściową oscylatora.
Value Name       Description
0x0   1 MHz      1 MHz output
0x1   2 MHz      2 MHz output
0x2   3 MHz       3 MHz output
0x3   4 MHz       4 MHz output (default)
0x4Â Â Â - Reserved
0x5   8 MHz       8 MHz output
0x6   12 MHz      12 MHz output
0x7   16 MHz      16 MHz output
0x8   20 MHz      20 MHz output
0x9   24 MHz      24 MHz output
Other - Reserved
Bit 0 - AUTOTUNE Włącz autodostrojenie.
Domyślnie po resecie autodostrojenie jest wyłączone.
Ten bit włącza funkcję automatycznego dostrajania oscylatora.
Automatyczne dostrajanie wykorzystuje kryształ 32768 Hz jako odniesienie, i kryształ musi być włączony, aby automatyczne dostrajanie działało.
Automatyczne dostrajanie poprawi dokładność oscylatora.
Bity 7: 0 - TUNE [7: 0] Strojenie częstotliwości użytkownika
Rejestr TUNE pozwala na dostrojenie częstotliwości wyjściowej wewnętrznego oscylatora wysokiej częstotliwości.
Wartość w tym rejestrze ma postać uzupełnienia do dwóch i zawiera 6-bitową wartość, przy czym bit 5 zawiera bit znaku.
Zapisy do bitu 5 zostaną odzwierciedlone na bitach 6 i 7, dając w wyniku wartość rejestru, która jest reprezentowana jako uzupełnienie do dwóch.
Zapisywanie do bitów 6 i 7 nie daje żadnego efektu.
Częstotliwość można dostroić o 32 kroki w dół lub 31 kroków w górę od docelowej częstotliwości oscylatora.
Oznacza to, że dopuszczalny zakres wartości wejściowych rejestru wynosi od -32 do +31.
Jeśli bit AUTOTUNE w rejestrze OSCHFCTRLA jest włączony, wartość TUNE jest zablokowana.
Rejestr TUNE jest aktualizowany najnowszą wartością strojenia, gdy funkcja AUTOTUNE jest wyłączona.