TMS320F28X 개발보드 V2 예제
[F28P65x / CPU1] 개발보드 LED 테스트 예제
인터럽트
2026.09.18 12:34:41
조회수 4
1. 실습 안내
본 예제는 TMS320F28P65x(F28P650DK9 산업용 / F28P659DK8-Q1 차량용) 제어 모듈이 탑재된 TMS320F28X 개발보드(EVM) V2를 대상으로 합니다.F28P65x 칩의 GPI/O 출력 포트(GPIO0 ~ GPIO15)와 개발보드의 버퍼 회로를 통해 '(8) 범용 LED 16채널'을 1번부터 16번까지 순차적으로 켜고 끄는 러닝 라이트(Running Light) 패턴을 구현합니다.
단순히 핀 출력을 제어하는 것뿐만 아니라, 메모리 매핑 I/O(Memory-Mapped I/O) 동작 구조와 인터럽트 간섭을 원천 차단하는 원자적(Atomic) SET/CLEAR 레지스터(GPASET, GPACLEAR) 활용법을 함께 학습합니다.
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 : 레지스터 비트마스크를 직접 조작하는 전통적인 C2000 펌웨어 구현 (초경량/고속)
- Driverlib : TI 표준 HAL API 라이브러리를 활용한 모던 C2000Ware 구현 (가독성/이식성)
- FreeRTOS : 실시간 운영체제 태스크 스케줄링 기반 구현
3. 실습 예제 다운로드 (GitHub ZIP 다운로드 안내)
초보자분들도 손쉽게 다운로드하여 사용하실 수 있도록 전체 소스 코드를 GitHub에 공개해 두었습니다.아래 안내에 따라 ZIP 압축 파일로 다운로드하세요.
[다운로드 순서]
① 아래의 링크를 클릭하여 GitHub 저장소 페이지로 이동합니다.
>> [GitHub] EVM_V2_F28P65x_08_GP_LED16 저장소 바로가기
(※ 다이렉트 ZIP 다운로드 : EVM_V2_F28P65x_08_GP_LED16.zip 클릭하여 바로받기)
② GitHub 페이지 우측 상단의 초록색 <> Code ▼ 버튼을 클릭합니다.
③ 나타나는 메뉴 맨 아래의 Download ZIP 항목을 클릭하여 압축 파일을 다운로드합니다.
④ 다운로드한 ZIP 파일의 압축을 해제합니다.
- 권장 설치 경로 : C:SyncWorksTMS320F28X_EVM_V2_28P65x8_GP_LED16
(※ 주의 : 경로 상에 한글이나 공백이 포함되지 않도록 주의해 주세요.)
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. 예제 실행을 위한 하드웨어 점퍼선 연결 안내
개발보드 A Side 핀-헤더와 개발보드 상단의 '(8) 범용 LED 16채널' 핀-헤더를 점퍼 케이블(암-암)로 아래와 같이 연결하세요.(※ F28P65x 모듈의 GPIO0 ~ GPIO15는 개발보드 A Side의 65번~95번 홀수 핀에 차례대로 배치되어 있어 직관적으로 1:1 연결이 가능합니다.)
| LED 번호 | 할당 GPIO | EVM V2 A-Side 핀 | LED 번호 | 할당 GPIO | EVM V2 A-Side 핀 |
| LED 1 | GPIO 0 | A Side 65번 핀 | LED 9 | GPIO 8 | A Side 81번 핀 |
| LED 2 | GPIO 1 | A Side 67번 핀 | LED 10 | GPIO 9 | A Side 83번 핀 |
| LED 3 | GPIO 2 | A Side 69번 핀 | LED 11 | GPIO 10 | A Side 85번 핀 |
| LED 4 | GPIO 3 | A Side 71번 핀 | LED 12 | GPIO 11 | A Side 87번 핀 |
| LED 5 | GPIO 4 | A Side 73번 핀 | LED 13 | GPIO 12 | A Side 89번 핀 |
| LED 6 | GPIO 5 | A Side 75번 핀 | LED 14 | GPIO 13 | A Side 91번 핀 |
| LED 7 | GPIO 6 | A Side 77번 핀 | LED 15 | GPIO 14 | A Side 93번 핀 |
| LED 8 | GPIO 7 | A Side 79번 핀 | LED 16 | GPIO 15 | A Side 95번 핀 |
(클릭하시면 큰 이미지로 자세히 확인하실 수 있습니다.)
6. 예제 실행 및 동작 확인
① JTAG 에뮬레이터를 연결하고 디버그(Debug, F11) 후 실행(Resume, F8)합니다.② 하드웨어 반응 확인 : 16개의 LED가 1번부터 16번까지 약 100ms 주기로 순차 점등되는 러닝 라이트(Running Light) 패턴을 육안으로 확인합니다.
③ CCS WATCH 창 관찰 (기존 Expressions) :
상단 메뉴 View > Watch (기존 CCS v12 이하는 View > Expressions) 창을 열고 아래 변수를 등록합니다.
- `runningLedIndex` : 현재 점등 중인 LED 인덱스 (0 ~ 15)
- `blinkCount` : 전체 LED가 한 바퀴 회전한 누적 사이클 횟수
WATCH 창의 Continuous Refresh를 활성화하면 변수가 실시간 갱신되는 것을 관찰할 수 있습니다.
| 번호 | 제목 | 작성자 | 날짜 |
|---|
- 1




