b. 임베디드/AVR
[ATtiny1616] 메인 Clock 설정
로봇쟁이
2022. 4. 27. 13:51
해당 클럭은 다음과 같이 기본 특징이 정리되어 있습니다.
제가 만든 회로에는 별도의 외부 크리스탈이 없어서 내부 오실레이터를 사용합니다.
블럭다이어 그램을 보니 내부에 오실레이터 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로 설정이 완료되었습니다.
메인클럭 설정은 끝이 납니다.
반응형