반응형
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 모드로 설정해주어야 한다.
반응형
'프로젝트 > 임베디드' 카테고리의 다른 글
[이론] SPI 통신 (0) | 2025.04.28 |
---|---|
UART 통신 (0) | 2025.04.07 |
JTAG/SWD 동작 안하는 경우 봐야할 것!! (0) | 2025.02.22 |
0. PPG에 대하여 (0) | 2024.05.07 |
5. 임베디드 실습 : GPIO + Systick (1) | 2024.01.26 |