Harman 세미콘 아카데미/Atmega128a 10

2024.6.25 [ATmega128a]⑨ - Ultrasonic(int, ICP), EZ motor R300

2024.6.25 수업날오늘은 어제 배웠던 HC-SR04(Ultrasonic) 초음파 센서를 가지고 INT, ICP 형식으로 코드를 작성하고EZ moter r300으로 선풍기를 만드는 프로젝트를 진행하였다.어제 배웠던 Ultrasonic 초음파 센서를 INT 형식으로 소스코드를 작성한다.결과는 똑같지만, 소스코드의 내용에는 차이가 있다./* * def.h * * Created: 2024-06-25 오전 9:20:11 * Author: USER */ #ifndef DEF_H_#define DEF_H_#define F_CPU 16000000UL#include #include #include #include #include #include #endif /* DEF_H_ */먼저, def.h라는 헤더파일이 추..

2024.6.24 [ATmega128a]⑧ - I2C 통신, ULTRASONIC(HC-SR04)

2024.6.24 수업날오늘부터 내일까지 ATmega128a를 활용하여 다시 공부해보는 시간을 가진다.I2C통신은 여러 주변장치들이 최소한의 연결선만을 사용하여 저속으로 통신하는 방법이다.I2C는 송신과 수신이 동시에 이루어질 수 없는 반이중 방식을 사용한다.슬레이브 장치의 개수와 무관하게 데이터 전송을 위한 SDA, 클록 전송을 위한 SCL의 2개의 선을 필요로한다. I2C는 동기 방식이다. 따라서 수신된 데이터는 SCL이 HIGH인 경우 SDA의 데이터는 안정된 상태에 있어야만 한다. 데이터 전이는 SCL이 LOW인 상태에서만 가능하다. 하지만 SCL이 HIGH인 경우에도 데이터 전이가 발생하는 두 가지 예외 상황이 있는데, 데이터 전송 시작과 종료를 나타내는 경우다.SCL이 HIGH인 경우 SDA가..

[ATmega 128a]⑦ - UART 통신

2024.6.11 수업날이번에는 시리얼 통신 방법 중 하나인 UART 통신에 대해 알아본다. ATmega128a pdf 교재 - 174p~ATmega 128로 배우는 마이크로컨트롤러 프로그래밍 - 200p~먼저 USART 통신에 대해 알아보자. USART 통신은 반이중 방식 통신이다.USART는 동기 모드로, 데이터 동기화를 위해 별도의 클록 신호를 전송한다.클락의 유무만 체크하면 되기 때문에 데이터 송수신 효율이 높다.하지만 클락 핀을 추가로 요구하므로 구조적인 어려움이나 추가적인 비용을 가지고 있다. 아래는 RXBn(수신), TXBn(송신)을 가지고 있는 UDRn의 datasheet이다.  아래는 UCSRnA의 datasheet이다. 다음으로 UART 통신에 대해 알아보자.  UART 통신은 전이중 ..

[ATmega 128a]⑥ - LCD 8bit, LCD 8bit counter, LCD 4bit

2024.6.10 수업날이번에는 1602A라는 LCD 부품을 가지고 어떻게 작동하는 지에 대해 알아본다.아래의 파일은 LCD 1602A의 메뉴얼이다. LCD에는 총 16개의 핀이 있다.아래의 표는 핀 번호에 따른 기능과 의미를 해석한 것이다. 실질적으로 LCD에 불이 들어오게 하려면, LED+, LED-인 15, 16번 핀에 Vcc와 Gnd에 연결해야한다. 전선 정리를 제대로 하지 못했지만, 핀 번호에 따른 기능과 의미를 나타낸 표를 보고 참고하여 연결하였다.PF의 0~7번 핀은 LCD의 D0~D7과 연결하였다.PE의 5~7번 핀은LCD의 4~6번 핀과 연결하였다. 아래의 그림은 LCD의 타이밍 특성 회로도와 심볼, 최소시간, 최대시간 표를 나타낸 것이다.아래의 표는 8bit 일때, 4bit 일때 어떻게..

[ATmega 128a]⑤ - CTC, NOMAL, FastPWM, PWM16BIT, dalay 함수

