1.마이크로 컨트롤러
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
|
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=0; 30000 > uiCnt; ++uiCnt); //3만번반복 PORTA=0xFF; //켜기 for(uiCnt=0; 30000 > 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가 꺼졌다 켜졌다 무한반복하는것을 확인 가능함
아직 개념이 부족해서 미흡한게 많습니다...
조금씩 수정보완해나갈 예정입니다;
'코스웨어 > 16년 스마트컨트롤러' 카테고리의 다른 글
20160310-오아람-업무일지-CPU 모듈 (2) | 2016.03.10 |
---|---|
20160309 업무일지 이보원 cpu모듈 (1) | 2016.03.10 |
20160308-송찬호-그 밖의 기초학습 (4) | 2016.03.10 |
20160309_박진한_업무일지_CPU 모듈 (2) | 2016.03.10 |
2016.03.08 이종찬 업무일지 (4) | 2016.03.10 |
20160309_정일모_업무일지_마이크로 컨트롤러 반도체 트랜지스터 다이오드 (3) | 2016.03.10 |
20160309_김가연_업무일지_cpu모듈 (3) | 2016.03.10 |
20160309_최기영_업무일지_CPU모듈 (2) | 2016.03.10 |