스마트 컨트롤러 - 시리얼 통신 UBRR register
학습목표
ATmega128A의 데이터시트를 보고 UBRR register의 값을 설정할 수 있다.
전처리언어로 UBRR register 값을 설정하는 내용을 코딩할 수 있다.
Clock을 건드릴 수 있는 레지스터는 UBRR이다. UBRR은 Baud Rate Generator을 조작하여 클럭 속도를 조절할 수 있다.
UDR은 전송할 정보를 입력하면 Transmit Shift Register에 해당 정보를 전달한다. Shift Register라고 칭하는 이유는 병렬식이 아닌 직렬식이기 때문에 데이터를 하나를 밀어서 전송하기 때문이다.
Shift Register는 보내고 받는 쪽에 하나씩 즉 쌍으로 필요하다.
데이터를 주고 받을 때 데이터 신호의 길이에 대한 기준이 필요하다. 이것을 제공해 주는 것이 Baud Rate Generator이다.
UDR의 주소는 같지만 Transmit과 Receive로 나뉜다. 송신과 수신에 따라 UDR은 명령어를 자동분류하여 명령어를 해석한다.
//ARM CPU는 UDR의 송수신 레지스터가 따로 분리되어 있다.
UCSRA, UCSRB, UCSRC를 추가시켜 보자.
UBRR값을 코딩하여 삽입해 보자.
UBRR register 표를 보면
앞에 4bit를 사용하지 않고 뒤에 12bit만 쓴다.
//이진수 bit를 flag로 비유하기도 한다.
//set = 1, clear = 0
7번 bit는 버퍼가 차 있는지 아닌지를 표시해준다.(전송시 1, 비전송시 0)
'Busan IT > 스마트 컨트롤러' 카테고리의 다른 글
PIC16F917 카운터 업&다운 코딩 (0) | 2015.03.26 |
---|---|
ATmega를 이용한 시리얼 통신 설정 (0) | 2015.03.25 |
직/병렬 통신과 USART (0) | 2015.03.23 |
1 (0) | 2015.03.20 |
LCD 기본 프로그래밍 (0) | 2015.03.19 |