2024.6.5 수업날이번에는 타이머/카운터 모드의 종류에 대해 알아보고 오실로스코프를 사용하여 파형을 관찰해본다.본격적으로 타이머/카운트 모드의 종류에 대해 알아보기 전에 자주 나오게 되는 용어들을 정리해본다. BOTTOM: 카운터가 0이 되었을 때(0x00)MAX: 카운터가 0xFF에 도달했을 때TOP: 각 동작 모드에 따라 카운터가 도달하는 최대 값 아래의 표는 타이머/카운터의 4가지 모드를 나타낸 것이다.여기서 Mode 2번을 보면CTC모드일때 TOP이 OCR0, OCR0 업데이트는 Immediate(즉시)라고 나와있는 것을 확인할 수 있다.CTC모드에서는 OCR0라는 레지스터에 사용자가 원하는 카운트횟수를 써 넣으면, TCNT0가 그 수까지 카운트 하고 0으로 초기화된다.예를 들어, OCR0에 ..

2024.6.4 이전(3) [ATmega 128a]④ - FND

7세그먼트 표시장치를 이번에 ATmega 128a와 연결해본다. 7세그먼트 표시장치는 7개의 선분으로 숫자나 글자를 표시하기 위해 발광 다이오드를 사용하여 만든 출력장치의 일종이다.7개의 선분에 소수점을 표시하는 LED를 추가하여 8개의 세그먼트로 구성하는 것이 일반적이다.7세그먼트 표시장치는 FND라고도 불리며, 한자리 뿐 아니라 두자리 이상도 표시할 수 있는 제품도 있다. 1. 한자리 7세그먼트 표시장치공통 핀: 항상 Vcc나 Gnd 중 하나가 가해진다.(2개)제어 핀: 해당 세그먼트를 켜거나 끄기 위해 Vcc나 Gnd 중 하나의 전압을 선택하여 가한다.(8개)공통 양극 방식: 공통 핀에 Vcc를 연결하고 제어 핀을 Gnd에 연결하면 해당 세그먼트가 켜지는 방식공통 음극 방식: 공통 핀을 Gnd에 연..

2024.6.4 이전(2) [ATmega 128a]③ - LED_div, Button, Button_toggle

저번 블로그 글에서의 LED에 관하여 내용을 이어가보면, 이번에도 총 3개의 파일이 필요하다.또한, 아래 사진과 같은 LED_bar를 사용하여 결과값을 확인한다. /* * led.h */ #ifndef LED_H_#define LED_H_#include typedef struct LED{ volatile uint8_t *port; // LED가 연결될 포트 uint8_t pinNumber; // LED가 연결될 핀번호}LED; // 내가 만든 LED라는 데이터형// 사용자 정의 함수void ledInit(LED *led);void ledOn(LED *led);void ledOff(LED *led);#endif /* LED_H_ */ /* * led.c */ #include "led.h"void l..

2024.6.4 이전(1) [ATmega 128a]② - 데이터 핀, LED_shift, LED_pointer

경기 인력 개발원에서 주최하는 Harman 세미콘 아카데미 - 반도체 설계 수업은 2024.5.29일에 수업이 시작되었다.하지만 바로 그 다음주인 2024.6.3일에 이 수업에 대해 알게되어 본격적으로 수업을 듣게 된 것은 2024.6.4이기 때문에 그 이전의 수업 내용은 책을 보면서 블로그에 적게 되었다.ATmega 128a >ATmega 128a는 64개의 핀으로 구성된 마이크로컨트롤러이다.전원, 크리스털 등을 위한 11개의 핀을 제외하고 53개의 핀(비트)로 데이터를 교환하는 것이 가능하다.8개의 입출력 핀을 묶어 PORT라는 이름으로 관리한다.​핀 53개는 A~G까지 7개의 포트로 나뉜다.(한 부분당 8개씩, 마지막 G포트에는 핀 5개)ATmega 128에는 256개(2의 8승)의 레지스터를 정의..

[ATmega 128a]① - Microchip Studio 다운로드 & 기본 설정법

ATmega 128a를 실행시키기 위해서는 C언어로 코드를 구성해야 한다.그 전에 같이 쓰는 프로그램인 Microchip Studio의 다운로드 방법과 기본 설정법에 대해 작성해 본다. 1. Microchip Studio 다운로드 받기1-1. 링크로 들어가서 Microchip Studio를 다운받는다.https://www.microchip.com/en-us/tools-resources/develop/microchip-studio  링크를 통해 들어가게 되면 아래와 같이 사진이 뜨는데, Download Microchip Studio를 클릭한다. 1-2. 아래의 사진들처럼 설정해 주고, 설치를 진행한다.  1-3. 프로그램을 실행시키면 이러한 화면이 뜨는 것을 확인할 수 있다. 바탕화면의 아이콘은 이런 식으..