예전에 만들었던 Atmega328 보드에 시리얼 관련 부품을 추가하려 알아보다가..
[임베디드/Avr] - Atmega328 보드 만들기 - 회로 및 부품 확인
[임베디드/Avr] - Atmega328 보드 만들기 - 회로도 그려보기
[임베디드/Avr] - Atmega328 보드 만들기 - 보드 납땜 및 태스트..
예전에 사용했던 USB to TTL 컨버터가 생각나서 재구입하려고 가격을 다시 알아봤습니다... 여기저기 알아보다가 옥션에서 개당 2200원에 판매하는 곳이 있더군요.. 바로 주문했던 것이 오늘 왔는데 요렇게 생겼습니다.. pl2303hx 칩을 사용하고 있습니다.
우선 Atmega328 보드에 시리얼 통신 예전에 작성했던 코드를 업로드하고..
http://webnautes.tistory.com/639
- #define F_CPU 16000000UL
- //1. baud rate를 선택
- #define USART_BAUDRATE 9600
- //2.시스템 클록과 원하는 baud rate를 이용하여 UBRR 값을 계산한다.
- #define UBRR_VALUE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1)
- #include <avr/io.h>
- #include <stdio.h>
- void usartInit()
- {
- //3. UBRR0은 16비트 레지스터이기 때문에 8비트씩 나누어서 넣어야 한다.
- UBRR0H = (uint8_t)(UBRR_VALUE>>8);
- UBRR0L = (uint8_t) UBRR_VALUE;
- //4. USART 설정
- UCSR0C |= (1<<UCSZ00)|(1<<UCSZ01); //Charecter size : 8비트
- UCSR0C &= ~(1<<USBS0); //stop bit : 1비트
- UCSR0C &= ~((1<<UPM01)|(1<<UPM00)); // no parity mode
- //5. 송수신을 가능하게 한다.
- UCSR0B=(1<<RXEN0)|(1<<TXEN0);
- }
- void uart_putchar(uint8_t u8Data, FILE *stream )
- {
- //이전 전송이 끝나기를 기다림
- while(!(UCSR0A&(1<<UDRE0))){};
- UDR0 = u8Data;
- }
- uint8_t uart_getchar( FILE *stream)
- {
- // 수신 되기를 기다림
- while(!(UCSR0A&(1<<RXC0))){};
- return UDR0;
- }
- //http://www.appelsiini.net/2011/simple-usart-with-avr-libc
- FILE uart_output = FDEV_SETUP_STREAM(uart_putchar, NULL, _FDEV_SETUP_WRITE);
- FILE uart_input = FDEV_SETUP_STREAM(NULL, uart_getchar, _FDEV_SETUP_READ);
- int main(void)
- {
- usartInit();
- stdout = &uart_output;
- stdin = &uart_input;
- char ch;
- while(1)
- {
- ch = getchar();
- if ( ch == '\r') printf( "\r\n");
- putchar(ch);
- }
- }
USB TO TTL 컨버터와 Atmega328 보드를 아래처럼 연결했습니다.
USB TO TTL 컨버터 Atmega328 보드
5V 5V
GND GND
RXD PD1(TXD)
TXD PD0(RXD)
그리고 나서 노트북에 USB TO TTL 컨버터를 연결해봅니다. 그리고는 장치관리자에서 확인해봤는데 예상대로 제대로 안잡혀있습니다.
아래와 같은 에러가 나있네요.. 혹시나해서 구글에서 검색하다가 방법을 찾았는데..
http://www.ifamilysoftware.com/news37.html 에서 32비트 경우랑 64비트 경우를 나누어서 설명하고 있습니다. 제 경우는 윈도우10 64비트라 64비트 경우를 따라 진행해봤습니다..
1. 아래 링크에서 드라이버를 다운로드 받아 둡니다...
http://www.ifamilysoftware.com/Drivers/PL2303Installer/PL2303_64bit_Installer.exe
2. USB to TTL 컨버터를 피시에서 분리합니다.
3. 다운로드 받았던 드라이버를 실행시킵니다.. 설치 도중에 아래와 같은 창이 뜨면 USB to TTL 모듈을 연결하고 Continue버튼을 클릭합니다.
4. 이제 재부팅을 해봅니다..
5. 문제 없이 잡혀있습니다..~~
이제 터미널을 열어서 문자를 입력하면 에코가 되어서 돌아오는지 확인해봅니다. 문제 없이 잘 동작합니다..~~
'AVR > Atmega128 강좌' 카테고리의 다른 글
Atmega128 기초 - 외부 인터럽트 (0) | 2016.06.16 |
---|---|
ATmega128 기초 - 입출력 포트 (2) | 2016.06.15 |
AVR로 DC모터 제어 (0) | 2015.11.03 |
Atmega328 보드 만들기 - 보드 납땜 및 태스트.. (0) | 2015.10.29 |
Atmega328 보드 만들기 - 회로도 그려보기 (0) | 2015.10.26 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!