728x90

스위치 종류

- 로터리 스위치, 푸시 스위치, 반도체 스위치, 동축 스위치, 다방향 스위치

- 딥 스위치 : 스위치가 배열형태로 됨

- 전기전자 회로에서 전류 흐름을 제어

- 사용자와 상호 작용 또는 제어를 필요로하는 회로의 중요한 요소

푸시 스위치

 

슬라이드 스위치
마이크로 스위치
딥 스위치

 

스위치 역활

- OFF 상태와 ON 상태로 있음

- OFF 상태 : 회로가 열린 상태로 전류 흐름 막음

- ON 상태 : 회로가 닫힘 상태로 전류는 방해받지 않고 흐름

 

 SPST Single Pole Sing Throw

- 1A 접점

- 온오프 스위치로 가장 일반적인 형태

- 두 개의 단자 필요

SPST 심볼 회로

 

온오프 스위치

 

SPDT Singlee Pole Double Throw

- 1C 접점 1A1B

- 슬라이드 스위치

- 세개 단자 필요

SPDT 심볼 회로
슬라이드 스위치

 

 

DPDT Double Pole Double Throw

- 2C접점 (2A 2B)

- 두개의 SPDT 스위치

- 여섯개 단자 필요

DPDT 심볼 회로
로커 스위치

 

4PDT Four Pole Double Throw

- 네 개의 별도 회로로 구성

- 회로당 두 위치 제어 가능

 

토글 스위치
4PDT 심볼 회로

 

 

 

PINx 레지스터는 스위치에서 입력 처리

-> 핀으로 들어오는 신호값을 저장

-> 저장된 값을 호출해서 사용하면 됨

 

내부 풀업 사용 시

- 내부에 내부 풀업 회로가 있음

- DDRxn =0, PORTxn=1, PUD=0 시 내부의 풀업을 사용하게 됨

 

풀업 저항

- 저항이 전원에 연결

- 스위치 off 시 1이 입력, on일시 0이 입력

풀다운 저항

- 저항이 접지에 연결

-  스위치 off시 0이 입력, 스위치 on시 1이 입력

 

풀업/다운 저항이 없는경우

- 스위치 off 시 플로팅 현상 발생 -> 0,1인지 구분못함 -> 이를 해결하기위해 풀업/다운 저항 사용

 ex) 손 가까이 대서 정전기 발생시 스위치가 off여도 1로 판단

- 하이 임피던스 상태

 

 

 

스위치 회로

- 저항이 전원측에 연결됨 -> 풀업

- PD0 측 스위치 on -> PIND 레지스터 0번 비트에 0이 들어감

 

 

채터링 현상

- 한번의 기계적 개폐동작에 전기적으로 여러번 개폐동작이 발생

-> 한번 눌렀는데 여러번 눌린걸로 판단할수있음

- 디바운싱(debouncing) 채터링 문제를 방지하는것으로 하드웨어적인 방법(콘덴서 사용->비용발생), 소프트웨어 적인 방법이 있음

 

 

소프트웨어 디바운싱

while(1)
{
	//pind에는 풀업 저항을 취하여 기본으로 1값이 됨
    // pind ==  1111 1111
    // ~pind == 0000 0000
    // 0x01 ==  0000 0001
    
    // 키조작 발생
    // pind == 1111 1110
    // ~pind ==0000 0001
    // 0x01 == 0000 0001
    // ~pind&0x01 == 0000 00001
    // !(~pind & 0x01)은 0x00이므로 루프 탈출 x
    // pind에 조작이 있으면 !(~pind &0x01)은 1이되어 탈출
    
	while (!(~PIND & 0x01)); //Falling edge
    _delay_ms(10); //디바운싱 지연: 키조작 발생시 -> 10ms 지연 -> 10ms간 채터링 현상 무시
    
    if(++i == 8) i=0;
    PORTC=led[i];
    
    while(~PIND &0x01);
    _delay_ms(10);
    
}

 

 

제어 예제1

#include <avr/io.h>

int main(void)
{
	DDRC = 0xFF;
    DDRD = 0xF0;
    PORTC = 0xFF; //LED 끈 상태에서 시작
    PORTD = 0xF0;
    
    // c언어에서 한줄만 반복시 for (;;)사용 가능
    for (;;)
    	PORTC = PIND;
    
}

 

 

제어 예제2

#include <avr/io.h>

int main(void)
{
	DDRC = 0xFF;
    PORTC = 0xFF; //LED 끈 상태에서 시작
    DDRD = 0xF0;
    unsigned char key;
    
    while (1)
    {
    	key = PIND & 0x0F;
        switch (key)
        {
        	case 0x0E:
            	PORTC = ~_BV(0); //PC0번 비트 킴
                break;
            case 0x0D:
            	PORTC = ~_BV(1);//PC1번 비트 킴
                break;
            case 0x0B:
            	PORTC = ~_BV(2);
                break;
            case 0x07:
            	PORTC = ~_BV(3);
                break;
        	
        }
    }
}

=> 예제 2를 정리하면 닫은 스위치의 LED만 켜고 끄는 예제

 

제어 예제 3

- PIND 0번 비트 스위치를 누르면 전체 LED가 켜지는 예제

#include <avr\io.h>       
#include <util/delay.h>


int main(void)
{
	DDRC = 0xFF;
    PORTC = 0xFF;
    DDRD = 0x00;
    PORTD = 0xFF;
    unsigned char key;

    while (1)
    {
    	key = PIND & 0xFE;
		
        if (key == PIND)
        {
        	PORTC=0xFF;
            _delay_ms(200);
            PORTC =0x00;
            _delay_ms(200);
        }
        else
        	PORTC = 0xFF;
	}
}

 

 

회로도 설정

- 기존 VCC- LED- PORTC 레지스터 연결

- 전압 측정을 위한 프로브 

- PIND 0번 레지스터와 전원 사이에 K0 연결

