내 컴퓨터에 패러럴 포트가 없다 !!

그래서 USB To UART로..


UART : Universal Asynchronous Receiver and Transmitter
비동기

USART : Universal Synchronous Asynchronous Receiver and Transmitter
동기 비동기

mega128에서는 USART0과 USART1을 사용 할 수 있다.

USART0 은 PE0 - RXD0 / PE1 - TXD0
USART1 은 PD2 - RXD1 / PD3 - TXD1

송수신 확인은 하이퍼 터미널을 이용하면 되고, Windows7에는 없기때문에
XP에서 실행파일을 복사해 오면 WND7 에서 사용 할 수 있다. ( 한글판 추천 )

하이퍼 터미널 이용시 \r\n 이나 \n\r 을 이용하여야 하는데...
\r은 캐리지 리턴으로써 커서를 (_) 맨 앞으로 당겨 오는것을 뜻하며,
\n은 라인피드 로써 커서를 아랫줄로 이동한다.

관련 레지스터를 보자 !!!!

송수신 관련 레지스터에서 n 이 뜻하는 것은 0, 1이며 
USART 0을 사용할 것인지, USART 1번을 사용 할 것인가를 뜻한다.

UCSRnA

  7.RXCn - USART 수신 완료 플래그 비트
    UDRn (수신버퍼)에 읽혀지지 않은 데이터가 있으면 set

  6.TXCn - USART 송신 완료 플래그 비트
    Stop Bit 까지 모든 문자를 송신하고, 새로운 데이터가 UDRn에 준비되지 않았을때 set

  5.UDREn - USART 송신 데이터 레지스터 준비완료 플래그 비트
    UDRn (송신버퍼)이 새로운 데이터를 받을 준비가 되면 set
    인터럽트를 사용하지 않고 송신을 한다면, 이 비트가 set인지를 체크하여 데이터 송신

  1.U2Xn - 송신 속도 2배 설정
    비동기에서만 유효하며, set 시키면 분주비가 16 -> 8 이 되어 전송속도가 2배가 된다.

  0.MPCMn - 멀티프로세서 통신 모드
    어드레스정보가 포함되지 않는 수신 데이터는 수신부에 의해 무시


UCSRnB

  7.RXCIEn - 수신완료 인터럽트 인에이블 비트

  6.TXCIEn - 송신완료 인터럽트 인에이블 비트

  5.UDRIEn - 송신 데이터 준비완료 인터럽트 인에이블 비트

  4.RXENn - 수신기 인에이블 비트
    set 하게 되면 수신 가능한 상태가 되며, RXDn 핀은 수신단자로 동작

  3.TXENn - 송신기 인에이블 비트
    set 하게 되면 송신 가능한 상태가 되며, TXDn 핀은 송신단자로 동작

  2.UCSZn2 - 전송 데이터 길이 선택 비트
    UCSRnC 레지스터의 UCSZn1과 UCSZn0과 함께 사용됨


UCSRnC

  6.UMSELn - clear = 비동기모드 / set = 동기모드

  5:4.UPMn - parity bit 선택모드

  3.USBSn - stop bit 선택모드
    clear = 1 bit / set = 2 bit

  2:1.UCSZn - UCSRnB 레지스터의 2번비트와 함께 전송 데이터 비트수를 결정

  0.UCPOLn - 동기모드에서 clear - falling, set - rasing


UDRn

  I/O Data Register

  Read, Write가 동일한 비트다. 따라서 송신 할 때는 Write, 수신 할 때는 Read가 된다.


UBRRnH
UBRRnL

  총 12비트에 의해 전송속도가 결정되며, 상위 바이트(UBRRnH)에 먼저 값을 쓰고, 하위 바이트(UBRRnL)에 값을 써줘야 한다. BAUD를 정하고 UBRR의 값을 계산해야 한다.

'OpenSTUDY > AVR' 카테고리의 다른 글

UART  (0) 2011.10.15
직렬통신  (0) 2011.10.15
USART - 아스키 & 헥사  (0) 2011.10.09
간단 USART0 사용 (not interrupt)  (0) 2011.10.07
CISC & RISC  (0) 2011.10.02

+ Recent posts