마이크로프로세서 10

마이크로프로세서 - (10) 16비트 타이머/카운터

16비트 타이머/카운터 출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍 8비트와의 큰 차이점은 오버플로 인터럽트가 2^16-1까지 카운트 가능하고, 3개의 비교 일치 인터럽트가 존재하며, 입력 캡처가 존재한다는 것이다. ​ 즉 분주기가 256일 때의 오버클록 1주기를 확인하면 1/16M * 256 * 2^16 = 약 1초이다. 8비트보다 2^8만큼 길어진 모습이다. TCNTn 레지스터 출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍 H와 L로 나뉘어 각각 8비트씩 16비트를 셀 수 있게 되어있다. 기본적으로 분주비가 없을 때 4.096ms의 간격으로 인터럽트가 발생한다. 출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍 8비트에서 했던 내용 중에 16비트로 바뀌고..

대학교 2023.11.20

마이크로프로세서 - (9) 8비트 타이머/카운터

타이머/카운터 입력 펄스를 세는 장치를 카운터라고 한다. 일정한 주기의 펄스를 세어 시간을 측정하는 타이머 역할을 수행한다. 클록은 마이크로컨트롤러의 시스템 클록을 기본으로 사용한다. ​ ATmega128은 0,2번에 8비트, 1,3번에 16비트 타이머/카운터를 사용한다. 8비트 타이머/카운터는 0~255까지 세기를 반복하고 16MHz의 시스템 클록을 기본으로 사용한다. 분주기를 통해 클록의 속도를 늦춰 긴 시간을 측정할 수 있다. ​ 8비트 타이머/카운터 구조 출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍 출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍 위는 0번 아래는 2번 타이머/카운터이다. 클록 MUX 설정 방식과 ASSR 레지스터의 차이점이 있다. 이는 아래에서 다..

대학교 2023.11.12

마이크로프로세서 - (8) 인터럽트

폴링과 인터럽트 - 폴링 코드 나열 순서에 의해 실행 순서 결정 모든 코드는 동일한 실행 우선 순위를 가짐 정해진 순서에 따라 실행되는 구조로 하드웨어의 지원이 필요 코드 작성과 이해가 쉬움 ​ - 인터럽트 우선 순위에 따라 실행 순서 결정 인터럽트에 따라 서로 다른 실행 우선 순위 가짐 우선 순위 높은 코드 먼저 실행되는 구조로 하드웨어에 의해 우선 순위에 따른 처리 지원 코드 작성과 이해가 복잡하고 어려움 ​ 출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍 인터럽트 발생 시 현재 코드 정지하고 ISR로 즉시 이동해 인터럽트를 먼저 처리한다. 동시에 여러 개의 인터럽트 발생 시 우선 순위 높은 인터럽트를 우선 처리한다. ATmega128의 인터럽트 35개의 언터럽트를 사용할 수 있다. 인..

대학교 2023.11.06

마이크로프로세서 - (7) 아날로그-디지털 변환

아날로그-디지털 변환 주변의 데이터는 아날로그이기에 마이크로컨트롤러에서 처리할 수 있는 디지털 데이터로 변환이 필요하다. ADC(아날로그-디지털 변환기) : 10비트 해상도, 8개 채널 제공 출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍 ADMUX -> ADCSRA -> ADC 순서대로 진행된다. 우선 ADMUX에서 기준전압을 5V, 0V, 2.56V에서 정한 후 입력 채널을 선택한다. 이후 ADCSRA에서 변환, 활성화, 모드, 분주율 등을 설정한다. 최종적으로 ADC에서 변환값을 10비트에 저장한다. ​ 단일 입력은 1개의 입려과 GND를 사용하고, 차동 입력은 2개의 입력 차이와 GND를 사용한다. 여기서 입력되는 아날로그 신호 크기가 작은 경우 증폭 기능을 사용할 수 있다. 이를 ..

대학교 2023.10.18

마이크로프로세서 - (6) UART 시리얼 통신

시리얼 통신 마이크로컨트롤러는 비트 단위의 데이터를 핀 단위로 전송한다. 출처 : Atmega128로 배우는 마이크로컨트롤러 프로그래밍 병렬과 직렬이 있는데 이번에 다룰 UART 통신은 시리얼/직렬 통신의 한 종류이다. UART 통신 출처 : Atmega128로 배우는 마이크로컨트롤러 프로그래밍 UART통신은 비동기식 통신이다. 즉 별도의 클록을 사용하지 않고 약속된 속도로 송수신을 진행해야 한다. 통신 단위로는 보율을 사용한다. ​ 출처 : Atmega128로 배우는 마이크로컨트롤러 프로그래밍 보율은 변조 속도, 즉 위에서는 총 4번 변화가 있었기에 보율이 4이다. bps의 경우 2비트씩 4번이기에 8이다. ​ 출처 : Atmega128로 배우는 마이크로컨트롤러 프로그래밍 아무 통신이 없을 때 기본적으..

대학교 2023.10.07