D1 VDD n1 ;LED D1이 VDD와 n1 node사이에 연결
R1 n1 PC0 330 ; 저항 R1을 n1 node와 PC0 사이에 연결

D2 VDD n2
R2 n2 PC1 330

D3 VDD n3
R3 n3 PC2 330

D4 VDD n4
R4 n4 PC3 330

D5 VDD n5
R5 n5 PC4 330

D6 VDD n6
R6 n6 PC5 330

D7 VDD n7
R7 n7 PC6 330

D8 VDD n8
R8 n8 PC7 330

;프로브 설정 (PC0~pC7, PD0?포트에 전압 프로브 연결)
.PLOT V(PC0) V(PC1) V(PC2) V(PC3) V(PC4) V(PC5) V(PC6) V(PC7)
.PLOT V(PD0)
;스위치 설정
K0 PD0 VSS ;K0 스위치를 PD0와 VSS 사이에 연결

;WMLAB에서 LED는 Dx를 가리키지만 스위치는 Kx로 사용가능

 

-PC0에 풀업 저항으로 1이 들어오다 스위치를 누르면 0이 들어오면서

펌웨어 로직에 따라 전체 LED가 켜기게 된다

300x250
728x90

릴레이

- 전기적 스위치

- 물리적 스위치 보다 크기를 줄여 편의성 높임

 

릴레이 동작 원리에 따른 구분

- 기계식 릴레이 :코일이 감겨진 전자석에 제어 전류를 흘려 그 자력으로 스위칭 동작

- 무접점 릴레이 : 기계적인 접점 부분을 반도체 소자로 대체하여 전자적인 스위칭 동작

 

코일 유형에 따른 구분

- 래칭 latching

 기본 상태 없이 쌍 접점의 한 상태에 있다가 전원이 한순간이라도 공급되면 다른 상태로 변경되고  유지

- 비래칭(non latching)

 푸시 버튼이나 스위치 처럼 릴레이에 외부 입력이 가해지다가 멈추면 접점이 기본상태로 돌아감

 

접점 구성에 따른 구분

 

다양한 릴레이

- 릴레이의 핀 배치가 표준화되지 않아 선택시 겉 모양만보고 선택시 문제 발생

- 소형 릴레이의 핀 간격이 매우 좁기 때문에 사용전 데이터시트를 꼼꼼히 확인해야함

- 래칭 릴레이와 비래칭 릴레이 외형이 똑같아 확인 필요

- AC 전원과 DC 전원용 구분해야함

- 소음과 전압 스파이크 등의 발생에 주의

다양한 릴레이

 

릴레이와 핀 구성

 

릴레이와 LED 연결

 

300x250
728x90

LED 회로도

- LED가 어떤 핀에 연결되어있는지

- Ground 인지 전원에 연결되어있는지

LED 회로도

 

레지스터 설정

- DDRC = 0xFF;

-> 핀C 8개 비트 모두 출력 설정

- PORTC = 0xFF;

-> 핀 C 8개 비트 모두 HIGH -> 다이오드가 전원과 연결됨 -> 전위차 0 -> LED가 꺼진상태 시작

 

 

회도로 프로젝트 파일

D1 VDD n1 ;LED D1이 VDD와 n1 node사이에 연결 
R18 n1 PC0 1k ; 저항 R18이 n1 node와 PC0 사이에 연결 

D2 VDD n2 
R19 n2 PC1 1k 

D3 VDD n3 
R20 n3 PC2 1k 

D4 VDD n4 
R21 n4 PC3 1k 

D5 VDD n5 
R22 n5 PC4 1k 

D6 VDD n6 
R23 n6 PC5 1k 

D7 VDD n7 
R24 n7 PC6 1k 

D8 VDD n8 
R25 n8 PC7 1k 

 

 

 

20번 LED 블링크 하기

#include <avr\io.h>              // Most basic include files
#include <util/delay.h>       // Add the necessary ones

int main()
{
	unsigned int k=20;
	DDRC = 0xFF;
	PORTC = 0xFF;
	
	while (k != 0)
	{
		PORTC = 0xFE;
		_delay_ms(200);
		PORTC = 0xFF;
		_delay_ms(200);
		k--;
	}
}

 

특정 LED 켜기

- _BV는 메크로

- _BV(4) == (1<<4)

#include <avr\io.h>              // Most basic include files
#include <util/delay.h>       // Add the necessary ones

int main()
{
	DDRC = 0xFF;
	PORTC = 0xFF;
	
	while (1)
	{
		PORTC = ~( (1<<3)|(1<<5)); //0x1010 1111 LED D4, D6 on
		_delay_ms(200);
		PORTC = ~(_BV(4)|_BV(6)); //0x0101 1111 LED D5, D7 on
		_delay_ms(200);
	}
	return 1;
}

 

 

_BV 매크로 함수 이해

- sfr_defs.h 파일에 선언되어있음

- _BV(bit)는 해당 bit에 1을 쓴다

#define _BV(bit) (1<<(bit))

ex) _BV(4) -> (1<<4)

 

LED 전체 점멸

 

#include <avr\io.h>              // Most basic include files
#include <util/delay.h>       // Add the necessary ones

#define DDR_LED DDRC
#define PORT_LED PORTC

int main()
{
	unsigned char led_status = 0xFF;
	
	DDR_LED=0xFF;
	PORT_LED=0xFF;
	
	while (1)
	{
		led_status=~led_status;
		PORT_LED=led_status;
		_delay_ms(200);
	}
	return 1;
}

 

300x250
728x90

vmlab 시뮬레이터

- VMLAB 통합 개발환경은 무료이나 컴파일러 추가 설치 필요 

 -> GCC 기반 WinAVR 필요

- 원래 받을수 있는 사이트가 사라져선지 다운받을수가 없더라 대신 찾아서 블로그에다가 올려놨다.

https://throwexception.tistory.com/150

 

1. 새 프로젝트 생성

 

