중앙 정렬 PWM과 샘플 위치
업다운 카운트에서 카운터는 0에서 주기값까지 올라갔다가 다시 내려오므로, PWM 한 주기에 자연스러운 이벤트가 두 개 있습니다. 카운터가 0인 골짜기와 주기값과 같은 정점입니다. 카운터가 비교값보다 클 때 상측 스위치를 켜면, 온 시간은 정점을, 오프 시간은 골짜기를 중심으로 놓입니다.
인덕터 전류는 삼각파이고, 그 중간값이 정확히 온 시간과 오프 시간의 가운데에 옵니다. 그래서 골짜기나 정점에서 샘플링하면 필터 없이도 그 주기의 평균 전류를 얻고, 이 두 이벤트가 흔히 ADC 트리거로 쓰입니다. 트리거 지연을 0에서 벗어나게 하면 샘플에 리플 일부가 섞입니다. 기본값에서는 골짜기에서 1 µs 늦을 때마다 4 A 리플 중 0.2 A의 오차가 생깁니다.
획득 시간, 링잉, 하측 션트
ADC의 샘플 앤 홀드에는 획득 창이 필요하고, 그 창 동안 신호가 정착해 있어야 합니다. 스위칭 에지마다, 데드타임 뒤 상보 스위치의 에지까지 포함해, 전력 루프와 전류 센서에 링잉이 생깁니다. 창이 그 링잉 안에 들어가면 변환값은 진동의 어느 지점에 걸렸는지에 따라 달라집니다. 애니메이션은 링잉을 보이게 하려고 실제보다 느리게 그리며, 판정에는 정착 시간만 씁니다.
하측 소스에 둔 션트는 상측 스위치가 꺼져 있는 동안에만 상전류를 흘립니다. 그래서 골짜기 샘플링은 오프 시간 안에 데드타임, 정착, 획득이 들어갈 때만 유효하고, 이것이 듀티를 제한합니다: D_max = 1 − 2·(t_dead + max(t_settle − t_delay, t_delay + t_acq))/T_s. 기본값(20 kHz, 데드타임 0.5 µs, 정착 1.5 µs, 획득 0.5 µs)에서 D_max는 92 %입니다. 3션트 드라이브에서는 창이 가장 짧은 상을 건너뛰고 나머지 두 상으로 복원하는 방법을 흔히 씁니다.
변환에서 새 듀티까지: 지연이 생기는 곳
변환이 끝나면 ADC가 변환 완료 인터럽트를 내고, 제어식이 실행되고, 새 비교값이 쓰입니다. 타이머는 이 값을 바로 쓰지 않습니다. 비교 레지스터는 섀도 구조라서 정해진 카운터 이벤트에서만 활성 레지스터로 복사되며, 그래야 주기 중간에 값을 써도 글리치나 펄스 누락이 생기지 않습니다.
골짜기에서 샘플링하고 섀도를 골짜기에서만 로드하면, 새 듀티는 샘플 후 한 주기 뒤에 적용됩니다. 기본값에서는 49.5 µs, 즉 0.99 T_s입니다. 골짜기와 정점 모두에서 로드하면 인터럽트가 정점 전에 끝나는 한 약 반 주기로 줄어들고, 끝나지 못하면 다음 골짜기로 밀립니다. 다음 샘플 시점까지 인터럽트가 끝나지 않으면 루프가 오버런하는 것이고, 이 타이밍은 더 이상 성립하지 않습니다.
루프 설계에서는 이 경로를 보통 계산 지연(여기서는 최대 한 주기)에 PWM 갱신 자체의 약 반 주기를 더한 것으로 모델링합니다. 디지털 전류 루프의 크로스오버를 제한하는 것은 대개 컨버터가 아니라 이 지연입니다.
대표적인 두 MCU 계열에서의 표현
TI C2000 ePWM: 타임 베이스가 CTR = Zero와 CTR = PRD 이벤트를 만들고, 업다운 카운트 모드의 주기는 2·TBPRD·T_TBCLK입니다. 이벤트 트리거 서브모듈이 선택한 이벤트를 ADC 변환 시작 신호 SOCA나 SOCB로 바꾸며, ETSEL[SOCASEL]의 선택지에 CTR = Zero와 CTR = PRD가 있습니다. 비교 레지스터는 섀도 구조이고, 섀도에서 활성으로의 로드는 CTR = Zero, CTR = PRD, 또는 둘 다에서 일어나게 할 수 있습니다(CMPCTL[LOADAMODE]). 출처: TMS320F2837xD Technical Reference Manual(SPRUHM8) ePWM 장, TMS320x28xx/28xxx ePWM 모듈 참조 가이드(SPRU791). 개별 소자가 어떤 선택지를 지원하는지는 해당 TRM에 있습니다.
STM32 타이머: 중앙 정렬 모드에서는 오버플로와 언더플로 양쪽에서 업데이트 이벤트가 생기고, ARR, PSC, CCRx 같은 버퍼 레지스터는 업데이트 이벤트에서 프리로드 값이 로드됩니다. 반복 카운터로 업데이트 빈도를 낮출 수 있습니다. 트리거 출력 TRGO는 TIMx_CR2의 MMS 비트로 업데이트 이벤트나 OCxREF 신호 등을 고르며, STM32G4 같은 시리즈의 고급 제어 타이머에는 타이머·ADC 동기용 TRGO2가 더 있습니다. 출처: ST 응용 노트 AN4013, Introduction to timers for STM32 MCUs. ADC가 정규·주입 변환용 타이머 트리거를 고르는 방식은 ADC 버전마다 다르고 모든 시리즈의 필드 이름을 확인하지는 못했으므로, 해당 소자 레퍼런스 매뉴얼의 ADC 장에서 확인하세요.
실제 보드에서 확인하기
남는 GPIO를 인터럽트 시작에서 high, 끝에서 low로 바꾸고, PWM 출력·전류 센서 신호와 함께 오실로스코프로 보세요. 한 화면에 실제 샘플 시점, 인터럽트 길이, 다음 샘플까지의 여유가 모두 나오므로, 설정이 타이밍도대로 동작하는지 확인하는 가장 빠른 방법입니다.
애니메이션은 이 페이지에 적은 식을 그대로 따릅니다. 교재와 소프트웨어 라이브러리마다 규약이 다르므로, 숫자를 비교하기 전에 쓰고 있는 코드의 규약을 확인하세요.