태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

1. 실습 목적

TMS320F28377D에서 새롭게 추가된 기능인  GPIO Lock Configuration(GPIO 설정 잠금)기능을 사용해보는 예제입니다.  TMS320F28377D는 해당 기능을 설정하기 위해서 기존에 없던 GPxLOCK, GPxCR(x = A,B,C,D,E,F)레지스터가 추가 됐습니다. 해당 레지스터 설정을 통해서 어떠한 변화기 있는 확인해보고 활용 방법을 생각해보시기 바랍니다.

 

 

2. 실습 준비

예제를 실습하기 위해서 아래와 같은 개발환경이 필요합니다.

 

 


A. 실습 장비
1) CCSv6 가 설치된 PC
2) Defino 개발보드 + TMS320F28377D-377 모듈 + 전용 어댑터
3) 미니 5P USB 케이블

4) JTAG 에뮬레이터

 

B. 실습 예제
1) TI의 ControlSUITE가 PC에 설치되어 있어야 합니다.
    >> ControlSUITE (다운로드하러 가기) ← Click


2) 실습예제를 PC에 설치합니다..
    >> F28377D_GPIO09_CCSv6.zip (다운로드)← Click

 


3) 예제 설치경로
    >> CCSv6용 : C:\SyncWorks\DELFINO_EVM_28377D\Example_V600_Cpu1

 

 

3. 실습해 보기

Delfino EVM의 LED를 사용하기 위해서 다음과 같은 조작이 필요합니다.

 

 

CCS에서 예제를 실행하면, LED1,2,3,4를 제외한 LED5~16 만이 점멸하는 것을 볼 수 있습니다. LED1,2,3,4 이 점멸하지 않는 이유는 GPEDIR 레지스터 설정상 입력으로 설정되어 있기 때문입니다.

 

Level1 실습

예제를 리얼타임 모드로 실행시킨 상태에서, Expressions Window의 Continuous Refresh 설정을 활성하하고, GpioCtrlRegs.GPEDIR.all 레지스터 값을 확인해보면, 설정값이 0x0000FFF0 인 것을 알 수 있습니다. 이 값을 0x0000FFFF 로 변경해보기기 바랍니다. 그러면, 앞서 점멸하지 않았던 LED1,2,3,4 가 점멸하기 시작하는 것을 볼 수 있습니다.

 

Level2 실습

이제 예제의 실행을 멈추고, GPIO09_GPIO_Config_Lock.c 예제코드 6번 라인의 Level1 정의(#define)를 0으로, 7번 라인의 Level2 정의(#define)를 1로 수정합니다. 예제를 재빌드하고 로드한 다음 실행시킵니다. 앞서 Level1 실습과 마찬가지로 GpioCtrlRegs.GPEDIR.all 레지스터 값을 0x0000FFF0에서 0x0000FFFF 으로 변경해 보시기 바랍니다. 이번에는 아마도 변경이 되지 않을 것입니다.

 

그 상태에서  Expressions Window에 GpioCtrlRegs.GPELOCK.all 레지스터를 등록하고 설정값을 확인해 봅니다. 현재 설정된 값은 0x0000000F 일것 입니다. 이 값을 0x00000000으로 변경하고, 다시 GpioCtrlRegs.GPEDIR.all 값을 다시 0x0000FFFF 으로 변경해보시기 바랍니다. 이번엔 변경값이 정상적으로 적용되고, 다시 LED1,2,3,4 가 점멸하기 시작하는 것을 볼 수 있습니다.

 

Level3 실습

이제 예제의 실행을 멈추고,  GPIO09_GPIO_Config_Lock.c 예제코드 7번 라인의 Level2 정의(#define)를 0으로, 8번 라인의 Level3 정의(#define)를 1로 수정합니다. 예제를 재빌드하고 로드한 다음 실행시킵니다. 앞서 Level2 실습과 마찬가지로 GpioCtrlRegs.GPEDIR.all 레지스터 값을 0x0000FFF0에서 0x0000FFFF 으로 변경해 보시기 바랍니다. 아마도 변경이 되지 않을 것입니다.

 

그 상태에서 앞서 Level2 실습과 마찬가지로 GpioCtrlRegs.GPELOCK.all 레지스터 값을 0x0000000F에서 0x00000000으로 변경해보시기 바랍니다. 이번에는 GpioCtrlRegs.GPELOCK.all 레지스터 값도 변경되지 않을 것입니다.

 

 

그 상태에서  Expressions Window에 GpioCtrlRegs.GPECR.all 레지스터를 등록하고 설정값을 확인해 봅니다. 현재 설정된 값은 0x0000000F 일것 입니다. 이 값을 0x00000000으로 변경해보시기 바랍니다. 이것도 아마 변경이 되지 않을 것입니다. Level3 실습에서는 LED1,2,3,4 를 다시 점멸하는 것을 볼 수 없습니다.

 

 

 

4. 퀴즈!!

TMS320F28377D 데이터 매뉴얼(spruhm8)에서 GPELOCK, GPECR 레지스터에 대한 설명을 찾아보고, 왜? 위와 같은 실습결과가 나오는지 확인해 보시기 바랍니다. 그리고 그러한 기능이 추가된 이유와 활용방법에 대해서도 생각해 보시기 바랍니다.

 

 

 

Posted by syncworks

댓글을 달아 주세요

티스토리 툴바