목차 1. UART와 RS232 개요 2. ATMega128의 USART 포트 3. UART로 Hello 보내기 4. UART로 PC와데이터주고받기

Similar documents
<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - Chapter 8_USART Serial Communication

2주차: 입출력 제어 복습

MAX232 MAXIM사에서생산되는 RS-232통신을가능토록해주는송수신 IC이다. 송수신드라이브를각각 2개씩가지고있다. AVR과컴퓨터가인식하는 0과 1의값이다르기때문에.. 마이컴컴퓨터 이차이를해결해주는것이다. 0 0V -10V 1 5V 10V TTL IC 의전원단자와다

Microsoft PowerPoint - AVR 시리얼 통신.ppt [호환 모드]

UART.h #ifndef _UART_H_ #define _UART_H_ #define DIR_TXD #define DIR_RXD sbi(portd,4) cbi(portd,4) #define CPU_CLOCK_HZ UL UART PORT1 void UAR

데이터 통신

<BDC7C7E83720BFB9BAF1BAB8B0EDBCAD2E687770>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee

ATmega128 교재 - 8장 EEPROM.hwp

목차 1. 키패드 (KeyPAD) 2. KeyPAD 를이용한비밀번호입력기

시리얼통신 (USART) 범용동기및비동기시리얼수신기와송신기 (USART) 는매우유연한시리얼통신장치이다. 주요특징은다음과같다. w 송수신레지스터가독립적으로운용되는전이중방식. w 비동기또는동기동작. w 마스터또는슬레이브동기동작. w 고해상도전송속도생성기. w 5, 6, 7

목차 1. A/D 컨버터개요 2. ATMega128 의 A/D 컨버터기능 3. A/D 컨버터로광센서읽기

개요

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

OSTSen-THL100 사용자설명서 Ver 1.1 Onsystech OSTSen-THL100 Ver1.1 1 of 8 Onsystech

2 Mitsubishi FX Series Computer Link MITSUBISHI FX SERIES COMPUTER LINK 시스템구성 시스템설정 사용예 사용예 사용예

Microsoft PowerPoint - 제5장 인터럽트 (HBE-MCU-Multi AVR).ppt [호환 모드]

Microsoft Word _whitepaper_latency_throughput_v1.0.1_for_

OSTSen-PIR100 사용자설명서 Ver 1.1 Onsystech OSTSen-PIR100 V1.1 1 of 8 Onsystech

OSTSen-MOS100 사용자설명서 Ver 1.1 Onsystech OSTSen-MOS100 Ver of 8 Onsystech

