본문 바로가기
Embedded SW/[Infineon] Embedded SW Project

[Infineon] 04. Aurix (TC23x) LED 점등 (GPO Control)

by 방구석 임베디드 2021. 5. 18.
반응형

혹시, 코드가 필요하신 분들은 아래 댓글을 달아주세요.

개인적으로 전달해 드리도록 하겠습니다.

ILLD 플랫폼과 연동시킨 플랫폼이고, CMD로 Build 할수 있도록 직접 Makefile을 만든것이여서 

이것을 이용하면 좀더 쉽게 개발할수 있습니다.

 

지금부터 TC237 Board의 LED를 점등해 보도록 하자!

TriBoard-TC2X7 개발 보드에는 4개의 General LED가 있다.

P13.0~P13.3 이 LED로 할당이 되어 있다.

회로도를 잠시 살펴 보도록 하자!

P13.0이 Gound가 되면 전류가 통해서 LED가 켜진다는 것을 확인할수 있다.

그렇다면 P13.0을 제어해 보도록 하자!

먼저 Port를 초기화하는 함수가 필요하다!

DrvDioInit 이라는 함수는 P13.0을 Digital Output Pin으로 설정하는 함수이다.

여기서 IfxPort_setPinModeOutput, IfPort_setPinLow와 같은 함수가 나타나는 것을 확인할수 있다.

이것은 ILLD라고 불리는 Driver Stack이다.

결국 이 함수를 따라가보면 레지스터를 직접 세팅하고 있는 것을 확인할수 있다.

ILLD에 대해서는 추후 더 이야기 해보도록 하겠다.

이 ILLD는 인피니언에서 무료로 제공해 준다.

나중에 이 ILLD로 수정해서 입맛에 맞게 바꾸어 주면 참 편하다.

 

또한 Driver API를 두게 만들었다.

DrvDio_SetPinLow 함수는 포트를 Low로 만들어 주는 함수이고

DrvDio_SetPinHigh 함수는 포트를 High로 만들어 주는 함수이다.

 

이제 LED를 제어할 준비는 다 되었다.

이제 한번 코드를 빌드해 보고 LED를 점등해 보도록 하자!

또한 1s Task에 위와 같이 LED Blinking Code를 넣었다.

이제 준비가 되었다.

컴파일 후, 동작을 수행해 보도록 하자!

함수콜을 부르고 Low를 세팅하였으니까 아래와 같이 P13.0 레지스터에 0 이 적혀 있음을 확인할수 있다.

High의 경우를 확인해 보면 아래와 같다.

1초마다 이것을 반복하고 있고 이제 이 회로와 연결된 LED를 확인해 보도록 하자!

위의 동영상에서와 같이 LED가 1초를 간격으로 점등되고 있는것을 확인할수 있다.

 

사실 이 글에서는 많은 부분이 생략되어 있다.

LED를 Control하기 위해 어느 레지스터를 건드렸는가?

ILLD는 어떤 구조로 되어 있는가?

Scheduler는 어떻게 만들었고

기본 SW Platform을 어떻게 구현되어 있는가?

 

추후 이러한 내용을 더 자세히 다루도록 하자!

우선 LED만 깜빡거리는 것으로! ㅎㅎ

 

혹시, 코드가 필요하신 분들은 아래 댓글을 달아주세요.

개인적으로 전달해 드리도록 하겠습니다.

ILLD 플랫폼과 연동시킨 플랫폼이고, CMD로 Build 할수 있도록 직접 Makefile을 만든것이여서 

이것을 이용하면 좀더 쉽게 개발할수 있습니다.

 

 

 

 

반응형

댓글