보통은 큰 문제가 안돼.
STM의 경우 메인 크리스탈은 any vendor(아무거나) 8Mhz 때려박고 대강 18pf 정도 달아주면 왠만하면 동작해.
그런데 문제는 32.768khz....
RTC용 크리스탈인데;;;
이게 잘 동작하지 않는 경우를 한 두어번 본거 같은데
첫 번째는 십수년 전, stm32f103!
이 때는 해결을 못해서 클럭을 내부 RC 오실레이터로 몰래 변경하고 모른척 했어 ㅋㅋㅋㅋ
stm32 mcu의 clock tree에서 RTC 부분을 보면
mux를 통해서 3개 중 하나를 RTC 클럭 소스로 사용할 수 있게 되어 있어.
HSE를 분주한 것,
외부 32.768khz 클럭 소스,
내부 32khz RC 오실레이터
이렇게 3 가지인데 RTC를 사용하는 Application에서는 1초를 정확하게 맞추기 위해서
보통 32.768khz 짜리 외부 클럭 소스를 사용해.
내부 RC 오실레이터는 오차가 크고 온도에 따른 편차도 있어서 잘 사용하지 않아 ㅋㅋ
나는 몰래 썼지만 ㅋ
그리고 바로 지금 내 인생에서 두 번째로 32.768khz가 동작하지 않고 있어 ㅋㅋㅋㅋㅋㅋ
아주 그냥 환장하겠어.
STM32F407VGT6를 사용하고 있는데 이 RTC 크리스탈이이 동작했다 안했다 하네..
아주 희망 고문이 절어
😭😭😭
크리스탈에 붙는 로드캡이랑 크리스탈(CM315DZFT)을 몇번이나 교체해봐도 똑같고 ㅠㅠ
또 내부 RC 오실레이터로 확 돌릴까? ㅋㅋ
아냐 ㅋㅋ
이번에는 제대로 해보자구.
진짜 제대로 정석으로 접근해 볼거야! ㅋ
먼저 어떤 기준으로 크리스탈을 선택해야 하는지 알아야겠지?
이거에 대해서 잘 정리해놓은 stm 문서가 있어. 👇👇
이 문서를 다 읽기가 좀 부담스러울 수 있으니까!
원리를 요약하자면!
크리스탈은 일종의 주파수 필터야.
32.768khz 짜리 크리스탈은 32.768khz를 가장 잘 통과시키는 거지.
그리고 거기에 연결된 MCU 내부에는 증폭기가 있어.
즉 32.768khz 신호를 계속 증폭해서 그걸 RTC 클럭소스로 사용하는 거야.
그러니까 이 클럭 신호가 잘 증폭될 수 있도록 크리스탈을 선정해야 한다는 거지.
이를 위한 증폭률 "gain margin"이 5가 넘어야 한다고 위 문서에 나와 있는데 그 공식이
👉 gain margin = Gm / Gmcrit
여기서 Gm은 stm32f407 데이터 시트에 나와 있고,
min 2.8uA/V, max 0.56uA/V
Gmcrit는 아래 공식으로부터 구할 수 있어.👇👇
이 공식에 필요한 것들(ESR, C0, CL)은
전부 크리스탈 데이터시트에서 구할 수 있으니까 너무 걱정마 ㅋㅋ
내가 사용하고 있는 크리스탈인 CM315DZFT를 살펴보면
CL = 12.5pf, C0 = 0.95pf, ESR = 70Kohm 이야.
자! 계산해보면 Gmcrit는 2.147uA/V 이고 MCU Gm은 0.56uA이니까
Gain margin = 0.56 / 2.147 = 0.26( < 5 )
망했네 ㅋㅋㅋㅋ
Gm max 값으로 계산해도 1 겨우 넘는구만.
Gain margin = 2.8/2.147 = 1.3 ( < 5 )
이러니 크리스탈이 돌다 말다 했겠지...
한숨 나오네...
암튼 이 크리스탈은 stm32f407용 RTC에 사용 못한다는 결론!
내일 교체해야지 ㅠㅠ
못쓰는 크리스탈이긴하지만 그래도 로드캡 용량이나 구해보자구.
공식은 아래 👇👇
정리하면
(CL - CS)*2 = CL1 = CL2,
여기서 CL = 12.5pf이고,
Cs는 stray cap이라고 해서
pcb line, osc pad 등 케페시턴스를 이야기 하는 건데
AN2867 문서에서 예제로 5pf를 잡았네?
나도 똑같이 5pf 잡으면
(12.5pf-5pf) * 2 = 15pf
CM315DZFT라는 크리스탈이 잘 동작했다면
15pf를 로드캡으로 사용하면 되겠네.
이것 저것 복잡한 게 싫다!
이러면 AN2867에 나와 있는 문서 30페이지부터 추천하는 crystal 목록이 나열되어 있어.
👇👇
이 중에서 자신의 MCU 시리즈에 맞는 제품을 사용하도록하자.
특히 stm32f40x 시리즈는 gmcrit가 굉장히 작아야 하네;;;;;
gmcrit이 0.5 이하!
AN2867 문서에는 이거 말고도 PCB layout 가이드 같은 것들도 나와 있고
stm 외 다른 IC의 크리스탈 선택에도 큰 도움이 되니까
하드웨어 엔지니어들은 어렵더라도 꼭 한번 읽어보자 ㅋㅋ
공부 안하면 밑천 금방 들어나 ㅋㅋ
그럼 다들 화이팅해! 안녕!
ㅎㅎㅎ 이대로 멈출순 없지!
진짜 저 아래 👇👇 크리스탈 사서 테스트해봤어!
ABS07-LR-32.768kHz-6!
gmcrit도 0.4517! 우수! -> 납땜! 뙇! -> 동작 뙇! ㅎㅎㅎㅎ
그런데... 한 두시간 돌다가 멈추네;;;;
진짜 환장하겠어!!
이제 남은 방법이 몇 개 없어 ㅋㅋ 우선!
Eratta sheet!
그냥 쉽게 말하면 제품 하자 리스트야 ㅋㅋ
세상에 완벽한 건 없다네~
여기에 보면 PC13번이 LSE(32.768khz)를 방해한다는 내용이 있어.
그래서 LSE를 사용하면 PC13은 못쓴다 하네.
그리고 work around로 LSE를 bypass mode로 설정하라고도 되어 있구만!!
bypass 모드로 설정해도 크리스탈이 동작하나보네?
그리고 아래는 stm32f1 시리즈 errata sheet인데 이놈도 LSE가 지랄맞;;;;
errata sheet가 대놓고 가혹한 환경에서 LSE가 잘 동작안한데;;;
암튼 work around로 소개한 방법이 16M ~ 22M짜리 피드백 저항을 추가로 다는 거야. ㅠㅠ
저렇게 큰 저항 어디 있을까?;;;
자! 우선 크리스탈은 추천 제품으로 변경했고! 이제
1. LSE bypass mode 설정!
2. PC13 GND로 박아버리고!
3. 16 ~ 22M옴 짜리 피드백 저항 달엇!
이렇게 해도 안되면... 남은건 PCB랑 내 납땜 실력이지! ㅋㅋ
지금은 너무 늦어서 못해보고 ㅋ
내일 테스트 해서 알려줌 ㅋㅋ~안녕!
ㅇㅇ ABS07-LR-32.768kHz-6! 이걸로 양산 치니까 잘됨 ㅇㅇ
내 납땜실력 개판인걸로..
쥬루룩
'임베디드 하드웨어 > 기타 회로 설계' 카테고리의 다른 글
[회로 설계] ARTIX 7 회로 설계 (1) | 2023.10.25 |
---|---|
TVS (1) | 2023.03.07 |
220V AC 장비 파워 제어 (2) | 2022.06.05 |
고온 측정 회로 / 열전대 회로 (0) | 2022.06.02 |
AC-DC 컨버터 (0) | 2022.05.19 |