1. 기본설정 목차 1-1. 설치해야할프로그램및파일 1-2. 프로그램올리기 1-3. MAKEFILE 2. 캐릭터 LCD(PORT) 3-1. 개요 3-2. 사용하는레지스터 3-3. Source Code 3-4. 실습사진 3. 타이머카운터및초음파센서활용 (PORT, TIM

BY-FDP-4-70.hwp

DSP_MON 프로그램 메뉴얼

<4D F736F F D20B1E2BCFAC0DAB7E1202D20454F435220B8F0B5E5B9F6BDBA20C5EBBDC5C1A6C7B020BBE7BFEBB9FD202D F302E646F63>

ATmega128

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

정보보안 개론과 실습:네트워크

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

슬라이드 1

T100MD+

인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

슬라이드 1

(MHT-SB112\273\347\276\347\274\255.hwp)

Microsoft Word - IRM9600x Spec.doc

목차 1. ATMega128의외부메모리인터페이스 2. TEXT LCD 3. TEXT LCD에글자쓰기 4. SRAM 5. 외부메모리인터페이스에 SRAM붙이기

Microsoft Word - WGM-447Xx9 Spec_Transceiver_.doc

V. 통신망 기술

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

Microsoft Word - PLC제어응용-2차시.doc

CANTUS Evaluation Board Ap. Note

슬라이드 제목 없음

(8)

Microsoft PowerPoint - 제3장 GPIO 입출력 제어 (HBE-MCU-Multi AVR)

LS XGT SERIES Connection Manual

뉴티씨 (NEWTC) 2. FB-CY4E-DEV (FPGA 개발 키트) 구성도 Port Select SW 7 Segment Text LCD UART RS-232C JTAG PORTA (5V) Active Serial PORTB (5V) OSC. 50MHz Analog

Microsoft PowerPoint - 9.Serial.pptx

hd1300_k_v1r2_Final_.PDF

COMFILE_VOL13_ cdr

Microsoft Word - EWKit-RS232.doc

Microsoft PowerPoint - 제7장 타이머와 PWM (HBE-MCU-Multi AVR).ppt [호환 모드]

슬라이드 1

ARDUINO Open Physical Computing Platform 오탈자, 문의및보완이필요한내용은 으로알려주세요.

Microsoft PowerPoint - ch11_reg.pptx

제품 설명

HBE-MCU-Multi 로배우는 마이크로컨트롤러 (AVR 편 ) 마이크로컨트롤러기능 제 6 장타이머와카운터

AVR Atmega128

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

JMOD : ATmega128 기본모듈 사용자설명서 제이씨넷

Microsoft Word - WAM-4xxXSS Spec_Transceiver_.doc

CAN-fly Quick Manual

DVI-CL01 매뉴얼

슬라이드 제목 없음

Mango-E-Toi Board Developer Manual

제품소개 MODBUS Tester 는 MODBUS 프로토콜을사용하는산업장비테스트및점검하기위해 PC 를휴대및설치할필요없이쉽고빠르게장비와연결하여원하는작업을진행할수있도록휴대성을강조한 MODBUS 프로토콜테스트장치입니다. MODBUS Tester 에는 3 가지의기능이지원되며,

개요 데이터를저장할수있는기억소자 여러개의플립플롭으로구성. 메모리는단순데이터를저장하는소자이지만, 레지스터는저장뿐아니라저장된데이터를처리할수있는기능도있다. 카운터도클록펄스가입력되면미리정해진순서에따라상태가변하는레지스터이다. 카운터와레지스터의차이점 데이터를저장또는이동하는목적으로

1 1. INTRODUCTION 2 2. DOWNLOAD Windows Desktop & Server Max OS X, Linux, Windows CE 2 3. API REFERENCE CAN_OpenVcp CAN_Op

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729>

뉴티씨 (NEWTC) ATmega8 교육용모듈 (Model : AM-8PL ) 메뉴얼 ( 주 ) 뉴티씨 ( NEWTC ) 1. ATmega8 모듈 (AM-8PL) 소개 ATmega8 칩을

MR-3000A-MAN.hwp

정보보안 개론과 실습:네트워크

1

<4D F736F F F696E74202D2037C0E55FC0CCC0C0C7F55FBFCFBCBA205BC8A3C8AF20B8F0B5E55D>

ADP-2480

ISP and CodeVisionAVR C Compiler.hwp

USB-AIO11 API

Microsoft PowerPoint - 부호기와 복호기.PPT

The Pocket Guide to TCP/IP Sockets: C Version

Microsoft PowerPoint - 6. UART통신 사용.ppt [호환 모드]

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

USB2CAN USB2CAN-UART USB2CAN-FIFO API Reference Manual Copyright NTREXLAB

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

11 강 AVR board & download cable 2009 년도 1 학기 센서개론 Mechatronics Lab 센서개론

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

Nordic Chipset BLE Test Application Note

Microsoft Word - AM-SLCD_시리얼 LCD_ 메뉴얼.doc

Microsoft Word - LKP-RTD 사용자 설명서

인공위성연구소

DSP_MON 프로그램 메뉴얼

<4D F736F F F696E74202D2037C0E55FC0CEC5CDB7B4C6AEC0C720B5BFC0DB2E707074>

Tablespace On-Offline 테이블스페이스 온라인/오프라인

Section 03 인터럽트활성화와인터럽트서비스루틴연결 34/82 장치에대한인터럽트설정과활성화 내부장치에대한특수레지스터존재 장치의특성을반영한동작설정용또는상태관찰용비트로구성 인터럽트사건의발생패턴을설정해야함 인터럽트활성화비트를 1 로셋하여, 인터럽트발생을허락» 전제, 전역

1. 제품규격및특징 구분 규격및특징 입력전압 DC 12~30V 모터구동방식 Bipolar 방식 최대모터전류 Max 3.0A 초기설정정지전류 :4(0.46A), 구동전류 :18(1.75A) 분주비 0(x256), 1(x128), 2(x64), 3(x32), 4(x16),

PowerPoint 프레젠테이션

Microsoft Word - PEB08_USER_GUIDE.doc

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

네트워크 설정

Transcription:

Chapter. 8 UART HBE-MCU-Multi AVR Jaeheug, Lee

목차 1. UART와 RS232 개요 2. ATMega128의 USART 포트 3. UART로 Hello 보내기 4. UART로 PC와데이터주고받기

UART 와 RS232 개요 UART(Uiversal Asychroous Receiver/Trasmitter) 시리얼기반의통신방식으로일반적으로 RS232 프로토콜을통해원격지와통신을지원하는방식 UART 는컴퓨터에게 RS-232C DTE 인터페이스를제공함으로써, 모뎀이나기타다른직렬장치들과통신하거나데이터를주고받을수있게한다. UART 의동작 병렬데이터를하나의단일직렬비트스트림으로변환 직렬비트스트림을컴퓨터가처리할수있도록바이트로변환 패리티비트처리 시작비트와정지비트처리 키보드나마우스로부터들어오는인터럽트처리

UART 와 RS232 개요 RS-232C 직렬전송을위한규격 1969 년미국의 EIA (Electric Idustries Associatio) 에의해서정해진표준인터페이스 " 직렬 2 진데이터의교환을하는데이터터미널장비 (DTE) 와데이터통신장비 (DCE) 간의인터페이스의제반을규정하는것 " RS-232C 의동작 병렬을직렬로직렬을병렬로바꾸어주는작업 스타트비트와스톱비트포함하여 10 비트를 1 바이트로보냄 RXD, TXD 라인을통해신호를송수신 RS232 Trasceiver 를통해전송전압을끌어올려보다먼거리까지전송

UART 와 RS232 개요 RS-232C 를이용한비동기식전송시규약 통신속도 시간당데이터를전송할수있는양 baud rate : 1초당전송되는변조된신호의수 스톱비트 데이타의시작과끝을알리는스타트와스톱비트를사용전송을시작할경우 1을내보내고 8비트를전송한후스톱비트를전송 스타트비트는고정 / 스톱비트는 1 과 1.5, 2 비트중하나를선택. 패리티 오류검출을위해사용 패리티의종류는짝수및홀수방식과사용하지않는경우가있다. 데이타길이가 7 인경우에 8 번째비트를패리티비트로이용 자료길이 하나의데이타를전송하는데필요한데이타길이 ( 비트수 ) 보통 7과 8 비트가있다.

ATMega128 의 USART 포트 ATmega128 의직렬통신포트 직렬통신포트 USART(Uiversal Sychroous ad Asychroous Recei ve ad Trasmitter) 2 개내장 USART0 USART1 완전이중방식 (Full-Duplex) 동기및비동기전송가능 멀티프로세서통신모드로동작가능 높은정밀도의보레이트발생기내장 인터럽트 송신완료 (TX Complete) 송신데이터레지스터준비완료 (TX Data Register Empty) 수신완료 (RX Complete)

ATMega128 의 USART 포트 ATMega128 USART 데이터프레임포맷 최소 7 비트최대 13 비트로구성 (1 비트의스타트비트 ) +(5,6,7,8,9 비트의데이터비트 ) + (0, 1 비트의패리티비트 ) + (1,2 비트의스탑비트 ) 프레임 USART 통신의데이터프레임

ATMega128 의 USART 포트 ATMega128 USART 데이터프레임포맷 스타트비트 1 비트로이루어졌으며항상 0 레벨이다. 송신시에자동적으로생성된다. 데이터비트 5,6,7,8,9 비트가가능하다. 패리티비트 패리티를사용하지않을수도있고사용하는경우홀수혹은짝수패리티 1 비트를사용한다. 스톱비트 1,2 개의비트가가능하며항상 1 레벨이다. 송신시에자동적으로생성된다.

ATMega128 의 USART 포트 ATMega128 USART 레지스터 UDR(Usart i/o Data Register ) USART I/0 데이터레지스터 (UDR0, UDR1) UCSRA(Usart Cotrol ad Status Register A) USART 제어및상태레지스터 A UCSRB(Usart Cotrol ad Status Register B) USART 제어및상태레지스터 B UCSRC(Usart Cotrol ad Status Register C) USART 제어및상태레지스터 C UBRRH/L (USART BAUD RATE REGISTER) : USART baud Rate 레지스터

ATMega128 의 USART 포트 UDR(Usart i/o Data Register ) USART I/0 데이터레지스터 (UDR0, UDR1) USART 모듈의송수신데이터버퍼의기능을수행하는 8 비트레지스터 (= 0, 1) 송신데이터를 UDR 에 write 하면, 송신데이터버퍼 TXB 에저장 수신데이터를 DR 에서읽으면수신데이터버퍼 RXB 에수신되어있는값이읽힘 7 6 5 4 3 2 1 0 RXB7 RXB6 RXB5 RXB4 RXB3 RXB2 RXB1 RXB0 TXB7 TXB6 TXB5 TXB4 TXB3 TXB2 TXB1 TXB0

ATMega128 의 USART 포트 UCSRA(Usart Cotrol ad Status Register A) USART 제어및상태레지스터 A USART 모듈의송수신동작을제어하거나송수신상태를저장하는기능을수행하는 8 비트레지스터 7 6 5 4 3 2 1 0 RXC TXC UDRE FE DOR PE U2X MPCM 비트 7 : RXC (USART Receiver Complete) 수신버퍼의상태플래그수신버퍼에수신문자가있으면 1 로세트수신버퍼가비어있는상태라면 0 으로클리어

ATMega128 의 USART 포트 UCSRA(Usart Cotrol ad Status Register A) 비트 6 : TXC (USART Trasmit Complete) 송신버퍼의상태플래그 송신시프트레지스터에있는송신데이터가모두송신되고 UDR 의송신버퍼에아직새로운데이터가저장되지않은상태이면 1 로세트 비트 5 : UDRE (USART Data Register Empty) 새로운송신데이터를받기위한상태플래그 UDR 의송신버퍼에새로운송신데이터를받을준비가되어있으면 1 로세트 비트 4 : FE (Frame Error) 수신프레임에러상태플래그 UDR 의수신버퍼에현재저장되어있는데이터를수신하는동안에프레임에러가발생했음을나타냄

ATMega128 의 USART 포트 UCSRA(Usart Cotrol ad Status Register A) 비트 3 : DOR (Data Overru Error) 수신동작오버런에러상태플래그 수신동작에서오버런에러가발생했음을나타내는상태플래그 비트 2 : UPE (USART Parity Error) UDR 의수신버퍼에현재저장되어있는데이터를수신하는동안에패리티에러가발생하였음을나타내는상태플러그 비트 1 : U2X (Double the USART Trasmissio Speed) 비동기모드에서만사용가능, 클록의 분주비를 16 에서 8 로 1/2 만큼낮추어전송속도를 2 배높이는기능 비트 0 : MPCM (USART Multi-Processor Commuicatio Mode) USART 을멀티프로세서통신모드설정

ATMega128 의 USART 포트 UCSRB(Usart Cotrol ad Status Register B) USART 제어및상태레지스터 B USART 모듈의송수신동작제어 / 송수신상태저장 USART0, USART1 포트의송수신동작제어, 전송데이터의 9 번째비트값저장 7 6 5 4 3 2 1 0 RXCIE TXCIE UDRIE RXEN TXEN UCSZ2 RXB8 TXB8 비트 7 : RXCIE (USART RX Complete Iterrupt Eable) 수신완료인터럽트를개별적으로 eable 이비트를 1 로설정하고 SREG 레지스터의 I 비트가 1 이고, UCSRA 레지스터의 RXC 비트가 1 로설정되어있으면수신완료인터럽트가발생

ATMega128 의 USART 포트 UCSRB(Usart Cotrol ad Status Register B) 비트 6 : TXCIE (USART TX Complete Iterrupt Eable) 송신완료인터럽트를개별적으로 eable 이비트를 1 로설정하고 SREG 레지스터의 I 비트가 1 이고, UCSRA 레지스터의 RXC 비트가 1 로설정되어있으면송신완료인터럽트가발생 비트 5 : UDRIE (USART Data Register Empty Iterrupt Eable) 송신데이터레지스터준비완료인터럽트 (Data Register Empty) 를개별적으로 Eable 1 로설정하고 SREG 레지스터의 I 비트가 1 이고, UCSRA 레지스터의 U DRE 비트가 1 로되면, USART Data Register Empty 인터럽트가발생 비트 4 : RXEN (USARTN Receiver Eable) USART 모듈의수신부가동작하도록 eable RXD 핀이병렬 I/O 포트가아니라직렬데이터수신단자로동작하도록설정

ATMega128 의 USART 포트 UCSRB(Usart Cotrol ad Status Register B) 비트 3 : TXEN (USART Trasmitter Eable) USART 모듈의송신부가동작하도록 eable TXD 핀이병렬 I/O포트가아니라직렬데이터송신단자로동작하도록설정 비트 2 : UCSZ2 (USART Character Size) UCSRC 레지스터의 UCSZ1~0 비트와함께전송문자의데이터비트수를설정 비트 1 : RXB8 (USART Receiver Data 8Bit) 수신문자가 9 비트로설정된경우에수신된문자의 9 번째비트를저장 비트 0 : TXB8 (USART Trasmit Data 8Bit) 송신문자가 9 비트로설정된경우에송신된문자의 9 번째비트를저장

ATMega128 의 USART 포트 UCSRC(Usart Cotrol ad Status Register C) USART 제어및상태레지스터 C USART 모듈의송수신동작을제어하거나송수신상태를저장 7 6 5 4 3 2 1 0 - UMSEL UPM1 UPM0 USBS UCSZ1 UCSZ0 UCPOL 비트 6 : UMSEL(USART Mode Select) USART 모드설정 1 이면 USART 모듈을동기전송모드로설정하고, 0 이면비동기전송모드로설정

ATMega128 의 USART 포트 UCSRC(Usart Cotrol ad Status Register C) 비트 5,4 : UPM1,0 (USART Parity Mode) 패리티모드설정 UPM1비트를 1 로설정하면패리티를발생오류가발생하면 UCSRA 레지스터의 PE플래그가 1 로세트 패리티모드설정표 UPM1 UPM0 Parity모드 0 0 Disable 0 1 예약 1 0 Eabled, Eve Parity 1 1 Eabled, Odd Parity

ATMega128 의 USART 포트 UCSRC(Usart Cotrol ad Status Register C) 비트 2,1 : UCSZ1,0(USART Character Size) UCSRB 레지스터의 UCSZ2 비트와함께전송문자의데이터비트수를설정 UCSZ 에의한 character Size 설정표 UCSZ2 UCSZ1 UCSZ0 Character Size 0 0 0 5-bit 0 0 1 6-bit 0 1 0 7-bit 0 1 1 8-bit 1 0 0 예약 1 0 1 예약 1 1 0 예약 1 1 1 9-bit

ATMega128 의 USART 포트 UCSRC(Usart Cotrol ad Status Register C) 비트 0 : UCPOL (Usart Clock POLarity ) 동기전송모드의슬레이브동작에서만유효 1 로설정하면송신데이터는클럭의하강에지에서새로운 XCK 값이출력되고, 수신문자는 XCK 의상승에지에서얻어진다. 0 로설정하면반대로된다.

ATMega128 의 USART 포트 UBRRH/L (USART BAUD RATE REGISTER) USART baud Rate 레지스터 USART 모듈의송수신속도를설정 16비트중에서 12비트만사용 비트 11~0 : UBRR11~0 15 14 13 12 11 10 9 8 - - - - UBRR UBRR UBRR UBRR 7 6 5 4 3 2 1 0 UBRR7 UBRR6 UBRR5 UBRR4 UBRR3 UBRR2 UBRR1 UBRR0 12 비트를이용하여 USART 의 Baud Rate 을결정 UBRRH 의 4 비트와 UBRRL 의 8 비트가조합을이룸.

ATMega128 의 USART 포트 UBRRH/L (USART BAUD RATE REGISTER) UBRR 에의한 Baud Rate 설정표 비동기일반모드비동기 2배속모드 Baud Rate (U2X = 0) (U2X=1) (bps)/7.3728mhz UBRR Error UBRR Error 2400 191 0.0% 383 0.0% 4800 95 0.0% 191 0.0% 9600 47 0.0% 95 0.0% 14,400 31 0.0% 63 0.0% 19,200 23 0.0% 47 0.0% 28,800 15 0.0% 31 0.0% 38,400 11 0.0% 23 0.0% 57,600 7 0.0% 15 0.0% 76.800 5 0.0% 11 0.0% 115,200 3 0.0% 7 0.0% 230,400 1 0.0% 3 0.0% 250,000 1-7.8% 3-7.8% 500,000 0-7.8% 1-7.8% 1,000,000 - - 0-7.8%

실습 11 : UART 로 Hello 보내기 실습개요 UART 를이용하여미리작성된문장 ( Hello World ) 을 PC 로전송하는실습 ATmega128 의 USART 포트를입력과출력으로선언하고이포트를 UART 모듈에연결. USB 케이블을이용하여 PC 와연결. 실습목표 UART 기능동작원리이해 ATMega128의 USART 제어방법의습득 ( 관련레지스터이해 ) UART를통해 PC와통신하는방법습득

실습 11 : UART 로 Hello 보내기 사용모듈 : MCU 모듈, UART 모듈 RS 232 포트 USB-to-Serial 포트 MCU 모듈포트 E MCU 모듈 UART 모듈 UART 모듈 Sigal

실습 11 : UART 로 Hello 보내기 사용모듈 : UART 모듈회로

실습 11 : UART 로 Hello 보내기 모듈결선방법 MCU 모듈포트 E의 PE0는 UART 모듈의 RX에연결 MCU 모듈포트 E의 PE1은 UART 모듈의 TX에연결 UART 모듈의 USB 포트를통해 PC의 USB 포트와연결.

실습 11 : UART 로 Hello 보내기 모듈결선방법 UART 모듈을 PC 와연결하면 USB Serial Port 로인식 UART 모듈의 COM 포트를확인연결

실습 11 : UART 로 Hello 보내기 구동프로그램 : 사전지식 미리정해주어야하는통신규약을결정 UART 제어레지스터세팅 Baud Rate 115200 패리티 Stop Bit 1 전송문자데이터비트수 8 흐름제어 비동기전송모드멀티프로세서통신모드 UART의 RX와 TX를 Eable No Parity 없음 UCSR0A 레지스터의플래그를보면서데이터를보낼수있는상태를기다렸다가 UDR0 레지스터에데이터를넣어주면 UART 로데이터가출력됨.

실습 11 : UART 로 Hello 보내기 구동프로그램 : 소스분석 UART_Hello.c 1) #iclude<avr/io.h> 2) void putch(usiged char data){ while((ucsr0a & 0x20) == 0); // 전송준비가될때까지대기 UDR0 = data; UCSR0A = 0x20; } /* UCSR0A 레지스터중에서 5 번째비트 (UDRE) 를 세트하여 UDRE0 를클리어함. */ it mai(){ 3) usiged char text[]="hello! Wolrd!! \r\"; usiged char i=0;

