Semiconductor, Embedded/2. STM32, Arduino

STM32 - Clock Configuration

잇(IT) 2024. 5. 25. 12:34

CubeIDE의 Clock Configuration에 대해 알아보겠다.

CubeIDE에는 위와 같이 Clock에 대한 설정을 할 수 있는 화면이 구성되어 있다.

위 구성은 실제 STM32F4 시리즈의 데이터 시트와 유사한 구조를 가지고 있다.


우선 Clock Tree에 있는 용어들을 먼저 정리해보겠다.

HCLK : Core Clock으로 실제 소스 코드를 동작시키는 Clock이다.

SYSCLK : System Clock으로 Power On Reset 직후에는 무조건 내부 Clock으로 먼저 동작한다.

HSE : High Speed External 외부 고속 Clock으로 STM32 외부에 Crystal/Ceramic resonator가 필요하다. Duty가 50% 이하인 외부 구형파, 삼각파 신호로도 사용이 가능하다 

HSI : High Speed Internal 내부 고속 Clock으로 STM32에 내장되어 있는 RC(저항, 컨패시터)발진 회로에 의해서 동작되는 Clock이다.  RC 발진회로의 특성 문제로 온도 상승에 따라 오차가 발생한다.

LSE : Low Speed External 외부 저속  Clock으로 32.768kHz의 Crystal/Ceramic resonator를 사용한다. 저전력 구현 및 정확한 시간(RTC)을 맞추기 위해서다.

LSI : Low Speed Internal 내부 저속 Clock으로 RTC Clock에 사용된다. (정확성 확보가 어렵다.)

CSS : Clock Scurity System HSE clock에 문제가 발생할 경우 NMI interrupt 발생 및 Clock source를 HSI Clock으로 변경해주는 기능이다.


위 사진처럼 빨간색 네모가 나오면 구현할 수 없는 주파수이기 때문에 수정해줘야 한다.

 

Clock Configuration에서 설정한 사항들은 main.c의 SystemClock_Config 함수에 설정된다.

728x90