AVR MCU에서 USART 기능을 설정하면, IO 기능에 우선하여 적용됩니다.
이때, USART의 RXD핀은 내부 레지스터 설정에 따라 pull-up을 시킬 수 있습니다.
만약, 외부에 USART 핀을 연결하지 않는다면, RXD핀 상태는 floating 상태가 되어,
임의의 데이터가 수신되는 것처럼 동작할 수 있습니다. 소위 "노이즈 탄다"라고 하는데, 이를 방지하기
위해서는 외부에 pull-up 저항을 달아도 되지만, MCU 내부의 Pull-up 기능을 사용해도 됩니다.
AVR MCU USART의RXDn을 pull-up 시킨 예제
ATmega128 USART0 인 경우 DDRE &= ~0x01; PORTE |= 0x01; // USART RXD0 : PE0 pull-up 상태로 설정
ATmega128 USART1 인 경우 DDRD &= ~0x04; PORTD |= 0x04; // USART RXD1 : PD2 pull-up 상태로 설정