프로젝트 생성창

1.1 프로젝트 폴더 설정

1.2 타겟보드 설정

- ATmega128 사용하므로 선택

 

1.3 툴체인 경로 선택

1.4 소스 코드 파일 생성

- add this로 파일 추가하자

 

1.5 프로젝트 생성 완료

- hex 파일과 .prj 파일이 열림

- hex 파일 -> c 프로그래밍

- prj 파일 -> 회로도 정의

 

 

2. 코드 작성

 

3. 빌드

* 윈도우 10에서 빌드 중 오류 발생시

처음 WMLAB에서 코드 빌드하면 이런 에러가 나오는데 잠깐 구글링하다보니

 

winavr은 2010년에 나온게 가장 마지막 버전인데 지금은 2020년이고 윈도우 10에서 쓰면 이런 에러가 발생할수 있다고 한다.

https://www.avrfreaks.net/forum/winavr-error-new-computer

 

다행이 다른분이 비슷한 에러를 해결하는 방법을 올린데로 해보니 해결되더라

 

winavr/utils/bin 위치에

아래의 msys-1.0.dll을 덮어 씌워주면 해결된다

msys-1.0.dll
0.69MB

 

 

https://m.blog.naver.com/PostView.nhn?blogId=newbongman&logNo=221224568952&proxyReferer=https:%2F%2Fwww.google.com%2F

 

 

 

msys를 옮긴후 re-build를 해주면 성공

 

 

 

 

컨트롤 패널

 

 

코드 실행하기

- 신호등 클릭

IO 포트 보기

- view 의 IO 포트에 들어오면 각 핀별로 레지스터를 볼수 있다.

 

 

 

LED 회로 정의하기

- VCC -> 다이오드 -> 핀 형태로 정의

LED 회로도

- 프로젝트 파일에 아래 처럼 작성하면 위 LED 회로가 구현된다.

 

LED 블링크

1. 코드 작성

2. 회로도 설계 후

- 위 코드를 빌드 -> 실행 -> IO 포트 확인하면

 

0.2초 간격으로 PC0에 연결한 D1 LED가 깜빡깜박하는모습을 볼수있다

 

#include <avr/io.h>	// 생략/winavr/include/avr/io.h
#include <util/delay.h> // 생략/winavr/include/util/delay.h

int main(void)
{
	DDRC=0xFF;
    PORTC=0xFF;
    
    while(1)
    {
    	PORTC=0xFE;
        _delay_ms(200);;
        PORTC=0xFF;
        _delay_ms(200);
    }
    return 1;
}

 

1. 초기화 시점에 DDRC 레지스터와 PORTC 레지스터 전체 비트를 1로 설정 -> 전위차 x -> D1 ~ D8 LED가 꺼진다

 

2. 코드가 무한 루프를 돌면서 PORTC 레지스터 0번 비트를 0이 되면 -> 전위차 발생 -> 불켜짐 

 

 

LED 시프트하기

300x250
728x90

원래 vmlab 사이트가 사라졌는지

 

vmlab 다운 받을수있는데가 안보이더라

 

한참 해매다가 겨우 찾았다

 

Install_VMLAB315.exe
4.39MB

 

300x250
728x90

1. ATmega128 개발장비

1) Atemga128 보드

- ATemga128 마이크로 컨트롤러가 장착된 보드, 회로도 준비

- ATmega128 내부 컨트롤러이해 중요

ATmega128 보드들

 

- 사용하려는 소자 or 장치가 어떤 핀에 연결되어있는지 확인하기 위해 회로도를 알아야함

ATmega128 회로도

 

- 핀 C에 LED 8개가 전원과 연결 -> PC의 n번 비트가 0이면 해당 비트 LED에 불이 들어옴

ATmega128 LED 회로

 

ISP In System Program

- Atmega128 내부 플래시 메모리에 다운르도 하는 장치

 ex) AVR ISP mkII, STK500, JTAGICE mkII

- ISP : 프로그램 다운로더

- JTAG : 프로그램 다운로드 + 소스 코드 레벨 디버깅

AVR ISP mkII

 

 ISP 커넥터

- ISP는 제조사마다 핀맵이 다르므로 ATmega128 보드와 ISP간 핀맵이 일치하는 것을 사용해야함

AVR ISP mkII
STK 600

 

 

개발 장비 구성

- 개발 호스트 : 개인 PC or 노트북 - hex 파일 준비

- ISP 장비 : 타겟 시스템과 핀맵이 일치하는 ISP 준비

- 타겟 시스템 : ATmega128이 장착된 보드

 

1. 예제 프로그램

- DDRC = 0xFF -> 핀 C들의 모든 비트를 출력 모드로

- PORTC = 0x00; 핀 C의 모든 비트 출력 0->전류가 흘러 LED 켜짐

- PORTC = 0xFF; 핀 C의 모든 비트 출력 1->전위차가 같아져 전류 안흐름 -> LED 꺼짐

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
	DDRC = 0xFF;
    while (1)
    {
    	PORTC = 0x00;
        _delay_ms(200);
        PORTC = 0xFF;
        _delay_ms(200);
    }
    return 1;
}

 

 

ATmega128 LED 회로

 

2. 빌드 하여 핵사코드 생성

 

3. 파일 다운로드

- Tools > Device Programming

- Tool에 ISP 장치 선택 ex) AVRISP mkII

- Device에 ATmega128 설정

- memories 메뉴 선택

- Flash 경로를 생성한 헥스코드 선택

- 프로그램 버튼 클릭

 

4. 다운로드 결과

300x250
728x90

 ATmega 128

- 마이크로 컨트롤러

* 마이크로 컨트롤러 = CPU Core (Architecture) + CPU Peripheral(Controllers)

-> 마이크로 프로세서 단독으로 있는게 아니라 주변장치 포함

주변장치 예시 : 타이머/카운터, TWI(I2C), ADC, USART, SPI, 메모리, 발진회로 등