실습 11 : UART 로 Hello 보내기 4) DDRE = 0xfe; // Rx( 입력 0), Tx( 출력, 1) UCSR0A = 0x00; /* 0번째비트, 즉 MPCM 를 0으로세트 (USART을 멀티프로세서통신모드로설정 ) */ UCSR0B = 0x18; // Rx, Tx eable /* 3번째, 4번째비트세트 즉, TXEN (USART모듈의송신부동작 eable) RXEN (USART모듈의수신부동작 eable) 2번비트 UCSZ02 = 0으로세트 */ UCSR0C = 0x06; // 비동기방식, No Parity bit, 1 Stop bit /* 1번째, 2번째비트세트즉, UCSZ0(1:0) = 11 로세트 데이터비트수를 8비트로결정 */ UBRR0H = 0x00; UBRR0L = 0x03; // 7.3728 MHz -> 115200 bps /* USART모듈의송수신속도를설정 */ 5) while(text[i]!= '\0') putch(text[i++]); retur 0; }

실습 11 : UART 로 Hello 보내기 실행결과 하이퍼터미널을다음과같이설정한다음 MCU 를리셋하여문자열을확인한다. Baud Rate 115200 패리티 No Parity Stop Bit 1 전송문자데이터비트수 8 프로그램다운로드시에는 PC 의하이퍼터미널을연결해제상태로 흐름제어 없음

