해당 클럭은 다음과 같이 기본 특징이 정리되어 있습니다.
제가 만든 회로에는 별도의 외부 크리스탈이 없어서 내부 오실레이터를 사용합니다.
블럭다이어 그램을 보니 내부에 오실레이터 16/20MHz와, 저전력용 32.768kHz 사용이 가능한걸 확인할수 있습니다.
메인클럭은 CLKCTRL.MCLKCTRLA와 CLKCTRL.MCLKCTRLB 레지스터가 담당하는걸 유추 가능합니다.
클럭은 Configuration Change Protection(일명 CCP)로 보호되어 있기 때문에 별도의 함수를 이용해서 진행해야 합니다.
void clockInit(void)
{
_PROTECTED_WRITE(CLKCTRL.MCLKCTRLA, CLKCTRL_CLKSEL_OSC20M_gc);
_PROTECTED_WRITE(CLKCTRL.MCLKCTRLB, 0 << CLKCTRL_PEN_bp);
}
저는 OSC20M을 사용할 것이고 Prescaler를 disable시키고 Fuse에서 20MHz로 설정하면
기본 클럭은 20MHz로 설정이 완료되었습니다.
메인클럭 설정은 끝이 납니다.
반응형
'b. 임베디드 > AVR' 카테고리의 다른 글
[ATtiny1616] TCA 타이머 사용하기 (0) | 2022.05.03 |
---|---|
[ATtiny1616] ADC 함수 만들기 (0) | 2022.05.02 |
[ATtiny1616] TCB를 이용한 millis()함수 만들기 (0) | 2022.04.30 |
[ATtiny1616] GPIO 예제 (0) | 2022.04.28 |
[AVR128DA48] 타이머 TCB0 예제 (0) | 2022.04.06 |
[AVR128DA48] TWI (I2C) 동작 (PCA9685) (0) | 2022.04.05 |
[AVR128DA] Bootloader (0) | 2021.12.01 |
AVR128DA48 CURIOSITY Nano 시작... (0) | 2021.11.12 |