본문 바로가기

배움의 즐거움/하드웨어

ATmega128로 배우는 마이크로컨트롤러 프로그래밍(5) - ATmega128 보드

반응형

책의 챕터 3(개발 환경 설정)과 챕터 4(마이크로컨트롤러를 위한 C언어)는 굳이 블로그에 정리하지 않고 스킵하기로 하였다. 개발환경 설정의 경우 나는 맥을 쓰기 때문에 책에서 설명하는 Atmel Studio를 쓰지 않을 예정이고, C언어는 프로그래밍을 기본적으로 할 줄 알기 때문에 나중에 필요한 부분을 찾아서 쓰면 된다고 생각하기 때문이다. 그렇다고 읽지 않은 것은 아니고 다 읽었지만 굳이 정리를 할 필요는 없다고 느꼈기에 스킵하기로 하였다.

챕터 5는 책에서 사용하게 될 ATmega128보드에 관한 설명인데, 나는 해당 보드를 사용하진 않을 것이지만 그래도 보드 구성이 어떻게 되어있는지도 궁금하였고 나중에 내가 보드를 직접 구성할 때 도움이 될 것 같아서 정리하기로 하였다. 앞에서 배운 내용이 조금 반복되긴 하지만 새롭게 배운 내용도 많아서 흥미로운 챕터였다.

 

5.1 ATmega128 보드의 구성요소

ATmega128은 SMD 타입의 칩으로 64개의 핀을 가지고 있다. 시중에 판매하는 보드는 주변장치(LED, 버튼, 텍스트 LCD, 모터 등)를 포함하는 것과 포함하지 않는 것으로 나눌 수 있는데, 마이크로컨트롤러를 공부하는 것이 목적이라면 포함되지 않는 것을 구매하여 직접 연결해 보는 것이 좋다.

ATmega128 동작을 위해 반드시 필요한 부품에는 16MHz 클록공급을 위한 크리스털, 리셋 스위치 그리고 전원을 공급하는 회로이다. 하지만 이는 프로그램 다운로드를 완료한 후의 이야기이고, 프로그램을 개발하는 과정에서는 더 필요한 것들이 있다.

먼저 프로그램을 ISP방식으로 다운로드 하기 위해서는 이를 연결하기 위한 커넥터가 필요하다. 또한 프로그램을 다운로드 한 뒤 실행하여 동작상태를 확인해보기 위한 UART 시리얼 통신을 위한 커넥터도 필요하다.

10핀, 6핀 ISP 커넥터 핀 배열
UART  시리얼통신 커넥터 핀 배열

UART 시리얼 통신 커넥터는 전원 핀 두개(VCC, GND)와 데이터 송수신을 위한 핀 두개(RX, TX)를 가지고 있다. 이 외에 JTAG 커넥터도 있는데, 이는 프로그램 다운로드에도 쓰이지만 흔히 디버깅 용도로 사용된다. 이 책에서는 따로 JTAG 디버깅을 다루지 않는다.

출처: ATmega128로 배우는 마이크로컨트롤러 프로그래밍

 

5.2 ATmega128 보드 종류

책에서는 총 3가지의 ATmega128 보드를 비교해서 잘 설명해준다. 

출처: ATmega128로 배우는 마이크로컨트롤러 프로그래밍

해당 책에서 사용하는 보드는 제일 오른쪽의 AM-128USB로, 세 보드 중 가장 많은 기능을 가지고 있다. AM-128PL과 AM-128PRO는 크게 다르지 않는데, 다른 점은 UART 통신을 위한 커넥터가 4핀에서 3핀으로 바뀐 것과, AM-128PRO 뒷펴네 없는 RS-232C/UART 레벨변환장치(아래 설명추가)가 추가된 것이다.

ATmega128의 UART 통신은 TTL(Transistor-Transistor Logic) 레벨을 사용하는데, TTL 레벨이란 마이크로컨트롤러가 동작하는 전압을 기준으로 논리 레벨이 정해지는 것을 말한다. TTL 레벨5V가 논리 1을, GND가 논리 0을 나타내는데, RS-232C 통신의 경우는 ±12V를 사용한다.

TTL 레벨과 RS-232C 비교

컴퓨터는 AM-128USB를 사용하므로 TTL 레벨을 사용하는 ATmega128와 직접적으로 연결할 수 없는데 이를 위해서는 레벨 변환기가 필요하다. UART 통신을 주로 사용하긴 하지만 컴퓨터를 비롯하여 여러 주변장치에서는 RS-232C 레벨의 신호를 사용하는 경우가 있는데, 따라서 사용하고자 하는 기기에 따라 둘 중 선택하여 사용하면 된다.

책에서 사용하는 AM-128USB 보드는 AM-128PL과 AM-128PRO가 가지고 있는 모든 기능 외에 추가적으로 몇개의 칩과 커넥터가 추가되어 있다.

AM-128USB 앞면

AM-128USB 보드는 총 세종류의 UART 연결 커넥터를 가지고 있는데, 이 중 4핀 커넥터는 TTL 레벨을 사용하며, 2개의 3핀 커넥터는 RS-232C 레벨을 사용하므로 RS-232C/UART 레벨 변환장치를 통해 UART 포트와 연결되어 있다.

왼쪽 아래쪽에 위치해 있는 USB/UART 커넥터는 mini-B 타입의 커넥터로 컴퓨터의 USB 포트와 연결하여 UART 시리얼 통신이 가능하다. 컴퓨터와 UART 통신을 하기 위해서는 USB/UART 변환 장치가 있어야 하는데, 보드의 뒷면에 해당 칩이 있다. 이 외에도 JTAG 커넥터를 포함하고 있으므로 디버그를 수행할 수 있다.

 

이후의 내용은 ATmega128 보드를 직접 컴퓨터에 연결하여 테스트 프로그램을 보내보는 방법과, 주변 장치와 연결하는 방법들이다. 나는 해당 보드도 없고, 해당 보드를 쓰지도 않을 것이기에 이후의 내용은 눈으로 읽기만 하고 정리하지는 않는다.

책에 보드들에 관한 비교와 설명이 잘 되어있어서 차이점과 공통점을 한 눈에 이해할 수 있었다. :) 

반응형