본문 바로가기
코스웨어/16년 스마트컨트롤러

20160309_김도관_업무일지_마이크로컨트롤러

by 알 수 없는 사용자 2016. 3. 10.
728x90
반응형

1.마이크로 컨트롤러 


마이크로컨트롤러(Microcontroller) 또는 MCU(Micro Controller Unit)는 마이크로프로세서와 입출력 모듈을 하나의 칩으로 만들어져 정해진 기능을 수행하는 컴퓨터를 말한다

1.반도체(semiconductor)


열 등의 에너지를 통해 전도성을 급격하게 변화시킬 수 있는 고체 물질


2.다이오드(diode)

 

 주로 한쪽 방향으로 전류가 흐르도록 제어하며 p형 반도체와 n형 반도체를 접합(p-n 접합)하여 내부의 전자 또는 양공이 자유롭게 이동할 수 있는 반도체 소자이다



순방향 전압

역방향 전압

p-n 접합에서 p형 반도체에 전지의 양(+)극을, n형 반도체에 전지의 음(-)극을 연결하면 p형 반도체에서 n형 반도체쪽으로 전류가 흐르게 된다.


순방향 전압


p-n 접합에서 p형 반도체에 전지의 음(-)극을, n형 반도체에 전지의 양(+)극을 연결하면 p형 반도체에서 n형 반도체쪽으로 전류가 흐르지 못하게 된다.


역방향 전압



2.논리 Gate


AND 게이트는 0을 "거짓"이라 하고, 1을 "참"이라고 할 때, 논리적으로 "and" 연산자처럼 동작

아래의 표는 AND 게이트의 회로 기호와 논리조합을 보여줌 

(기호에서 입력단자는 왼쪽에 있는 것이고, 출력단자는 오른쪽에 있는 것). 

두 개의 입력이 모두 "참"이면, 출력도 "참"이 되며, 그렇지 않은 경우는 항상 "거짓"이 된다.


AND gate

입력 1
입력 2
출력
0
0
0
0
1
0
1
0
0
1
1
1


OR 게이트는 논리적 포함관계인 "or"의 방식으로 동작하기 때문에 그런 이름을 얻었다. 두 개의 입력중 하나만 "참"이어도 출력은 "참"이 되며, 만약 두 개의 입력이 모두 "거짓"이면 출력도 "거짓"이 된다.


OR gate

입력 1
입력 2
출력
0
0
0
0
1
1
1
0
1
1
1
1








XOR (exclusive-OR) 게이트는 논리의 "둘 중 하나"라는 식으로 동작한다. 즉, 두 개의 입력중 하나가 "참"이면 출력도 "참"이 된다. 그러나, 두 개의 입력 모두가 "거짓"이거나 또는 두 개의 입력 모두가 "참"이라면 출력은 "거짓"이 된다. 이러한 회로를 관찰하는 다른 방법으로는, 두 개의 입력들이 서로 다르면 출력은 1이 되고, 두 개의 입력이 서로 같으면 출력은 0이 된다고 생각해도 된다.


XOR gate

입력 1
입력 2
출력
0
0
0
0
1
1
1
0
1
1
1
0

 







3.주파수


주파수는 1초 동안에 진동하는 수를 의미함


전파는 눈에 보이지는 않지만 파도와 같은 모양으로 출렁이면서(진동하면서) 진행함

그 진동하는 회수가 1초 동안에 1번 진동하면 1Hz(헤르츠), 2번 진동하면 2Hz(헤르츠), 200번 진동하면 200Hz(헤르츠) 


4.컴퓨터의 특성

최적의 계산을 하기 위한 방법최우선적으로 선택


ex)

2*2의 계산 방법 3가지

1. 2+2

2. 2<<1 비트연산

3. 2*2


곱셈기가 없는 CPU의 경우 

가장최적의 방법인 1번을 선택함


5.Atmega 


각각의 명칭


ATMEGA 2560 개발보드

앞면



뒷면



AB-E128 확장보드



AM-2560PRO 모듈



2560 개발보드 와 2560 모듈을 5v 미니케이블로 연결시 각각 5v와 gnd에 연결


5V 는 +, GND- 를 의미함




컴에 usb로 연결시





LED



LED(Light Emitting Diode)는 '발광다이오드'라고 표기전류를 가하면 빛을 발하는 반도체 소자

긴다리+극, 짧은 다리가 -극을 의미함


RGB LED의 경우 아래와 같이 값에 따라 여러 색을 표현할수 있음

출처및 해당 소스위치 : http://echo.tistory.com/219




Atmega 세팅및 동작 테스트 


AVR Studio를 실행 하여 아래와 같이 진행함




Redad Signature 를 클릭할때 아래와 같이 OK 가 표시되면 연결시 이상없다는것을 확인가능





main.c

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#define DDRA     (*((volatile unsigned char *)0x21))
#define PORTA     (*((volatile unsigned char *)0x22))
#define PINA     (*((volatile unsigned char *)0x20))
int main(void//403페이지참고
{
    DDRA = 0xFF;
    PORTA = 0x00//00  끄기 ff on
    
    volatile unsigned int uiCnt;
    
    //while(1); //기본적으로 입력해야 동작확인가능
    while(1)
    {    
        for(uiCnt=030000 > uiCnt; ++uiCnt); //3만번반복
        PORTA=0xFF//켜기
        for(uiCnt=030000 > uiCnt; ++uiCnt);
        PORTA=0x00//끄기
    }
    return 0;
}
cs


9번째줄 volatile 선언 : 컴은 항상 최적의 방법을 찾기 때문에 수동으로 하게끔 명령을 해줘야함

12번째줄 while을 무한루프를 시킨이유 : 반복을 하지않으면 빠른순간에 끝나기때문에 연속적으로 확인이 불가능함

15번째줄 켜기

17번째줄 끄기

각각 3만번씩 반복


make 명령시 실행되는 명령문들과 생성되는 파일

자동생성된 makefile에는 bat파일처럼 여려 명령문과 설정이 자동으로 생성되어 있음

경우에 따라 변경해서 사용해야됨




make파일로 생성된 main.hex파일을 avrstudio를 통해서 atmega에 저장

생성된 코드를 확인하기위해서 반드시 해야되는 Flash 작업



make clean 명령시 아래와같이 make시 했던 파일들 삭제됨


Atmega 데이터 시트




2560 개발보드의 설계도

코드와 데이터 시트에 맞춰서 J13의 PA0에 + GND에 - 연결



E128 확장보드의 설계도

코드와 데이터 시트에 맞춰서 J4의 PA0에 + GND에 - 연결

설계도에 따라 실제 연결한 사진







연결시 LED가 꺼졌다 켜졌다 무한반복하는것을 확인 가능함


아직 개념이 부족해서 미흡한게 많습니다...
조금씩 수정보완해나갈 예정입니다;

728x90