실습 11 : UART 로 Hello 보내기 실행결과

실습 12 : UART 로 PC 와데이터주고받기 실습개요 PC 로부터전송되는문자열을받아다시 PC 로되돌려전송하도록함. 설정은앞의예제와유사 프로그램의작성된문장을 PC 화면에뿌려주는역할과키보드를통해입력받은 ASCII 값을화면상에보여주는기능을함. 실습목표 16 비트타이머 / 카운터활용방법의습득 ( 관련레지스터이해 ) 버저의동작원리이해

실습 12 : UART 로 PC 와데이터주고받기 사용모듈 : MCU 모듈, UART 모듈 RS 232 포트 USB-to-Serial 포트 MCU 모듈포트 E MCU 모듈 UART 모듈 UART 모듈 Sigal

실습 12 : UART 로 PC 와데이터주고받기 모듈결선방법 ( 앞예제와동일 ) MCU 모듈포트 E의 PE0는 UART 모듈의 RX에연결 MCU 모듈포트 E의 PE1은 UART 모듈의 TX에연결 UART 모듈의 USB 포트를통해 PC의 USB 포트와연결.

실습 12 : UART 로 PC 와데이터주고받기 구동프로그램 : 사전지식 ATmega128 의 USART 포트를통해서 PC 와 UART 통신을연결하고, PC 로받은문자열을그대로되돌려전송. 설정 : 기본적인 UART 설정은이전예제와동일하게설정 데이터수신 : 모든설정이끝나면 UCSR0A 레지스터의플래그를보면서 PC 로부터데이터가도착했는지살펴보고있다가데이터가도착하면 UDR0 레지스터로부터데이터를가져오면된다. 데이터송신 : UCSR0A 레지스터의플래그를보면서데이터를보낼수있는상태를기다렸다가 UDR0 레지스터에데이터를넣어주면 UA RT 로데이터가출력될것이다.