마이크로 프로세서와 주변장치 => 마이크로 컨트롤러

 

마이크로 컨트롤러로 할수 있는 일?

- 대부분의 제어 가능

 -> 모든 제품들은 마이크로 컨트롤러 내장

ex) 드론, 로봇, 냉장고, 세탁기, 차량 등

 

ATmega 128 의 특징

- 데이터 시트로 확인 가능

1. 뛰어난 성능 (Advanced RISC Architecture)

 - Most single clock cycle execution -> 대부분의 명령들을 한 클럭만에 실행 가능

 - 32 * 8 bit 범용 레지스터 : 8비트 범용 레지스터 32개 내장 -> 고속 접근 가능한 범용 목적 8비트 메모리가 32개

 

2. 많은 메모리(Program 메모리, Data 메모리)

- 128 KB Flash (프로그램=명령어 메모리)

- 4 KB SRAM, 4KB EEPROM (데이터 메모리)

 

3. 다양한 주변장치 지원

- Timer/Counter 4개(8비트 카운터 2개, 16비트 카운터 2개), TWI(I2C) 2포트, 10bit ADC

- USART(비동기 통신) 2채널, SPI(주변장치용 직렬 통신 인터페이스), On-chip Oscillator(=8MHz, 발진기)

* 프로그램 다운로더 ISP 장비는 SPI 프로토콜로 플래시 메모리에 프로그램을 write 한다.

- ATmega128 : 0~16 MHz / 4.5 ~ 5.5V

- ATmega128L : 0~8 MHz / 2.7 ~ 5.5V(저전력에서 동작)

ATmega 128 데이터 시트

 

 

ATmega128 내부 구조

- ATmega128의 핀 구조, 내부 버스에 연결된 컨트롤러를 보여주는 회로도

 

ATmega 128 코어 부분

- 32개의 8비트 범용 레지스터가 연산장치 ALU와 연결

- 데이터 메모리 SRAM과 EEPROM가 데이터 버스와 연결

- 좌측에 프로그램 메모리 플레시 메모리가 존재 

 

 

프로그램 메모리 플래시 메모리의 메모리 맵

- 부트 플래시 섹션과 어플리케이션 플래시 세션으로 나뉨

- 부트 플래시 세션 : 부트 로더

- 어플리케이션 플래시 세션 : 프로그램 저장

- 16비트로 명령어들이 저장

128KB 프로그램 메모리맵

데이터 메모리맵

- 32개 범용 레지스터, 64개 IO 레지스터은 동일

- ATmega 128은 IO 레지스터 160개 확장 가능

- 내부 SRAM 8비트 크기의 4096개

 

A=Atmega128, B=103 호환보드 데이타 메모리맵

폰노이만 구조

- CPU와 메모리 사이에 물리적으로 하나의 버스만 존재

- Von Neumann Bottleneck 발생

- 프로세서 <-주소/데이터 버스 -> 코드

 

하버드 구조

- 명령어와 데이터 버스가 분리되어 동시에 패치 가능

- 코드(명령어) <-주소/데이터-> 프로세서 <- 주소/데이터 -> 데이터

 

 

 

프로세서 구조

RISC(Reduced Instruction Set Computer)

- 하드웨어 구조가 단순함 -> 저전력 -> 모바일 장치에 적합

- 모든 명령어 길이가 동일 -> 코드 사이즈가 커짐

- Load Store Architecture로 많은 레지스터가 필요

- ATmega64, ATmega128, ARM, MIPS

 

CISC(Complex Instruction Set Computer)

- 복잡한 하드웨어 구조

- 명령어 마다 길이가 다름 -> 코드 사이즈가 작음

- RISC에 비해 작은 레지스터가 필요

- intel 8056, x86

 

 

일반적인 마이크로 컨트롤러 구조

- 고성능 마이크로 컨트롤러 = RISC + 하버드 구조 + 레지스터 중심

- 레지스터 중심 구조

  1. 처리 속도 향상

  2. 코드 사이즈가 작음

  3. C언어 개발에 유리

 

 

 

 

CISC와 RISC 연산의 예

- 연산 예시 : A = B + C + D;

- CISC Type : 하나의 명령어로 여러번 ALU 연산

  ADD R16, Mem[B], Mem[C];

  ADD Mem[A], Mem[D], R16

- RISC Type : 하나의 명령에서에서 하나의 ALU 연산만 가능

  LDI R17, Mem[B]

  LDI R18, Mem[C}

  LDI R19, Mem[D]

  ADD R16, R17

  ADD R16, R18

  ADD R16, R19

 

파이프라인 동작

- RISC의 경우 하드웨어 구현이 간단하며 명령어 길이들이 동일함

- 파이프라인 사용하지 않을 시 동작 -> 작업 1개가 끝나야 다음 작업 수행(다른 작업들은 대기)

- 파이프라인 사용 시 -> 명령어 대기 시간 없이 다른 작업들을 동시에 수행

 

ATmega128 명령 처리 과정

- ATmega128은 2단계 파이프라인 구조로 설계됨

- 1주기 안에 명령어 1개 수행

명령어 인출과 실행 동작
1 사이클 ALU 동작

 

ATmega 128 핀구조

- ATmega128은 전체 64개의 핀

- 프로그래밍 가능한 입출력 포트는 53개

 PA, PB, PC, PD, PE, PF, PG까지 53개

ATmega128 핀

 

입출력 포트 제어 관련 IO 레지스터

- 각 핀 1개에 입출력 레지스터 3개가 배당 -> DDR, PORT, PIN 레지스터

 

Data Direct Register DDRx Register

- 해당 핀의 입력/출력 모드 설정

- 해당 핀의 특정 비트가 0이면 입력 설정, 1이면 출력 설정

ex) PA의 0번 비트를 출력 설정시 -> *DDRA=0x00000001;

ex) PA의 0~3번 비트를 출력 설정시 -> *DDRA=0x00001111;

