프로젝트/임베디드
RCC 오실로스코프로 확인하기
잡학다식을꿈꾼다
2025. 4. 7. 11:47
반응형
STM32 계열 MCU를 다루면서 기본적으로 클럭을 설정하고 배분해주어야 한다. 그런데 막상 클럭 설정이 원하는 대로 설정되었는 지 확인하기란 요원하다. 다행히도 RCC CFGR 레지스터는 클럭을 핀으로 출력하여 확인할 수 있도록 기능을 제공한다. STM32F103RBT6을 기준으로는 PA8로 출력된다.

시스템 클럭, HSI 클럭, HSE 클럭, PLL 클럭/2 옵션이 있고 필요에 따라서 선택하면 된다. 주의할 점은 기재된 것처럼 MCO로 출력되는 신호의 주파수는 50MHz을 넘어서는 안된다. 트리를 보면 좀 더 이해가 쉬울 것이다.

CMSIS 라이브러리를 사용하고 있다면 RCC CFGR을 설정할 때 다음의 코드를 삽입해주면 된다.
//원하는 것 한 개 선택
MODIFY_REG(RCC->CFGR, RCC_CFGR_MCO, RCC_CFGR_MCO_NOCLOCK);
MODIFY_REG(RCC->CFGR, RCC_CFGR_MCO, RCC_CFGR_MCO_SYSCLK);
MODIFY_REG(RCC->CFGR, RCC_CFGR_MCO, RCC_CFGR_MCO_HSI);
MODIFY_REG(RCC->CFGR, RCC_CFGR_MCO, RCC_CFGR_MCO_HSE);
MODIFY_REG(RCC->CFGR, RCC_CFGR_MCO, RCC_CFGR_MCO_PLLDIV2);
그러면 MCO로 출력 가능하다. 단 바로 출력 가능한 것은 아니고, 별도로 MCO핀(PA8 or else)에 대해서 alternate pushpull output 모드로 설정해주어야 한다.
반응형