분류 전체보기 100

2024.6.18 [Verilog]③ - 전압, 저항, 캐패시터, 반도체, 디코더

2024.6.18 수업날오늘은 어제 배웠던 병렬 가산기의 연산 속도가 느린 이유에 대해 알기 위해 캐패시터에 대해 알아보고n, p형 반도체와 디코더에 대해 알아본다. 그 전에 간략하게 전압과 저항에 대해 알아보자.전압이란, 전류를 흐르게 하는 능력으로 전위차가 클수록 전압이 크다.저항이란, 전기의 흐름을 방해하는 부품으로, 직렬연결일때는 값을 더하면 되지만 병렬연결일때는 각가 역수해서 더한 값을 다시 역수로 취하면 된다.캐패시터란 전기를 축적하고, 방출할 수 있는 장치이다.기본적으로 2장의 전극판이 나란히 마주보고 있고, 전극판 사이에는 절연체(전기가 안통하는 무질)가 있다.전극판의 간격과 면적, 절연체 재질에 따라 축적되는 전하의 크기가 달라지게된다. 전압이 걸리면 각 전극판에 전하가 축적되고, 축적되..

[Verilog]② - 병렬 가산기, 병렬 가감산기, 비교기

2024.6.17 수업날오늘은 저번주에 배운 Verilog 연산자의 응용버전에 대해 알아보고 직접 Basys3 보드와 연결하여 결과를 살펴본다.아래의 사진은 병렬 가산기를 나타난 회로도이다.병렬 가산기란 전가산기 여러 개를 병렬로 연결한 회로이다.이 회로도를 보면 입력값이A(4개), B(4개), Cin이고, 출력값이 S(4개), Carry임을 알 수 있다. 1. full_adder_4bits_structural(구조적 모델링)병렬 가산기를 코드로 작성한 full_adder_4bits_structural의 회로도를 자세하게 살펴보면,아래와 같이 여러 개의 게이트들이 합쳐져 있는 것을 확인할 수 있다.  이제 시뮬레이션 full_adder_4bits_structural의 시뮬레이션 결과를 확인해보자.이번에는..

[Verilog]① - Vivado 사용법과 논리게이트 구현하기

2024.6.14 수업날임베디드 시스템을 위한 SW 구조설계 수업과 취업특강 수업을 잠시 마치고 오늘부터 5일동안 Verilog와 관련된 수업을 듣게 되었다. 우선 아래 사진과 같은 Vivado 프로그램이 필요하다.이 프로그램으로 Verilog를 사용하여 시뮬레이션도 돌려보고, 회로도를 구현해 볼 수 있다. 반드시 2019.2 버전을 깔아줘야한다.최신 버전을 다운로드 받게되면 버전끼리의 호환이 되지 않기 때문이다 아래의 링크에 들어가서 다운받을 수 있다. 용량이 약 100GB이기 때문에 충분한 용량을 확보한 후 다운로드 받는 것을 추천한다.https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vitis.html D..

[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. 프로그램을 실행시키면 이러한 화면이 뜨는 것을 확인할 수 있다. 바탕화면의 아이콘은 이런 식으..