Data Direction Register

 

PORTx Register

- 해당 핀에 high를 출력할지 low를 출력할지 설정

- 0일시 0V output, 1의경우 5V output

PORT Register

 

PINx Register

- 핀으로부터 데이터 입력을 받는 레지스터

PIN Register

 

입출력 핀 구조

- DDR이 1로 설정 시 PORT의 값이 핀으로 출력

- DDR이 0으로 설정시 핀으로부터 입력을 PIN 레지스터에 저장됨

 

병렬 입출력 포트 기본 구조 1 - 핀 방향이 출력인 경우

 

병렬 입출력 포트 기본 구조 2 - 핀 방향이 입력인 경우
입출력 핀 구조

300x250

'로봇 > 전기전자&메카' 카테고리의 다른 글

vmlab 다운로드  (0) 2020.05.12
마이크로프로세서 메카트로닉스 제어 - 2 개발 환경 구축  (0) 2020.05.12
전자 회로  (0) 2020.04.22
전기수학3  (0) 2020.04.21
전기 수학2  (0) 2020.04.21
728x90

어제 전기 수학 내용 정리를 마치고

 

오늘 새벽에 전자 회로에 대한 내용들을 살펴봤다.

 

그나마 전기 수학에서 RLC에 대한 개념 들을 잡고 나서

 

보니 조금은 이해가 되는 편이었지만

 

쉽진 않더라

 

1. 전자 회로

전기 회로

- 저항(R), 코일(L), 콘덴서(C)로 이루어진 회로

 

전기 회로

- RLC외 다이오드, 트랜지스터 등 반도체 소자를 포함하는 회로

 

소자

 

전자 회로의 종류

1. 증폭 회로

2. 발진 회로

3. 변조 회로

4. 복조 회로

5. 필터

6. 연산 증폭기

7. 논리 회로

8. 전원 회로

 

 

증폭 회로

- 입력 신호를 크게 만들어 출력(증폭기 : Amplifier)

 

발진 회로

- 정현파 같은 교류 신호를 만들어냄

 

변조 회로

- 고주파의 진폭 크기나 주파수를 변조하는 회로

- FM(Frequency Modulatioin) : 주파수 변조

- AM(Amplitude Modulation) : 진폭 변조

 

복조 회로

- (TV나 라디오로) 수신한 신호에서 음성 등을 추출하는 회로

- Demodulation

 

필터

- 특정 주파수 대 신호를 추출

 

연산 증폭기

- OP(Operational)-Amplifier 오피 앰프

- 미분/적분/발진 회로 만드는데 사용.

 

논리 회로

- 논리 연산하는 회로

 

전원 회로

- AC 어댑터 : 교류를 직류로 변환

-> 마이너스 전압 성분을 제거 -> 평활 회로로 평탄화 -> 일정한 직류 전압 출력

 

라디오

- 듣고싶은 채널 신호 수신하여 소리로 출력

1. 안테나에서 수신

2. 동조 증폭 회로 : 원하는 주파수 추출

3. 복조 회로 : 음성 신호 추출

4. 저주파 증폭 회로 : 음성 신호 증폭

5. 스피커에서 출력

 

연산 증폭기

- 증폭률이 아주 큼

- V+와 V-의 전위차는 0(전압이 동일)으로 간주

- 저항이 매우 커 OP앰프에는 전류가 거의 들어가지 못함

 

적분 회로

-> 전류의 입력 성분들이 콘덴서로 빠져나감.

 

미분 회로

 

논리 회로

- 컴퓨터에서 0과 1로 나타내는 회로

- 0은 0V(LOW), 1은 5V(HIGH)를 의미

- 논리회로로 구성하는 회로를 디지털 회로라 부름.

- 다이오드를 이용해서 논리합(OR)과 논리곱(AND) 회로를 만들 수 있음.

 

AND 회로

- A, B가 1일때 -> 다이오드에 순방향 전압이 걸리지 못함 -> Vo는 1이 됨.

- A, B 둘중 하나라도 0이면 -> 다이오드에 순방향 전압이 걸림 -> Vo는 0이 됨.

OR 게이트

- A, B 둘중 하나라도 1 -> 다이오드를 지나감 -> Vo는 1

- A, B 둘다 0 -> 다이오드 지나가지 못함 -> Vo는 0

 

NOT 게이트

- A가 1이면 콜렉터 전류가 흘러나가버림

- A가 0이면 베이스-이미터 사이 순방향 전류가 흐르지 않음 -> 1이 출력됨

2. 트랜지스터 구조

 J-FET

- 접합형 전계 효과 트랜지스터(Junction Field Effect Transistor)

- N 채널 : 소스 전극 (S)와 드레인 전극 (D)를 가진 N형 반도체로 이루어진 얇은 층

- 게이트 : P 형 반도체 2개를 접합하여 전극을 연결한 것

 

J-FET 동작 원리

- 게이트와 소스 사이에 역방향 바이어스(동작 시키기 위한 직류 전압) V_GS를 검.

-> 게이트 P형 반도체와 N 채널 사이 공핍층이 형성

-> 드레인에서 소스에 흐르는 전류 I_D는 N 채널 대부분 통과

- 게이트에서 전류가 거의 흐르지는 않고, 드레인 전류를 게이트 전압에 따라 제어할 수 있음.

* V_DS가 일정하게 유지 하는 경우, V_GS의 크기가 커지면 공핍층이 넓어짐

 -> 공핍층이 넓어져 N 채널을 막은 경우 드레인 전류 I_D는 흐르지 못함. 이 때 V_GS를 핀오프 전압

* J-FET에선 핀오프 전압 이하에서 운용함.

 

바이폴라 트랜지스터와 FET의 차이

- 바이폴라 트랜지스터는 전자와 정공 두개가 동작하므로 바이폴라(바이는 2를 의미)라고 함.

 + 컬렉터 전류를 베이스 전류로 제어하는 전류 제어 방식

