TMS320F28X 개발보드 V2 예제
[F28P65x / CPU1] 개발보드 토글(Toggle) 스위치 테스트 예제
인터럽트
2026.09.18 12:33:46
조회수 3
1. 실습 안내
본 예제는 TMS320F28P65x(F28P650DK9 산업용 / F28P659DK8-Q1 차량용) 제어 모듈이 탑재된 TMS320F28X 개발보드(EVM) V2를 대상으로 합니다.F28P65x 칩의 GPI/O 입력 포트들을 통해 개발보드의 '(7) 범용 TOGGLE 스위치 8채널' 회로의 입력을 실시간으로 읽어내어 스위치 상태를 확인합니다.
토글 스위치는 누를 때만 반응하는 모멘터리(Momentary) 택트 스위치와 달리, 조작한 위치를 그대로 유지하는 래칭(Latching) 스위치입니다. 따라서 이벤트 감지보다는 "현재 스위치가 어느 쪽에 위치해 있는가"라는 정적인 설정값을 읽어내는 데 적합합니다.
실무 장비에서는 이러한 8채널 스위치를 통신 노드 ID 설정(0~255), 제어 모드 선택, 기능 활성화 옵션 등 하드웨어 파라미터 구성용으로 널리 사용합니다.
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.10 (배선 꼬임 방지 최적화)
6) 프로젝트 구성 : 학습 목적에 따라 3가지 버전을 모두 제공합니다.
- Bitfield : 레지스터 구조체를 직접 조작하는 전통적인 C2000 펌웨어 구현 (초경량/고속)
- Driverlib : TI 표준 HAL API 라이브러리를 활용한 모던 C2000Ware 구현 (가독성/이식성)
- FreeRTOS : 실시간 운영체제 태스크 스케줄링 기반 구현
3. 실습 예제 다운로드 (GitHub ZIP 다운로드 안내)
초보자분들도 손쉽게 다운로드하여 사용하실 수 있도록 전체 소스 코드를 GitHub에 공개해 두었습니다.아래 안내에 따라 ZIP 압축 파일로 다운로드하세요.
[다운로드 순서]
① 아래의 링크를 클릭하여 GitHub 저장소 페이지로 이동합니다.
>> [GitHub] EVM_V2_F28P65x_07_GP_Toggle8 저장소 바로가기
(※ 다이렉트 ZIP 다운로드 : EVM_V2_F28P65x_07_GP_Toggle8.zip 클릭하여 바로받기)
② GitHub 페이지 우측 상단의 초록색 <> Code ▼ 버튼을 클릭합니다.
③ 나타나는 메뉴 맨 아래의 Download ZIP 항목을 클릭하여 압축 파일을 다운로드합니다.
④ 다운로드한 ZIP 파일의 압축을 해제합니다.
- 권장 설치 경로 : C:SyncWorksTMS320F28X_EVM_V2_28P65x_GP_Toggle8
(※ 주의 : 경로 상에 한글이나 공백이 포함되지 않도록 주의해 주세요.)
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 핀-헤더와 개발보드 상단의 '(7) 범용 TOGGLE 스위치 8채널' 핀-헤더를 점퍼 케이블(암-암) 8가닥으로 연결하세요.(※ 꼬임 방지 배선 안내: 1번 스위치를 바깥쪽인 115번 핀에 연결하여 안쪽으로 나란히 들어오도록 배치되어 선이 서로 꼬이지 않습니다.)
| 스위치 번호 | 할당 GPIO | EVM V2 A-Side 핀-헤더 | 연결 단자 및 동작 모드 |
| 스위치 1번 | GPIO 25 | A Side 115번 핀 | ON 시 High (3.3V) |
| 스위치 2번 | GPIO 24 | A Side 113번 핀 | ON 시 High (3.3V) |
| 스위치 3번 | GPIO 23 | A Side 111번 핀 | ON 시 High (3.3V) |
| 스위치 4번 | GPIO 22 | A Side 109번 핀 | ON 시 High (3.3V) |
| 스위치 5번 | GPIO 21 | A Side 107번 핀 | ON 시 High (3.3V) |
| 스위치 6번 | GPIO 20 | A Side 105번 핀 | ON 시 High (3.3V) |
| 스위치 7번 | GPIO 19 | A Side 103번 핀 | ON 시 High (3.3V) |
| 스위치 8번 | GPIO 18 | A Side 101번 핀 | ON 시 High (3.3V) |
(클릭하시면 큰 이미지로 자세히 확인하실 수 있습니다.)
6. 예제 실행 및 동작 확인
① JTAG 에뮬레이터를 연결하고 디버그(Debug, F11) 후 실행(Resume, F8)합니다.② 하드웨어 반응 확인 : 스위치를 올리면(ON) 해당 스위치 옆의 LED Indicator가 즉시 켜지고, 내리면(OFF) 꺼집니다.
③ CCS WATCH 창 관찰 (기존 Expressions) :
상단 메뉴 View > Watch (기존 CCS v12 이하는 View > Expressions) 창을 열고 아래 변수를 등록합니다.
- `toggleSwitchState` : 8개 스위치 상태를 나타내는 1바이트 변수 (비트0: 1번 스위치 ~ 비트7: 8번 스위치)
- `pollCount` : 폴링 루프 실행 카운트
WATCH 창의 Continuous Refresh를 켜두고 스위치를 조작하면 `0x01`, `0x03`, `0x07` 등 16진수 비트마스크 값이 즉시 변경되는 것을 확인할 수 있습니다.
| 번호 | 제목 | 작성자 | 날짜 |
|---|
- 1




