Page 128 - 3-3
P. 128
마. USART 관련 레지스터
1) UDRn(USARTn I/O Data Register)
UDRn(USART I/O Data Register) 레지스터는 USARTn 모듈의 송수신 데이터 버퍼의 기능
을 수행하며 각 포트의 송신 및 수신 버퍼는 동일한 주소에 위치하지만 내부적으로는 서로 다
른 별개의 레지스터로서 송신할 데이터를 UDRn 에 Write 하면 이는 송신 데이터 버퍼 TXB 에
저장되고 수신된 데이터를 UDRn 에서 읽으면 수신 데이터 버퍼 RXB 에 수신되어 있는 값이
읽혀진다. ex) Read: char A = UDR0; ex) Write: UDR0 = 3;
2) USRnA(USARTn Control & Status Register A)
가) BIT 7: RXCn(USARTn Receive Complete)
RXCn(USARTn Receive Complete) 비트는 수신버퍼에 읽혀지지 않은 수신 문자가 들어있
으면 "1" 로 셋 되고 CPU 가 이를 읽어서 수신버퍼가 비어있는 상태라면 "0" 으로 클리어 되었
음을 나타내는 상태 플래그이다. RXCn 비트는 수신 완료 인터럽트를 발생시킬 때 사용한다.
나) BIT 6: TXCn(USARTn Transmit Complete)
TXCn(USARTn Transmit Complete) 비트는 송신 시 포트 레지스터에 있는 송신 데이터가
모두 송신되고 UDRn 의 송신 버퍼에 아직 새로운 송신 데이터가 라이트 되지 않은 상태 이면
"1" 로 셋 되는 상태를 지시 하는 플래그이다. TXCn 비트는 송신 완료 인터럽트를 발생 시킬
때 사용된다.
다) BIT 5: UDREn(USARTn Data Register Empty)
UDREn(USARTn Data Register Empty) 비트는 UDRn 의 송신 버퍼에 새로운 송신 데이터
를 받을 준비가 되어 있으면 "1" 로 셋 되는 상태 플래그이다 UDREn 비트는 UDARTn Data
Register Empty 인터럽트를 발생할 때 사용한다.
라) BIT 4: FEn(Frame Error)
FEn(USARTn Frame Error) 비트는 UDRn 의 수신 버퍼에 현재 저장 되어있는 데이터를 수
신 하는 동안 프레임 에러가 발생 하였음을 나타내는 상태 플래그로 프레임에러는 수신 문자,
의 첫 번째 스톱비트가"0" 으로 검출 되면 발생 로 셋 되고 하고(1 ) UCSRAn 레지스터를 라이트
하면 이 비트는 "0" 으로 클리어된다.
마) BIT 3: DORn*Data OverRun
DORn(USARTn Data Overrun Error) 비트는 수신 동작에서 오버런 에러가 발생하였음을
나타내는 상태 플래그로 OverRun Error 는 UDRn 의 수신 버퍼에 현재 읽지 않은 수신 문자가
들어있는 상태에서 수신 시 포트레지스터에 새로운 문자가 수신 완료되면 다시 그 다음 수신, ,
데이터인 3 번째 문자의 스타트비트가 검출되면 발생한다. UCSRnA 레지스터를 라이트 하면
이 비트는 "0" 으로 클리어된다.
바) BIT 2: PEn(Parity Error)
PEn(Parity Error) 비트는 UDR 의 수신 버퍼에 현재 저장 되어 있는 데이터를 수신 하는 동
안 패리티 에러가 발생 하였음을 나타내는 상태플래그로 패리티에러는 UCSRnC 레지스터의
UPMn1 비트를"1" 설정하여 패리티 비트를 사용하도록 설정 한 경우에만 발생할 수 있다 레.
지스터를 라이트하면 이 비트는"0" 으로 클리어된다.
사) BIT 1: UCXn(Double the USARTn Transmission Speed)
- 128 -