- FET는 캐리어 하나가 동작하므로 유니폴라 트랜지스터라고 함.

 + 게이트 전압에 따라 드레인 전류를 제어하는 전압 제어 방식

 

3. 전기 회로 관련 지식

 

RLC 병렬 회로

- 병렬 공진 성즐로 동조 증폭기 만들 수 있음 -> 특정 주파수 증폭

h 파라미터 등가 회로 1

- 트랜지스터로 회로 해석을 할수 없음

-> 저항, 전압, 전류원으로 표현 - 이때 필요한 지표

- h_i : 입력 임피던스 - 입력에서 본 저항

- h_r : 역방향 전압 이득 - 입력 전압이 출력 전압의 몇 배인지 의미

- h_f : 전류 이득 - 출력 전류가 입력 전류의 몇배인지

- h_o : 출력 컨덕턴스 - 출력측에서 본 저항 성분의 역수

h 파라미터 등가 회로 2

- h 파라미터 등가회로에서 이미터 접지의 경우 h_ie, h_re 등으로 표기.

 

h 파라미터 등가 회로 간략화

- h_fe는 전류 증폭률 이므로 중요

- h_re/h_oe는 작으므로 무시 가능

4. 동조 증폭 회로

 

동조 증폭 회로

- 필요한 주파수 성분만 추출해서 증폭

 

진폭 변조파

- AM 라디오에서 사용. 반송 주파수 f_m에 음성 스펙트럼을 추가한 것

 

스펙트럼

- 가로 축을 주파수, 세로 축을 신호 크기로 한것

 

진폭 변조파의 파형

 

동조 증폭 회로

- 이미터 접지 증폭 회로와 비교할 때, 입력 부분에 저항 r_i, 코일 L, 콘덴서 C가 결합됨.

- 코일 L에 손실저항 r_c가 있어 해석이 어려우므로 직렬 임피던스를 병렬로 등가 변환

교류 등가 회로

- 직류 전원 V_cc에는 교류 성분이 없으므로 x

- 콘덴서 C_c도 임피던스가 작다고 간주하여 x

고주파 등가 회로

- r_be : 베이스-이미터 사이 저항

- C_be : 베이스-이미터 사이 기생용량

- C_M : 고주파 때 베이스-콜렉터 사이에 나타나는 미러 효과를 고려한 기생용량

- 기생 용량 : 베이스-이미터 사이에 교류 신호를 줄 시 콘덴서 처럼 되는 현상

 * 주파수가 클수록 기생용량도 커짐

- 미러 효과 : 고주파일 때 용량이 G_m * R_L배 커지는 현상

고주파 등가 회로 간략화

- 이미터 접지 증폭 회로의 h 파라미터 등가 회로의 출력부분 전류원 h_fe i_b를 전류 대신 전압 V_be로 바꿔서 고려.

 

동조 증폭 회로에 대한 고주파 등가 회로

 

동조 증폭 회로에 대한 고주파 등가 회로 간략화

- C' = C + C_be + Cm

- R = r_i // R_p // r_be

 

동조 증폭기에서 전류 증폭률 주파수 특성

- 전류 증폭률 Ai = 입력 측 전류 i_i / 출력측 전류 i_L

 

- 공진 주파수 : 입력측에 흐르는 전류가 최대로 되는 각 주파수

- 공진 회로 양호도 : 이 값이 클수록 공진 주파수에서만 A_i가 커지고 나머지에선 작아짐

-> 공진 주파수에서 전류 증폭률이 가장 큼

-> 듣고 싶은 방송국 주파수 f[Hz]에 2* pi를 곱한 것이 공진 주파수와 같도록 콘덴서 값을 조절

=> 해당 전파 주파수를 추출

 * 동조 증폭 회로에서 얻은 신호 파형은 변조된 파형이므로 AM 변조파에서 음성 성분을 추출해야함.

- w_h, w_L은 최대 전류 증폭률에서 3dB 감소하는 주파수

트랜지스터에서 발생하는 기생 용량

- 고주파일때 PN 접합부에서 발생하며 다음과 같이 콘덴서가 존재하게 됨

5. 복조 회로

 

복조 회로

- 동조 증폭기에서 증폭된 변조파로부터 음성 신호를 추출하는 것

- AM 변조파 복조 시 직선 검파 회로 사용

 

직선 검파 회로

- 순방향 전류만 출력

 

 

복조 출력

- 직선 검파 회로 통과 후 필터로 복조 출력을 얻음

 

포락선 검파

- 직선 검파회로의 출력단에 병렬로 콘덴서를 연결 한 것

-> 이 출력 전압을 저역 필터에 통과하면 음성 신호 파형에 가까워짐 

 

필터

- 고역 필터, 저역 필터

 

저역 필터

- 낮은 주파수 성분 통과

- 각 주파수가 커지면 전압 이득 A_v는 0이 되므로 높은 주파수를 제거

고역 필터

- 저역 필터의 저항과 콘덴서를 바꾸면 됨

- 직선 검파 회로의 출력단에 연결하여 음성 신호를 만듬.

 

300x250
728x90

4. 복소수

 

허수와 복소수

허수와 위상의 관계

- j를 곱하면 90도 전진. -j를 곱하면 90도 지연

-> 허수 j로 위상을 표현 가능

 

|Z|

- Z는 임피던스(교류 저항의 합)

- Z = 저항 R + 리액턴스 X[유도 리액턴스 X_L + 용량 리액턴스 X_C]

- |Z|는 저항의 크기

 

관련 역사

- 1748년 오일러가 오일러의 공식을 발표

- 가우스는 복소 평면을 제안

- 1886년 영국의 헤비사이드는 교류회로 계산 시 복소수 사용을 제안

- 1893 영국의 케넬 리가 임피던스를 복소수로 나타내어 계산 할수 있는 것을 증명

- 같은 해 미국의 슈타인츠가 허수 j를 사용해 교류 회로를 계산

 

