본문 바로가기

배움의 즐거움/하드웨어

(8)
ATmega128로 배우는 마이크로컨트롤러 프로그래밍(8) 아날로그-디지털 변환 10.1 ATmega128의 ADC 아날로그 데이터를 디지털 데이터로 변환하는 장치를 아날로그-디지털 변환기(Analog-Digital Converter, ADC)라고 한다. 마이크로컨트롤러는 아날로그 값을 입력받아 ADC를 거쳐 디지털 데이터로 변환한 후 마이크로컨트롤러 내의 CPU에서 처리한다. ATmega128은 10비트 해상도의 ADC를 포함하고 있는데, 이는 입력되는 전압을 0에서 1,023(2의 10승 - 1) 사이의 디지털 값으로 변환할 수 있다는 것을 의미한다. ADC 채널은 8개로, 8개의 아날로그 출력장치를 ATmega128에 연결할 수 있지만, 8개의 채널은 하나의 AD 변환기 멀티플렉서(MUX)에 연결되어 있으므로 한 번에 하나의 아날로그 입력만 디지털로 변환할 수 있다. 아날로그 ..
ATmega128로 배우는 마이크로컨트롤러 프로그래밍(7) UART 시리얼 통신 기본 내용 GPIO핀은 한번에 한 비트의 데이터만 전송할 수 있으므로 병렬통신으로 8개의 LED를 제어하기 위해서는 8개의 GPIO핀을 사용해야 한다. 병렬통신을 사용하게 되는 경우 연결해야하는 핀의 개수가 많아져서 복잡해지므로 고속의 데이터 전달이 필요한 경우를 제외하고는 많이 사용되지 않는다. 병렬통신에서 8개 비트를 8개의 입출력 핀을 통해 한번에 전송한다면, 직렬(시리얼 통신)에서는 1개의 입출력 핀을 통해 8개 비트를 여덟번에 나누어 전송한다. 시리얼 통신에는 SPI와 I2C와 같은 다양한 방법이 있지만, 이번 장에서는 가장 흔히 사용되는 방법인 UART에 대해서 알아볼 것이다. 9.1 UART 위의 그림과 같이 데이터를 여덟 번에 나누어서 보내는 경우, 받는 쪽에서 얼마나 자주 데이터를 확인할 것인지 알..
ATmega128로 배우는 마이크로컨트롤러 프로그래밍(6) 디지털 데이터 출력과 입력 이번 글에서는 책의 챕터 7에서 다뤄진 디지털 데이터 출력과 챕터 8에서 다뤄진 디지털 데이터 입력에 대해서 함께 정리할 것이다. 7.1 ATmega128의 데이터 핀 ATmega128은 64개의 핀을 가지고 있고 이 중 53개의 핀을 디지털 데이터 입출력 핀으로 사용할 수 있다. 이 마이크로컨트롤러의 중앙처리장치는 1바이트(8비트) 크기의 워드(word) 단위로 데이터를 처리하므로, 8개의 입출력 핀을 묶어 포트라는 이름으로 관리한다. 포트는 외부 장치와 데이터를 교환하는 기본 단위가 된다. 마이크로컨트롤러는 마이크로프로세서와는 다르게 주변장치와 데이터를 주고받는 기능이 칩 내에 포함돼 있고, 이를 위해 사용하는 임시 기억공간을 입출력 레지스터라고 한다. ATmega128에는 256개의 레지스터를 정의..
ATmega128로 배우는 마이크로컨트롤러 프로그래밍(5) - ATmega128 보드 책의 챕터 3(개발 환경 설정)과 챕터 4(마이크로컨트롤러를 위한 C언어)는 굳이 블로그에 정리하지 않고 스킵하기로 하였다. 개발환경 설정의 경우 나는 맥을 쓰기 때문에 책에서 설명하는 Atmel Studio를 쓰지 않을 예정이고, C언어는 프로그래밍을 기본적으로 할 줄 알기 때문에 나중에 필요한 부분을 찾아서 쓰면 된다고 생각하기 때문이다. 그렇다고 읽지 않은 것은 아니고 다 읽었지만 굳이 정리를 할 필요는 없다고 느꼈기에 스킵하기로 하였다. 챕터 5는 책에서 사용하게 될 ATmega128보드에 관한 설명인데, 나는 해당 보드를 사용하진 않을 것이지만 그래도 보드 구성이 어떻게 되어있는지도 궁금하였고 나중에 내가 보드를 직접 구성할 때 도움이 될 것 같아서 정리하기로 하였다. 앞에서 배운 내용이 조금 ..
ATmega128로 배우는 마이크로컨트롤러 프로그래밍(4) - 마이크로컨트롤러를 위한 전자공학 이번 글은 책의 부록 B에 실린 마이크로컨트롤러를 위한 전자공학의 부분을 정리할 예정이다. 이 책의 좋은 점은 단순히 마이크로컨트롤러에 대해서 설명하는 것이 아니라 그 외에도 내가 마이크로컨트롤러를 다루면서 궁금했던 기본적인 점들도 함께 다뤄준다는 것이다. 물론 많은 내용을 몇장에 담은 요약 내용이기 때문에 더 깊은 내용을 알고 싶다면 관련 도서를 읽는 것이 좋겠지만, 전반적인 내용을 간단히 훑고 지나갈 수 있어서 좋았다. 예전에 알고 있었지만 까먹었던 내용도 상기해가며 읽었다. B1. 전류, 전압, 전력 전자공학의 핵심인 전자는 원자를 이루는 구성 요소 중 하나로 음(-)의 전기를 띠는 입자를 말한다. 원자는 양(+)의 전기를 띠는 양성자와 전기를 띠지 않는 중성자로 이루어진 원자핵과, 그 외곽을 회전..
ATmega128로 배우는 마이크로컨트롤러 프로그래밍(3) 아두이노와 마이크로컨트롤러 이 책의 3장은 원래 개발환경 설정에 관한 글이라 Atmel Studio를 설치하고 사용하는 방법에 대해서 이야기하고 있다. 그런데 나는 맥을 사용하고 있으므로 윈도우에만 설치 가능한 Atmet Studio를 설치할 수 없었기에(Virtual Box를 이용하면 할 수도 있지만 요즘 컴퓨터 용량이 부족해서 ㅠㅠ 얼마 전에 삭제하였다) 넘겼다. 찾아보니 맥 사용자들은 avrdude나 Arduino Studio를 사용해서 개발하는 것도 가능하다고 해서 나는 이미 깔려있는 Arduino Studio를 사용할 예정이다. 그리고 책을 둘러보던 중 34장에 아두이노와 마이크로컨트롤러에 관한 전반적인 설명이 있어서 이 챕터를 먼저 공부하기로 하였다. 34.1 아두이노 아두이노는 2005년 이탈리아에서 출범한 오픈소스 ..
ATmega128로 배우는 마이크로컨트롤러 프로그래밍(2) - ATmega128 소개 앞에서는 마이크로컨트롤러란 무엇인지 컴퓨터와 비교해가며 알아보았다. 이번 글에서는 마이크로컨트롤러, 그중에서 ATmega128에 대해서 정리해 볼 것이다. 사실 책의 내용을 간략하게 요약해서 나중에 참고로 읽으려고 했는데, 쓰다 보니 중요하거나 흥미로운 내용이 너무 많아서 글이 좀 길어지고 있다. ATmega128로 배우는 마이크로컨트롤러 프로그래밍(1) - 마이크로 컨트롤러란? 지난주부터 팹 아카데미에서 Electronics에 관한 수업이 시작되었다. 그런데 수업시간에 모르는 개념들이 많이 나왔고, 인터넷에 용어의 정의를 찾아봐도 잘 이해가 되지 않았다. (9) 네덜란드에서 살아남기 - Fab.. bricoler.tistory.com 2.1 AVR 마이크로 컨트롤러 아트멜은 1984년 창립한 반도체 제..
ATmega128로 배우는 마이크로컨트롤러 프로그래밍(1) - 마이크로 컨트롤러란? 지난주부터 팹 아카데미에서 Electronics에 관한 수업이 시작되었다. 그런데 수업시간에 모르는 개념들이 많이 나왔고, 인터넷에 용어의 정의를 찾아봐도 잘 이해가 되지 않았다. (9) 네덜란드에서 살아남기 - Fab Academy 네 번째 수업 - 전기전자 공학도의 첫 PCB 제작 내가 전자전기공학을 전공했다는 것은 팹 아카데미에서 말하지 않았다. 왜냐면.... 전자전기를 전공했음에도 불구하고 나는 이 분야에 대해서 잘 알지 못하고ㅠㅠ 그 사실이 너무 창피하기 때문이다. 그리고 이번.. bricoler.tistory.com 그래서 마이크로컨트롤러에 대한 책을 찾던 중, 우연히 이 책을 찾게 되었고 샘플이 있길래 읽어보았는데 내가 배우고 있는 부분과 딱 맞아떨어져서 바로 구매하게 되었다. 아쉽게도 e-..