TMS320F28X 개발보드 V2 예제
[F28P65x / CPU1] 3채널 PWM-to-Analog 출력 예제
인터럽트
2026.09.18 12:25:31
조회수 9
1. 실습 안내
본 예제는 TMS320F28P65x(F28P650DK9 산업용 / F28P659DK8-Q1 차량용) 제어 모듈이 탑재된 TMS320F28X 개발보드(EVM) V2를 대상으로 합니다.F28P65x 칩의 EPWM 모듈 3개(EPWM8, EPWM14, EPWM12)를 이용하여 60Hz 주파수에 서로 120도의 위상차를 갖는 3상 정현파 PWM(Sinusoidal PWM)을 생성하고, 개발보드의 '(3) PWM-to-Analog 4채널' 회로의 저역통과필터(Low-Pass Filter, LPF)를 거쳐 0.0V ~ 3.3V 범위의 매끄러운 3상 아날로그 사인(Sine) 파형으로 복원합니다.
또한 복원된 아날로그 신호를 칩 내부의 12비트 ADC(ADCINA2, A3, A4)로 직접 되먹임(Feedback) 받아 디지털 데이터로 변환하므로, 외장 오실로스코프가 없더라도 CCS 내부의 WATCH 창(기존 Expressions) 및 Graph 창을 통해 실시간 3상 교류 파형을 확인할 수 있습니다.
2. 실습 준비
본 예제는 아래의 개발환경에서 테스트 되었습니다.1) CCS 버전 : Code Composer Studio v12.x / v20.x / v21.x (Theia)
2) 컴파일러 버전 : TI v22.6.x.LTS 이상
3) 개발보드 : TMS320F28X 개발보드 V2
4) 프로세서 모듈 : 싱크웍스 TMS320F28P65x 모듈 (F28P650DK9 / F28P659DK8-Q1)
5) 예제버전 : v1.0
6) 프로젝트 구성 : 학습 목적에 따라 3가지 버전을 모두 제공합니다.
- Bitfield : 28X 레지스터를 직접 조작하는 전통적인 C2000 펌웨어 구현 (초경량/고속)
- Driverlib : TI 표준 HAL API 라이브러리를 활용한 모던 C2000Ware 구현 (가독성/이식성)
- FreeRTOS : 실시간 운영체제 태스크 스케줄링 기반 구현
3. 실습 예제 다운로드 (GitHub ZIP 다운로드 안내)
초보자분들도 손쉽게 다운로드하여 사용하실 수 있도록 전체 소스 코드를 GitHub에 공개해 두었습니다.아래 안내에 따라 ZIP 압축 파일로 다운로드하세요.
[다운로드 순서]
① 아래의 링크를 클릭하여 GitHub 저장소 페이지로 이동합니다.
>> [GitHub] EVM_V2_F28P65x_03_PWM_to_Analog_3Ch 저장소 바로가기
(※ 다이렉트 ZIP 다운로드 : EVM_V2_F28P65x_03_PWM_to_Analog_3Ch.zip 클릭하여 바로받기)
② GitHub 페이지 우측 상단의 초록색 <> Code ▼ 버튼을 클릭합니다.
③ 나타나는 메뉴 맨 아래의 Download ZIP 항목을 클릭하여 압축 파일을 다운로드합니다.
④ 다운로드한 ZIP 파일의 압축을 해제합니다.
- 권장 설치 경로 : C:SyncWorksTMS320F28X_EVM_V2_28P65x_PWM_to_Analog_3Ch
(※ 주의 : 경로 상에 한글이나 공백이 포함되지 않도록 주의해 주세요.)
4. CCS 프로젝트 불러오기 (CCS V20 기준) 및 컴파일
① Code Composer Studio(CCS)를 실행합니다.② 상단 메뉴에서 File > Import Projects... 를 클릭합니다.
③ Specify Search Directory 버튼을 눌러 앞서 압축을 해제한 폴더를 선택합니다.
④ 검색된 프로젝트 목록 중 실습하고자 하는 프로젝트(Bitfield, Driverlib, FreeRTOS 중 원하는 프로젝트)를 체크하여 선택합니다.
⑤ Finish 버튼을 클릭하여 프로젝트를 워크스페이스로 불러옵니다.
⑥ 프로젝트를 마우스 우클릭하여 Build Project를 수행합니다. (기본 설정: CPU1_RAM 또는 필요 시 CPU1_FLASH)
5. 예제 실행을 위한 하드웨어 점퍼선 연결 안내
개발보드 B Side 핀-헤더와 개발보드 상단의 '(3) PWM-to-Analog 4채널' 블록, 그리고 ADC 되먹임 입력 핀을 점퍼 케이블(암-암)로 아래와 같이 연결하세요.| 채널 | 기능 / 핀 번호 | EVM V2 B-Side 핀-헤더 | (3) PWM-to-Analog 단자 | ADC 되먹임 (B-Side 핀-헤더) |
| 1채널 (U상) | GPIO 213 (EPWM8A) | B Side 91번 핀 | ──▶ PWM.IN1 │ A.OUT1 ──▶ | B Side 107번 핀 (ADCINA2 / AIO229) |
| 2채널 (V상) | GPIO 211 (EPWM14A) | B Side 95번 핀 | ──▶ PWM.IN2 │ A.OUT2 ──▶ | B Side 105번 핀 (ADCINA3 / AIO230) |
| 3채널 (W상) | GPIO 209 (EPWM12A) | B Side 99번 핀 | ──▶ PWM.IN3 │ A.OUT3 ──▶ | B Side 103번 핀 (ADCINA4 / AIO231) |
* 오실로스코프를 사용하여 직접 파형을 관찰하실 때는 A.OUT1 ~ A.OUT3 단자와 인접한 GND 단자에 프로브를 연결하세요.
* F28P65x에서 ADCINA2/A3/A4는 디지털 GPIO와 공유되므로 예제 프로그램에서 아날로그 모드 스위치(GPHAMSEL, AGPIOCTRLH)를 자동 활성화합니다.
(클릭하시면 큰 이미지로 자세히 확인하실 수 있습니다.)
6. 예제 실행 및 동작 확인
① JTAG 에뮬레이터를 연결하고 디버그(Debug, F11)를 시작한 후 실행(Resume, F8)합니다.② 오실로스코프 측정 확인 :
- PWM.IN1~3 단자 : 100kHz 주파수의 스위칭 펄스가 60Hz 사인파 듀티로 가변되는 PWM 신호 확인
- A.OUT1~3 단자 : LPF 필터링을 통해 고주파 스위칭 노이즈가 제거된 깨끗한 3상 교류 사인파(위상차 120°) 확인
③ CCS WATCH 창 관찰 (기존 Expressions) :
상단 메뉴 View > Watch (기존 CCS v12 이하는 View > Expressions) 창을 열고 아래 변수를 등록합니다.
- `dutyCh1`, `dutyCh2`, `dutyCh3` : 각 상의 실시간 PWM 듀티비
- `adcCh1Result`, `adcCh2Result`, `adcCh3Result` : 12비트 ADC 변환 실시간 코드값 (0~4095)
Continuous Refresh 아이콘(노란색 번개)을 활성화하면 변수가 실시간 갱신됩니다.
④ CCS Graph 창을 이용한 간이 오실로스코프 뷰 :
CCS 메뉴의 View > Graph > Time (기존 CCS v12 이하는 Tools > Graph > Single Time) 에서 3개 채널의 버퍼를 각각 등록합니다.
- `adcCh1Buffer` (U상 1채널), `adcCh2Buffer` (V상 2채널), `adcCh3Buffer` (W상 3채널)
- 각 그래프 설정: Buffer Size 1024, Display Data Size 1024
Continuous Refresh를 켜두시면 3개의 Graph 창에서 서로 120도 위상차를 가지며 실시간으로 교차하는 3상 사인파를 눈으로 확인하실 수 있습니다.

| 번호 | 제목 | 작성자 | 날짜 |
|---|
- 1




