본문 바로가기

Embedded Programming (AVR)/Atmega 128A (실습)

(23)
8bit Timer / counter - CTC Mode 서론   이번 게시글부터 8bit Timer / Counter와 ATmega 128A의 클럭 신호 (16MHz)을 이용하여 다양한 신호를 출력해 볼 것이다. 이를 통해 CTC Mode, Normal Mode, Fast PWM Mode 등 다양한 파형 발생모드 (Waveform Generation Mode)에 대해서 공부할 것이며, 이에 따른 발생할 수 있는 Interrupt와 분주비 설정에 따른 출력 신호의 주파수 변화에 대해서 알아볼 예정이다.   먼저, CTC Mode를 활용한 다양한 신호를 출력함으로서 CTC Mode에 대해서 공부해 보도록 하겠다.  본론 (CTC Mode에 대한 이론) Q) CTC Mode란 무엇인가? A) CTC Mode는 Clear Time on Compare Match Mo..
Timer / Counter - 기초 (2) 서론  Timer / Counter - 기초 (1) 에서는 Timer와 Counter에 대한 기본과 PWM, Duty ratio 등에 대해서 살펴보았으며, 이번 글에서는 ATmeaga 128에 대한 Timer / Counter에 대해서 글을 쓰도록 하겠다. ATmega 128는 2개의 8Bit Timer/Counter와 2개의 16Bit Timer/Counter를 갖고 있다. 이에 대한 특징과 클럭신호를 나누어 카운터의 동작 속도를 늦추는 역활을 수행하는 Prescaler(분주비)에 대해서 자세히 살펴보도록 보자.   본론  ATmega 128은 4개의 Timer/Counter를 갖고 있기 때문에 이를 Timer/Counter 0 ~ 3 까지 인덱스를 붙을 수 있다.  1) 8Bit Timer/Count..
Timer / Counter - 기초 (1) 서론  Timer/Counter는 디지털 논리 회로에서 주기를 갖는 신호를 측정 및 생성할 때 필요한 기능 및 회로이다.Timer/Counter를 통해 특정 주파수를 갖는 출력 신호를 생성하여 특정 주기마다 이벤트를 발생하도록 설계하거나 외부에서 들어오는 신호의 길이를 측정할 수 있다. 따라서 Timer / Counter는 MCU에서 주변 기기들을 정확한 타이밍에 동작시키는 데 있어 중요한 개념이라고 할 수 있다. 이번 게시글을 통해 Timer / Counter에 대한 기본 개념을 알아보자.   본론  Timer와 Counter는 하나의 세트로 묶어 사용하기 때문에 Timer와 Counter에 대해서 개념 차이를 잘 모르는 경우가 있다. Timer와 Counter의 차이는 다음과 같다 Timer Time..
FND (Flexible Numeric Display) - 기초 (2) 서론  4-FND (Flexible numeric display)는 4개의 FND를 모아 하나의 단일 소자로서 각각의 FND는 LED의 출력을 위해 동일한 8개의 핀을 공유하여 사용하지만, 아래와 같이 4개의 핀 ( 12핀, 9핀, 8핀, 6핀 )을 이용하여 각 자리의 FND의 출력을 제어하게 된다.   본론  이번에는 아래와 같은 회로 및 환경을 구현하여 4-FND에 대해서 알아보겠으며, 특히 4-FND을 이용하여 서로 다른 자리에 서로 다른 숫자들을 동시에 출력함으로서 C언어에 대한 이해 및 FND에 대한 지식 및 활용 능력을 쌓도록 하겠다. 4-FND을 연결한 뒤, for문을 이용하여 0 ~ 9까지 순차적으로 단순히 출력하도록 하겠다.0 ~ 9999 까지 동시 출력하도록 설계하도록 하겠다.  구현 ..
FND (Flexible Numeric Display) - 기초 (1) 서론  FND (Flexible Numeric Display) 은 아래의 그림와 같이 여러 개의 LED를 이용하여 10진수 숫자 또는 16진수용 문자를 표시하는 소자이다. 이를 7-segement , Flexible Numeric Dispaly 이라고 한다.     이번 구현에 사용할 FND는 5161AS의 Data sheet를 보게 되면 다음과 같이 구성되어 있으며, 특히 아래 그림과 같이 Common cathode 로 구성되어 있다. 이는 3, 8핀의 GND을 모든 다이오드들이 공유하기 때문에 각각 다이오드가 연결된 핀에 전압을 인가하게 되면 전위차에 의해 전류는 다이오드를 통해 GND로 흐르게 되며, 이를 통해 다이오드에 불이 들어오게 된다.   본론   이번에는 다음과 같은 구현을 함으로서 FND..
Interrupt - 기초 (1) Button 3개를 통해 서로 다른 Interrupt을 설정하여 LED를 컨트롤하기 1) 목표: PORT D 에 PD0, PD1, PD2에 스위치, PORT A 에 LED를 연결한 뒤, 서로 다른 interrupt을 설정하여 각각의 버튼을 눌렀을 때, 서로 다른 Interrupt 때 LED를 컨트롤 할 수 있게끔 설계하기PD0 : Low-level sensitive 에서 Interrupt를 발생하도록 설계          LED가 짝수 핀들에 다이오드 전부 불이 들어오도록 한 뒤, 짝수 번째 다이오드에 전부 불이           들어오면 홀수 핀들에 다이오드 전부 불이 들어오도록 설계한다.PD1 : Rising-edge sensitive 에서 Interrupt를 발생하도록 설계          LED의..
GPIO - LED control (3) Button 3개를 통해 LED를 컨트롤1) 목표: PORT D에 PD0, PD1, PD2 각각 Button을 연결 한 뒤, PORT A에 연결된 LED를 컨트롤하기.              PD0 : LED 에서 0, 2, 4, 6번째 다이오드를 출력              PD1 : LED 7번째 다이오드부터 0번째 다이오드까지 shift하면서 출력              PD2 : LED 0번째 다이오드부터 7번째 다이오드까지 shift하면서 출력 2) 선행 지식 : 해당 회로는 Pull-Up 구조 회로를 구성했기 때문에 Switch를 누르기 전에는 5V 전압이 들어오                       다가Switch 를 누르면 GND로 short되어 전류는 더이상 Pin쪽으로 향하지 않고, ..
Atmega 128A의 버튼 (기초) 1. 환경 : Microchip Studio2. 목표 : 1) PD0에 버튼을 연결, 2) Pull-UP 회로 구성               3) PORTF에 LED의 연결 한 뒤, 3번째 핀만 출력으로 사용               ==> 버튼을 누르기 전 상태는 LED가 꺼져 있지만, 버튼을 누르면 LED가 켜지도록 설계3. 선행 지식- 프로그래밍 하기전, 회로를 구성함에 따라 동작 결과는 전혀 다르게 나타나기 때문에 회로에 대한  기초 지식이 필요하다.- Floating, Pull-up, Pull-down 에 대해서 이해할 필요가 있다.- https://jbhdeve.tistory.com/147  Floating, Pull-up, Pull-down목표) 다음과 같은 궁금증을 알아보도록 하겠다.   ..