오일러 식

지수 함수

- exp = exponential = 지수

- 산각 함수를 지수함수로 변환하여 지수 계산이 가능해짐

 

교류 전압의 식 변환

 

지수 함수의 복소 평면 상 표현

 

직교 형식과 극 형식

- 벡터가 가리키는 점은 직교/극 형식을 통해 나타 낼 수 있음.

- 직교 형식 : 좌표를 지정

- 극 형식 : 각도를 이용해 표현

 

복소 벡터의 표시 방법

- 직교 형식 : 직교 좌표

- 극 형식 : 극 좌표, 삼각 함수, 지수 함수

복소수 계산

- 공역 복소수

- 복소수 편각

- 복소수 절댓값

- 복소수 연산

 

공역 복소수

- 실수축 중심으로 대칭 관계

 

복소수의 편각

- 복소수의 편각은 위상 각을 의미

- arg는 argument의 약어로 아크로 읽음.

 

복소수의 노름(절댓 값)

- 절댓값 : 복소수나 실수 등에서 사용.

- 노름 : 수 뿐만 아니라 공간에서도 적용.

 

RLC 회로의 임피던스를 구하여 전압과 전류의 관계를 벡터 도로 나타내자.

 

 

 

미분방정식을 이용한 풀이

 

 

jw의 미분 적분 치환

j의 곱의 의미

- j를 곱한다 = 위상 90도 전진 -> 미분

- -j를 곱한다 = 위상 90도 지연 -> 적분

 

단상 교류와 3상 교류

- 단상 교류 : 전압이나 전류의 파형이 1개인 교류. ex) 가정 콘센트

- 3상 교류 : 전압/전류 파형이 3개인 교류. ex) 공장 전원, 전봇대 전선

 

 

3상 교류의 장점

- 전력 효율이 좋음

- 전봇대 변압기에서 단상 교류로 변환

 

 

3상 교류와 회전 벡터

- 단상 교류를 회전벡터로 바꾼것 처럼 3상 교류도 회전 벡터 3개로 표현 가능

- 각 전류 끼리의 위상은 120도. 어느 순간에든 전류의 합은 0이 된다.

 

 

3상 교류의 회로도

- I_a + I_b + I_c에 흐르는 전류는 0이므로 다음과 같이 정리 가능

- 전봇대 3줄 송전선에 해당

 

5. 교류 회로

동조

- 특정 주파수의 골라 잡는 것(ex. 라디오)

- 코일과 콘덴서를 조합하여 만듬

* 유도 리액턴스는 주파수에 비례, 용량 리액턴스는 주파수에 반비례

공진 주파수

- 동조점 때의 주파수

- 711KHz 방송을 듣는다면 이 주파수가 공진주파수가 되도록 조절하면 됨

-> 공진 주파수에서 저항은 최소, 전류는 최대 | but 나머지 주파수 대의 저항은 커짐

가변 콘덴서

- 라디오에서 사용

- 콘덴서의 캐패시턴스(= 전기 용량)을 바꿈

-> 콘덴서의 용량 변경 -> 용량 리액턴스 변경 -> 공진 주파수 변경

RLC 회로의 공진 주파수 f를 구하시오

 

- 공진 주파수 f는 임피던스 z가 최소가 되는 지점

1. 임피던스 z 는 저항 R + 유도 리액턴스 X_l + 용량 리액턴스 X_c

2. 임피던스 크기를 구한 후 wL이 가장 작은 시점의 주파수를 찾으면 된다.

증폭

- 동조로 얻은 특정 주파수 신호를 더 크게 만듬

- 트랜지스터를 이용 -> 전자회로

- 이전에 본 RLC 회로는 전기 회로

 

전자 회로

- RLC 외 다이오드나 트랜지스터 등 과같은 반도체 소자를 이용한 회로

- 다이오드 : 한 방향으로만 전류가 흐르게 함.

- 트랜지스터 : 증폭 또는 전류가 흐르게하는 스위치 역활

 

 

동조 증폭 회로

트랜지스터

- E(이미터), B(베이스), C(콜렉터) 3 단자로 구성

- 이 단자를 이용해 증폭

증폭 원리

1. 회로에 전압을 주면 베이스-이미터 사이로 전류가 흐름 -> 베이스 전류

2. 베이스 전류가 흐르면 콜렉터-이미터 사이 전류도 흐름 -> 콜렉터 전류

* 콜렉터 전류는 베이스의 몇십~몇백배의 전류 => 증폭

 

전류 증폭률

- 전류 증폭률 = 콜렉터 전류(출력 전류) / 베이스 전류(입력 전류)

 

 

* 임피던스, 주파수 특성, 전류 증폭률 등을 구할 때 전자 회로에서 계산이 힘듬

-> 등가 회로 이용

* 주파수 특성 : 주파수와 임의의 물리량의 관계

 

등가 회로 1

- 전자 회로의 트랜지스터 등을 RLC나 전원으로 치환하여, 전기회로 처럼 바꾼 회로 

이상 전류원

- 전류를 임의로 발생시키는 장치

 

등가 회로 2

- 왼편은 입력 전류, 우측은 출력 전류로 나뉨

- 각 각의 전류를 구하면 전류 증폭 률을 구할 수 있음.

 

등가 회로의 전류 증폭률

 

공진 주파수와 전류 증폭률의 관계

- 공진 주파수 일때 전류 증폭률이 최대

라디오 방송 시 동작 과정

1. 다이얼 돌림

2. 공진 주파수를 맞추도록 가변 콘덴서가 움직임

3. 공진 주파수일 때 임피던스(교류 저항)이 최소가 되고, 전류는 최대 == 전류 증폭률도 최대

 

 

가변 콘덴서의 범위를 구하라

- 동조 증폭기에서 AM 방송을 수신할 수 있도록 가변 콘덴서 C가 잡을수 있는 범위를 설정하자.

