본문 바로가기
mobilgene/MCAL

[Port] Port Pin 설정 방법 (TRAVEO T2G + Mobilgene 실무 가이드)

by Autosar 2026. 6. 8.
반응형

AUTOSAR 프로젝트를 진행하다 보면 가장 먼저 접하게 되는 BSW 모듈 중 하나가 Port Driver이다.

Port Driver는 MCU의 Pin 방향과 전기적 특성을 초기화하는 역할을 담당하며, ECU 부팅 시 모든 GPIO의 기본 상태를 결정한다.

 

실제 차량에서는 Watchdog Enable, SBC Enable, CAN Standby, Wakeup Signal, LED 제어, 릴레이 제어 등 대부분의 하드웨어 신호가 Port 설정을 통해 동작하게 된다.

 

이번 글에서는 Mobilgene 기준으로 Port 설정 방법과 각 설정 항목의 의미, 그리고 TRAVEO™ T2G MCU Datasheet를 활용하여 실제로 어떤 기준으로 설정해야 하는지 정리해본다.

 

Port Driver란?

 

AUTOSAR Port Driver는 MCU Pin의 초기 상태를 설정하는 BSW 모듈이다.

ECU 초기화 과정에서 다음과 같은 항목을 설정한다.

  • Pin Direction (Input / Output)
  • Pin Mode (GPIO / Peripheral)
  • Initial Level
  • Drive Mode
  • Drive Strength
  • Input Buffer
  • Slew Rate
  • Pull-up / Pull-down

일반적으로 ECU 시작 시 다음 함수가 호출된다.

(void)Port_Init(&Port_Config[0]);

 

이 함수가 실행되면 Port 설정값에 따라 MCU Pin이 초기화된다.

 

Port 설정 전 반드시 확인해야 할 문서

 

많은 개발자가 Mobilgene 설정 화면만 보고 Port를 설정하려고 한다.

하지만 실제로는 다음 문서를 함께 확인해야 한다.

 

1. 회로도 (Schematic)

2. MCU Datasheet

3. Technical Reference Manual (TRM)

 

Mobilgene Port 설정 위치


Ecud_Port.arxml 에서 다음 경로로 이동한다.

Port → PortConfigSet_Run → Container → PortContainerXX → Pin

위의 이미지대로 PortPin_P021_5_WATCHDOG_ENABLE 로 예시를 들어 설명하고자 한다.

 

- Short Name: Port 설정 객체의 식별자이다. 사용자가 의미 있는 이름으로 지정하며 코드 생성 시 내부 식별자로 활용된다. 일반적으로 Pin 용도(예: WATCHDOG_ENABLE)를 포함하여 작성한다.

 

- Direction: 해당 Pin을 입력(Input)으로 사용할 것인지 출력(Output)으로 사용할 것인지를 결정하는 설정이다.

Port Driver 초기화 시 MCU 내부 GPIO 레지스터의 방향 설정이 이루어지며, 이후 해당 Pin은 지정된 방향으로 동작하게 된다. Direction 설정은 반드시 회로도를 기준으로 결정해야 한다.

 

- Direction Changeable: 런타임 중 Pin 방향 변경 허용 여부를 설정한다. false이면 초기화 이후 방향 변경이 불가능하다.

 

- Output In Buf Enable: 출력 상태를 내부 입력 버퍼로 읽을 수 있도록 설정한다. 출력값 모니터링이 필요한 경우 사용된다.

 

- Initial Mode: ECU 초기화 직후 적용될 Pin 기능(GPIO, CAN, SPI 등)을 설정한다.

 

- Mode Changeable: 런타임 중 Pin Mode 변경 허용 여부를 설정한다. false이면 초기화 후 변경할 수 없다.

 

- Mode: 현재 Pin이 사용할 기능을 설정한다. 즉, 해당 Pin의 실제 동작 모드를 설정한다. 일반 GPIO 또는 주변장치 기능으로 설정 가능하다.

 

- Level Value: 출력 Pin의 초기 출력 상태(HIGH/LOW)를 설정한다.

 

- Output Drive: Output Drive는 GPIO 출력 드라이버의 동작 방식을 결정한다. 일반 GPIO 출력은 대부분 PORT_PIN_OUT_MODE_STRONG을 사용하며 HIGH와 LOW를 모두 적극적으로 구동한다.

 

TRAVEO T2G 기준으로 각 항목은 대략 아래와 같은 의미를 가진다.

  • PORT_PIN_OUT_MODE_HIGHZ: 출력 드라이버를 비활성화하여 핀이 전기적으로 연결되지 않은 것처럼 동작한다.
  • PORT_PIN_OUT_MODE_PULLUP_DOWN_ATST: Pull-Up과 Pull-Down을 동시에 연결하는 테스트용 모드이다. 일반 GPIO에서는 거의 사용하지 않는다.
  • PORT_PIN_OUT_MODE_PULLUP: 내부 Pull-Up 저항을 연결한다. 별도 입력이 없을 경우 HIGH 상태로 유지된다.
  • PORT_PIN_OUT_MODE_PULLDOWN: 내부 Pull-Down 저항을 연결한다. 별도 입력이 없을 경우 LOW 상태로 유지된다.
  • PORT_PIN_OUT_MODE_OD_LOW: Open Drain Low 모드. LOW만 강제로 출력 가능하며 HIGH는 외부 Pull-Up 저항에 의해 결정된다.
  • PORT_PIN_OUT_MODE_OD_HIGH: Open Drain High 모드. HIGH만 강제로 출력 가능하며 LOW는 외부 Pull-Down에 의해 결정된다.
  • PORT_PIN_OUT_MODE_STRONG: Push-Pull 방식의 일반 GPIO 출력 모드이다. HIGH와 LOW 모두 강하게 구동한다. 가장 많이 사용하는 설정이다.
  • PORT_PIN_OUT_MODE_PULLUP_DOWN: 내부 Pull-Up과 Pull-Down 저항을 모두 활성화한다. 특수 용도로 사용되며 일반 GPIO에서는 드물다.

 