마이크로프로세서 - (5) 데이터 입력

저항 풀업 : 버튼이 눌러지지 않은 경우 입력 핀에 5V가 가해짐 풀다운 : 버튼이 눌러지지 않은 경우 입력 핀에 GND가 가해짐 출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍 ​ 푸쉬 버튼의 경우 4개의 핀을 가지며 1,3 혹은 2,4 쌍을 사용한다. 출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍 레지스터 DDR 레지스터 : 핀의 입출력 방향 선택 출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍 ​ PIN 레지스터 : 입력받은 데이터 저장 출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍 ​ 출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍 PORT 레지스터는 출력할 때 사용하고, PIN 레지스터는 입력할 때 사용한다. 예제 출처 ..

대학교 2023.10.07

마이크로프로세서 - (4) ATmega128 보드

구성 출처:ATmega128로 배우는 마이크로컨트롤러 프로그래밍​ 보드는 위와 같은 요소들로 구성되어 있다. ​ ISP 방식은 직접회로에 직접 연결하여 플래시 프로그램 메모리, EEPROM 등을 지우거나 프로그래밍하는 방법이다. 6핀 또는 10핀 커넥터를 주로 사용한다. 출처:ATmega128로 배우는 마이크로컨트롤러 프로그래밍​ 출처:ATmega128로 배우는 마이크로컨트롤러 프로그래밍​ ​ UART 통신은 병렬 데이터를 직렬로 바꾸어 전송하는 방식이다. 프로그램을 업로드 하거나 시리얼 통신을 위해 사용한다. 출처:ATmega128로 배우는 마이크로컨트롤러 프로그래밍​ 출처:ATmega128로 배우는 마이크로컨트롤러 프로그래밍​ 보드 종류 출처:ATmega128로 배우는 마이크로컨트롤러 프로그래밍​ 출..

대학교 2023.09.22

마이크로프로세서 - (3) 레지스터

레지스터 - CPU 내부 레지스터 마이크로프로세서에서 사용되는 레지스터 프로그래머가 신경 쓰지 않아도 된다. ​ - CPU 외부의 레지스터 외부 장치와 데이터 교환 과정에서 필요한 레지스터 입출력 레지스터 : 소프트웨어와 하드웨어 사이에서 중개자 역할을 수행 ​ 레지스터는 8비트의 메모리 이며 실제 사용되는 것은 137개이다. 하나의 데이터 핀은 여러 가지 기능으로 사용된다. 출처:ATmega128로 배우는 마이크로컨트롤러 프로그래밍 메모리 출처:ATmega128로 배우는 마이크로컨트롤러 프로그래밍 플래시 메모리는 프로그램 저장을 위한 하드디스트 기능을 수행한다. SRAM은 연산용, 컴퓨터의 메인 메모리 기능을 한다. EEPROM은 데이터를 영구보관할 때 사용한다. 출처:ATmega128로 배우는 마이크..

대학교 2023.09.21

마이크로프로세서 - (2) ATmega128 개요

AVR 8051 : 인텔이 만든 8비트 마이크로컨트롤러, CISC 구조 사용 ARM : 32비트 마이크로컨트롤러 AVR : 아트멜이 발표한 8비트 마이크로컨트롤러 출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍 ATmega128이 AVR의 메가 시리즈에 속한다. ​ - AVR 특징 8비트 간단한 구조로 학습용으로 적합하다. 가장 최근에 발표된 아키텍처를 사용하며, 아두이노 역시 AVR을 기본으로 한다. ​ - ATmega128 64핀을 가지며, 보통 ATmega128A를 칭하는 말이다. 다양한 어셈블리 명령어로 구현되며, SRAM으로 구성된 메모리가 있다. 파이프라인은 대부분 1 클록에 실행되며, 32개의 8비트 범용 레지스터와 I/O 레지스터를 제공한다. ​ - ATmega128 메모리 ..

대학교 2023.09.13

마이크로프로세서 - (1) 마이크로컨트롤러 개요

마이크로컨트롤러 출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍 마이크로컨트롤러는 하나의 칩으로 구현한 컴퓨터라고 할 수 있다. 하지만 위 사진과 같이 메모리도 적고 동작 속도도 느리다. 그렇기에 가볍고, 저렴한 가격, 신뢰성 향상, 융통성 있다는 장점이 있고, 낮은 처리 능력과 범용성 부족이라는 한계가 있다. 보통 신호등, 무선 전화기, 게임기 등 간단한 작업에 사용된다. ​ 추가로 마이크로프로세서는 중앙처리장치를 하나의 칩으로 만든 것을 말하고, 마이크로컨트롤러는 중앙처리장치와 메모리, 입출력 인터페이스를 포함한 것을 말한다. ​ 마이크로컨트롤러를 위한 프로그램은 컴퓨터에서 작성하지만 프로그램의 실행은 마이크로컨트롤러에서 이루어진다. 그렇기에 부트로더가 필요하다. 즉 컴퓨터에서 마이크로..

대학교 2023.09.13