728x90

2016-03-10 <CPU 모듈>


Atmel ATmega 2560


Brown-out Detection 

특정 전압 이하로 떨어지는걸 방지, 자동으로 CPU를 리셋하는 회로.


Watchdog 

특정한 시간동안 시스템이 응답없으면 리셋시킴.


86 Programmable I/O Lines

86개의 제어가능한 입출력(Input/Output) 라인.



칩의 심박수가 곧 "Clock"


발진기(오실레이터)

발진회로 혹은 클럭발생기라고도 함


Crystal - XTAL  

수정발진자 혹은 수정진동자라고 함



16.000 MHz  

소수점 이하 0이 많이 붙을수록 정확한 진동자


1초에 16000000 개를 센다.


타이머 카운터(T/C) - 시간 측정회로, 기준이 되는 것은 동작 주파수




GPR(General Purpose Register)과 Data SRAM간의 Direct Addressing 

: Memory와 Register간 직접 주소 연결




AVR memories

256kb Flash Memory



0x7FFF(0~)-> 0x8000   -> 32768 /1024  -> 32

0xFFFF     -> 0X10000 -> 65536 /1024  -> 64

0x1FFFF    -> 0X20000 -> 131072/1024 -> 128


flash memory 한 Section에 2byte 공간을 가지기에 128 x 2 = 256kbyte를 가짐





인텔 CPU는 폰 노이만 구조. 폰 노이만은 컴퓨터 설계의 기본을 만든 천재 수학자.

하바드(Harvard) 구조는 양방향이라 효율적이고 빠르지만 단가가 비싸다. 



DDRA - Port A  Data Direction Register

데이터의 방향을 결정하는 레지스터


0-7번 비트까지 8bit Register를 가지며, 읽고 쓰기가 가능하다.

initial value(초기값)는 0이고 0과 1에 따라 Direction이 바뀐다. 


Port-출력과 방향

DDR-방향을 결정


Port에 값을 줄건지 말건지에 따라 5V 또는 0V 가 출력.




LED 두개, 교차 깜박임 실습


LED 두개의 한쪽 선을 각각 PORT A의 1번, 5번에 꼽음 (나머지 한쪽선은 각각 GND에 꼽음)




PORTA의 1번


 7

 6

 5

 4

 3

 2

 1

 0

 0

 0

 0

 0

 0

 0

 1

 0


0 | 2  


PORTA의 5번


 7

 6

 5

 4

 3

 2

 1

 0

 0

 0

 1

 0

 0

 0

 0

 0


| 0  




소스

#define DDRA	(*((volatile unsigned long *)0x21))
#define PORTA	(*((volatile unsigned long *)0x22))
#define PINA	(*((volatile unsigned long *)0x20))


int main(void) //void 안적으면 컴파일시 warning isn't a prototype
{
	volatile unsigned long uiCnt;
	DDRA=0xFF; // 출력으로 쓴다.	

	while(1)
	{
		for(uiCnt=0; 100000>uiCnt;++uiCnt);
		PORTA=0x02; //2번
		for(uiCnt=0; 100000>uiCnt;++uiCnt);
		PORTA=0x20; //5번		
	}
	return 0;
}



결과 - LED 두개가 번갈아 깜박거리는 것을 볼 수 있다.





전해 콘텐서는 순간적으로 전압이 떨어지는 걸 방지한다. (일종의 배터리)




'Study > Embedded' 카테고리의 다른 글

20160316-LCD출력  (0) 2016.03.17
20160315-펌웨어 분석 및 학습  (0) 2016.03.16
20160314-펌웨어 분석(외부 인터럽트)  (0) 2016.03.15
20160311-펌웨어분석 (FND, LED Test)  (0) 2016.03.12
20160309-CPU 모듈  (0) 2016.03.09

+ Recent posts