- Smartio Bypass Enable: SmartIO 로직을 우회하고 일반 GPIO처럼 동작하도록 설정한다.

- Smartio Sync Io Enable: SmartIO 입력 신호를 동기화하여 처리할지 여부를 설정한다.

- Smartio Sync Chip Enable: SmartIO 내부 신호를 칩 클록에 동기화하여 처리할지 여부를 설정한다.

 

- SmartioLutTr0Source: SmartIO LUT의 Trigger 0 입력 신호 소스를 설정한다.

- SmartioLutTr1Source: SmartIO LUT의 Trigger 1 입력 신호 소스를 설정한다.

- SmartioLutTr2Source: SmartIO LUT의 Trigger 2 입력 신호 소스를 설정한다.

 

- Smartio Lut: 사용할 SmartIO LUT 번호를 설정한다.

- Smartio Lut Operation: SmartIO LUT에서 수행할 논리 연산 방식을 설정한다.

 

여기서 잠깐.! SmartIO 가 뭐지? 생각할 수 있다.

SmartIO는 쉽게 말하면 MCU 내부에 있는 작은 하드웨어 로직 회로라고 생각하면 된다.

 

보통 GPIO는

입력 → CPU가 읽음
출력 → CPU가 씀

 

구조인데, SmartIO는 CPU를 거치지 않고 GPIO끼리 논리 연산을 수행할 수 있다.

예를 들어

GPIO1 = HIGH
GPIO2 = HIGH

 

일 때

GPIO3 = GPIO1 AND GPIO2

 

같은 동작을 MCU 내부 하드웨어가 직접 수행할 수 있다. 일반적인 ECU 프로젝트에서는 SmartIO를 직접 사용하는 경우가 많지 않으며 대부분 Bypass Enable을 활성화하여 일반 GPIO처럼 사용한다.

 

- Input Buffer Mode: MCU가 입력 신호를 어떤 전압 기준으로 HIGH와 LOW를 판단할 것인지 설정하는 항목이다.

 

  • PORT_PIN_IN_MODE_CMOS: 일반적으로 가장 많이 사용하는 입력 모드이다. CMOS는 입력 전압이 충분히 높아야 HIGH로 인식하고, 충분히 낮아야 LOW로 인식한다.
  • PORT_PIN_IN_MODE_TTL: TTL 전압 기준을 사용하는 입력 모드이다. 낮은 전압에서도 HIGH로 인식 가능하며 TTL 출력 장치와 연결 시 사용된다.

 

- Output Slow Slew Rate Enable: 출력 신호의 상승·하강 속도를 느리게 하여 EMI를 감소시킬지 설정한다.

- Output Drive Strength: 출력 전류 구동 능력을 설정한다. FULL은 최대 구동 강도를 의미한다.

- Port5VPinInputBufferMode: 5V 입력 Pin 사용 시 입력 버퍼의 동작 방식을 설정한다.

- Output Drive Select Trim: 출력 드라이버의 특성을 미세 조정하는 옵션이다. 일반적으로 Default를 사용한다.

- Output Slew Ext: 출력 신호의 상승·하강 속도를 추가로 설정한다. FAST는 빠른 신호 전환을 의미한다.

- Output Drive Ext: 출력 드라이버의 추가 구동 특성을 설정한다. MCU 제조사에서 정의한 확장 옵션이다.

 

** 참고 **

Output Slow Slew Rate Enable은 Slow Mode 사용 여부를 결정하고, Output Slew Ext는 Slew Rate 세부 특성을 설정한다.

 

정리

 

Port 설정은 단순히 Mobilgene에서 옵션을 선택하는 작업이 아니다.

실제 Port 설정은 다음 순서로 진행해야 한다.

1. 회로도 확인
    ↓
2. Datasheet에서 Pin 기능 확인
    ↓
3. TRM에서 GPIO 특성 확인
    ↓
4. Mobilgene 설정
    ↓
5. DIO 제어 및 검증

 

많은 개발자가 Mobilgene 설정 화면만 보고 Port를 설정하지만, 실제 설정값은 회로도와 MCU 문서를 기반으로 결정해야 한다. 특히 GPIO의 전기적 특성은 ECU 하드웨어 동작과 EMI 성능에 직접적인 영향을 주므로 설정값의 의미를 이해하고 적용하는 것이 중요하다.

반응형