UCSRnA(USARTn Control & Status Register A)
USARTn 모듈의 송수신 동작을 제어하거나 송수신 상태를 저장하는 기능을 수행한다.
[ RXCn | TXCn | UDREn | FEn | DORn | PEn | U2Xn | MPCMn ]
RXCn (USART Receive Complete)
수신버퍼에 읽어지지 않는 수신문자가 들어 있으면 1로 셋
CPU가 이를 읽어서 수신버퍼가 비어 있는 상태면 0
TXCn (USARTn Transmit Complete)
송신 시프트 레지스터에 있는 송신 데이터가 모두 송신되고 UDRn 의 송신 버퍼에 아직 새로운 송신 데이터가 라이트 되지 않은 상태이면 1로 셋팅된다. (송신완료 인터럽트를 발생시킬때 사용)
UDREn (USARTn Data Register Empty)
UDRn 의 송신 버퍼에 새로운 송신 데이터를 받을 준비가 되어 있으면 1로 셋되는 상태 플래그 이며 인터럽트를 발생한다.
FEn (Frame Error)
UDRn의 수신 버퍼에 현재 저장되어 있는 데이터를 수신하는 동안에 프레임 에러가 발생하였음을 나타내는 상태 플래그로, 프레임 에러는 수신문자의 첫번째 스톱 비트가 0으로 검출되면 발생하고 UCSRAn 레지스터를 라이트 하면 0으로 클리어된다.
DORn(Data OverRun)
수신 동작에서 오버런 에러가 발생하였음을 나타내는 상태 플래그로 OverRun Error는 UDRn 의 수신 버퍼에 현재 읽지 않은 수신 문자가 들어 있는 상태에서 수신 시프트 레지스터에 새로운 데이터가 문자가 수신 완료되고 다시 그 다음 수신 데이터인 3번째 문자의 스타트 비트가 검출되면 발생한다. UCSRnA 레지스터를 라이트 하면 이 비트는 0으로 클리어 된다.
PEn(Parity Error)
UDR의 수신 버퍼에 데이터를 수신하는 동안에 패리티 에러가 발생하였음을 나타내는 상태 플래그로 UCSRnC 레지스터에 UPMn1 비트를 1로 설정할때만 발생한다.
U2Xn (Double the USARTn Transmission Speed)
비 동기 모드에서만 사용 가능한 것으로 클럭의 n 분주비를 16 에서 8로 1/2 만큼 낮추어 전송 속도를 2배 높이는 기능을 한다.
MPCMn(Multi-Processor Communication Mode)
멀티 프로세서 통신 어드레스 정보를 포함하지 않는 모든 수신 데이터는 수신부에 의하여 무시된다.