- L = 1[mH], 540[kHz] < f < 1600[kHz]

라디오 수신 한다 -> 전류 증폭률이 최대가 된다. == 임피던스가 최소가 된다.

 

라디오 원리

1. 안테나에서 전파 수신

2. 동조 증폭회로로 선택 된 주파수 증폭

3. 복조 회로에서 전기 신호를 음성 신호 추출

4. 저주파 증폭 회로가 음성 신호를 들릴 만큼 증폭

 

300x250

'로봇 > 전기전자&메카' 카테고리의 다른 글

마이크로프로세서 메카트로닉스 제어 - 1 AVR계열 ATmega128 개요  (0) 2020.05.11
전자 회로  (0) 2020.04.22
전기 수학2  (0) 2020.04.21
전기 수학  (0) 2020.04.21
전기 - 정리  (0) 2020.04.18
728x90

이번 자료는

 

지난번에 본 전기나 CPU와 다르게 정리해야될 부분이 너무 많다 ㅠㅜ

 

그래도 이전에 얼핏 듣거나 까먹은 개념들

 

다시 보는데는 좋더라

 

2. 직류회로

 

키르히호프 제 1법칙

- 전류 보존의 법칙

- A 지점에 들어온 전류와 나가는 전류의 합은 같다.

-> I1 ~ I4 중 세 곳을 알면 나머지 한 곳의 전류량을 알 수 있다.

 

전원 전압과 전압 강하

- E : 전원 전압

- V : 전압 강하

- 전압 강하 : 저항을 받고 나면 전압이 낮아짐 

키르히호프 제 2법칙

- 전압 보존의 법칙

- 총 전압 강하의 합은 전원 전압 E와 같다.

 

합성 저항

- 저항을 합쳐 1개로 보는 것

전류 I를 구하기

 

3. 삼각함수와 벡터

 

sin과 cos의 회전 벡터

- sin과 cos은 90도 차이가 남. 이를 회전 벡터로 만들면 아래와 같다.

- cos은 위상이 90도 전진한다.

호도법

- 단위 : rad(라디안)

- 육십분법 : 360도로 표현

- 육십분법 보다 계산하기 편리

각속도

- 각속도 = 각주파수

- 1초당 전진하는 각도

소자

- 전기 회로 구성하는 부품

- 위상의 발생 원인

- 저항, 코일, 콘덴서

코일(인덕터:inductor)

- 전선을 감은 것. 모터 안에 있음.

- 전류의 변화에 따라 기전력(전원전압) 발생 시킴.

-> 전류가 흐르면 역기전력. 즉 반대 방향의 전류 발생

-> 전류가 지연됨

인덕턴스와 리액턴스

- 인덕턴스 : 코일의 성질로 인덕턴스가 클수록 코일의 성질이 강해짐. 기호는 L, 단위는 H(헨리)

- 리액턴스 : 교류에서의 저항. 기호 X 단위는 저항처럼 옴

- 코일과 콘덴서는 직류에서 아무 역활을 못하나 교류에서 리액턴스를 발생시킴.

 

유도 리액턴스

- 코일의 리액턴스를 의미

- 주파수에 비례

콘덴서

- 충전할 수 있음.

- 콘덴서는 전압을 지연 시킴 -> 전류 i가 전압 v에 대해 전진 위상

캐패시턴스

- 코일(인덕터)의 성질을 인덕턴스라고 한다면

- 콘덴서(캐패시터)의 성질을 캐패시턴스(Capacitance)라 한다.

- 이는 캐패시터가 얼마나 전기를 저장할수 있는지 의미한다.

- 정전 용량의 기호 C, 단위 F(페럿)

 

용량 리액턴스

- 캐패시터(콘덴서)의 리액턴스(교류 저항)

 

정리

- 전기 소자 : 저항, 코일(인덕터), 콘덴서(캐패시터)

- 리액턴스 : 교류의 저항

- 유도 리액턴스 : 인덕터의 저항

- 용량 리액턴스 : 캐패시터의 저항

 

저항

- 직류일떄와 동일.

- 위상 변화도 없음

 

임피던스 Z

- 저항 R과 리액턴스 X의 합 => 교류 회로에서의 저항 총 합

 

전력

- 전압 x 전류

- 피상 전력 : 교류에서 들어오는 모든 전력.

  -> 유효 전력과 무효 전력

 

유효 전력과 무효 전력

- 유효 전력 : 실제 소비되는 전력

- 무효 전력 : 리액턴스로 소비되는 전력

 

역률

- 역률 = 유효전력/피상전력

 

 

 

 

책 자체는 오일러 공식 조금 넘겨서 까지 보긴 했는데

 

더 이상 정리하기가 너무 힘들어서 오늘은 여기까지만 하고

 

내일 마무리 하려고 한다.

 

오늘 책을 보면서

 

이전 학교에 있을때 임피던스, 캐패시터, 인덕터라는 개념들이 너무 이해안됬다.

 

준비된 자료들 설명이 너무 어렵게 되있어  그때도 이해하지 못한체 이름만 알고 있던 개념들인데

 

이제서야 조금은 이해할 수 있었다.

 

학교 다닐때 회로 수업이 있어서 들었던거 같은데

 

왜 거기서 배운게 생각이 안나지..

 

학교에 있는 동안엔

 

이상한 일이랑 삽질만 하느라 너무 정신없어서

 

전혀 기억나지 않는다.

 

아무튼 내일 전기 수학 마무리하고, 가능하다면 전자 회로도 조금 정리할 예정이다.

 

300x250

'로봇 > 전기전자&메카' 카테고리의 다른 글

마이크로프로세서 메카트로닉스 제어 - 1 AVR계열 ATmega128 개요  (0) 2020.05.11
전자 회로  (0) 2020.04.22
전기수학3  (0) 2020.04.21
전기 수학  (0) 2020.04.21
전기 - 정리  (0) 2020.04.18

+ Recent posts