0. 데이터시트 살펴보기
st사의 an2586 데이터시트를 보면 stm32f10xxx시리즈의 클럭 회로에 대해서 어떻게 설계해야 할지 레퍼런스가 나와있다.
이번 프로젝트에서는 외부 8Mhz 크리스탈을 사용한다(HSE).
참고로 STM32F103에서 외부 크리스탈의 허용 범위는 4MHz에서 16MHz이다.
외부 클락 탐지 후 없을 시, 내부 RC 오실레이터(8 MHz)가 자동으로 설정된다.
데이터시트에는 다음과 같이 회로설계를 하도록 권장되어 있다. 클럭의 각 핀은 mcu에 있는 OSC_IN과 OSC_OUT핀으로 연결하도록 되어있으며, 각 핀마다 커패시터를 병렬 연결하도록 되어있다.
본 프로젝트에서 사용하는 MCU는 stm32f103이며 LQFP64타입이다.
PC14 포트가 OSC_IN
PC15 포트가 OSC_OUT이다.
또한 다음과 같이 클럭 주변회로에 사용되는 capacitor의 크기에 관한 수식 설명이 있는데. 아래와 같다
설명 | |
Cₗ | 부하 커패시턴스 (사용하는 크리스탈 데이터시트에서 확인할 수 있다) |
CL1, CL2 | 크리스탈 양쪽에 연결되는 커패시터 |
Cstray | PCB 기생 커페시터 ( stm32f10xxx시리즈에서는 2 and 7 pF로 가정한다) |
1. 부품 선택 과정
https://www.devicemart.co.kr/goods/view?no=64
X-TAL 8M (ATS Type) Fundamental
타입 : ATS / 주파수 : 8MHz / 18pF / 크리스탈
www.devicemart.co.kr
사용하려는 크리스탈은 위의 부품이며 스펙은 8Mhz에 18pF의 load Capacitance이다
그리고 양쪽에 연결하는 커패시터는 같은 용량을 사용할 예정이므로, CL1, CL2은 같다고 가정한다.
Cstray는 2와 7의 중간인 5pF라 가정한다
2. 커패시턴스 용량 계산
그럼 다음과 같이 식이 정리되고
C = 26pF이라는 결과를 얻을 수 있다.
그런데 jlcpcb part에서 26pF 커패시터는 재고에 없었다. 그리고 뭔가 상식적으로 26pF 크기의 커패시터는 많이 없을 듯..?
그러므로 주변 크기 중 재고가 많을 것 같은 30pF 크기의 커패시터로 대체했다. (30pF를 사용하면 Cstray를 3pF라 가정한 건데 이는 데이터시트의 2~7pF 규격 내므로 문제가 없을 것이라 판단했다)
0603CG300J500NT | FH (Guangdong Fenghua Advanced Tech) | Multilayer Ceramic Capacitors MLCC - SMD/SMT | JLCPCB
One-Stop Turnkey PCBA & Free Asembly for Your PCBs Get $30 New User Coupons & Monthly $24 PCBA Coupons
jlcpcb.com
해당 부품을 사용했다.
참고로 Rext 저항은 왜 안 달았지? 라는 의문이 들 수도 있는데, 깜빡했다.. 발주까지 다 넣어버리고 지금 글 적으면서 깨달았다. 아마도.. 큰 문제는 없을거다.. 아마도..
'Balancing robot > HW' 카테고리의 다른 글
MCU 주변회로 설계 : BOOT (0) | 2025.01.03 |
---|---|
MCU 주변회로 설계 : SWD 회로 (1) | 2025.01.03 |
MCU 주변회로 설계 : 리셋회로 (0) | 2024.10.05 |
MCU 주변회로 설계 : 전원부 (0) | 2024.10.05 |
Mcu 주변회로 설계 완료 (0) | 2024.10.05 |