실습 12 : UART 로 PC 와데이터주고받기 구동프로그램 : 소스분석 UART_Echo.c 1) #iclude<avr/io.h> void putch(usiged char data){ while((ucsr0a & 0x20) == 0); UDR0 = data; UCSR0A = 0x20; } 2) usiged char getch(){ usiged char data; while((ucsr0a & 0x80) == 0); data = UDR0; UCSR0A = 0x80; retur data; } it mai(){ // 전송준비가될때까지대기 /* UCSR0A 레지스터중에서 5 번째비트 (UDRE) 를 세트하여 UDRE0 를클리어함. */ // 데이터를받을때까지대기 /* UCSR0A 레지스터중에서 7 번째비트를세트하여 RXC0 를클리어함. */

실습 12 : UART 로 PC 와데이터주고받기 3) usiged char text[]="\r\welcome! HANBACK-ELECTRONICS\r\ USART 0 Test Pro gram.\r\"; usiged char echo[]="echo >> "; usiged char i=0; 4) DDRE = 0xfe; // Rx( 입력 0), Tx( 출력, 1) UCSR0A = 0x00; UCSR0B = 0x18; UCSR0C = 0x06; UBRR0H = 0x00; UBRR0L = 0x03; 5) while(text[i]!= '\0') putch(text[i++]); i=0; 6) while(1) while(echo[i]!= '\0') putch(echo[i++]); putch(getch()); retur 0; } // Rx, Tx eable // 비동기방식, No Parity bit, 1 Stop bit // 7.3728 MHz 에서 115200 bps

실습 12 : UART 로 PC 와데이터주고받기 실행결과