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

20160310_송찬호_펌웨어 분석

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

프로그램

과제 : 3과 6포트에 꽃아 2개의 불 빛이 들어 오게 하는 방법

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

 

int main(void)
{
     volatile unsigned int uiCnt;
 
     DDRA = 0x48;//입력// 48은 16진 48을 2진수로 나누면 0100 1000이다. 
     
     while(1)
     {
          for(uiCnt=0; 60000>uiCnt; ++uiCnt);
          PORTA=0x40;//16진수 40은 2진수 100 0000이고 6포트에 속한다.
          for(uiCnt=0; 60000>uiCnt; ++uiCnt);
          for(uiCnt=0; 60000>uiCnt; ++uiCnt);
  
          for(uiCnt=0; 60000>uiCnt; ++uiCnt);
          PORTA=0x08;//출력 8은 3포트이다.
          for(uiCnt=0; 60000>uiCnt; ++uiCnt);
          for(uiCnt=0; 60000>uiCnt; ++uiCnt);// 속도를 낮출려고 더적었을 뿐 
 
       }
 
  
 return 0;
}

그라운드 -전자 는 다 흐르므로 다른 10포트 에 꽂아넣는다.

 이렇게 불빛이 들어 온다.

기타 교육 내용

Internal Calibrated : 내부 발전기
External and Internal : 외부발전기
Six Sleep Modes : 6가지의 자동 저전압 모드
I/O and Packages: 칩의 겉 모양
54/86 Programmable 프로그램으로 제어가 가는한 다리의 개수 2가지 다리개수는 다르다.
ATmega1281/2561 : 54
ATmega640/1280/2560 :86
100-lead 다리
TQFP-pinout ATmega640/1280/2560 밖에 다리가 100개
CBGA-pinout ATmega640/1280/2560 안에 다리가 있다.
pad 소켓이 있는형태
iead 다리가 있는 형태
ball 등에 동그란 형태가있는 형태
-40?C to 85?C Industrial 산업률

Active Mode  속도가 느려진다.cpu 숫자가크면 빨라진다.
Speed Grade
최고 속도는 4.5V이상은 되어야한다.


Overview
The ATmega640/1280/1281/2560/2561 is a low-power CMOS 8-bit microcontroller based on the AVR enhanced
RISC architecture. By executing powerful instructions in a single clock cycle, the
ATmega640/1280/1281/2560/2561 achieves throughputs approaching 1 MIPS per MHz allowing the system
designer to optimize power consumption versus processing speed.

 


타입 어 카운트 : 통작 속도

RLC
저항
코일
컨버터
3개를  조합하여 특정 주파수 회로를 만듬

저주파를 만듬
고주파는 버스로 만듬
ATmega1280 128KB 4KB 8KB 86 12 4 16
 
4페이지

ATmega128

AT회사이름

MEGA 크기

128 플레시메모리

AMR


11페이지 코어를 쪼게놓은거

Data Bus 8-bit

ALU 계산기

그위가 기역용 레지스터

버스가 32개 8비트
메모리와 레지스터는 붙여 잇다.

14페이지 7-2
레지스터 8비트 32개  그림
0~ 31개 0부터 0x1F

8.1페이지

Flash
메모리크기
0~5 = 5-0+1
1~5 =
플레시의 용양
2바이트
0x7FFF/0xFFFF/0x1FFFF
7FFFF=16진수에서 쳐서 10진로 했을 때 80000이걸 10진수 32768 나누기 1024는 32 2바이트므로 *2= 64kbyte
0xFFFF=64
0x1FFFF=256kbyte
우리기계는 256kbyte이다.

폰노이만구조 (버스가 적다) 옛날 구조
cpu - mamouy
 code(text)
 data
 stack
 


하바드 구조
       버스  버스
SRAM - ALU - FLasL
 data               code
stack  

버스가 많다. 그러므로 속도도 빠르다.

Internal SRAM


Data Memory Map
Address (HEX)
0 - 1F   32 Registers
20 - 5F  64 I/O Registers
60 - 1FF  416 External I/O Registers
200   Internal SRAM
21FF   (8192 × 8)
2200   External SRAM
21FF (8192 × 8)
8키로 SRAM

FFFF 는 납땜해서 사서 늘릴 수있다.
21FF (8192 × 8)
8키로 SRAM

REGISTERS = cpu
20~ 1FF까지 있다.
0~ 1FF는 기억용 레지스터
기능 : 주소

페이지 96 DDRA
Data Direction Register

자료의 방향을 결정하는 레지스터


비트이므로 2진수이다. 0과 1만 가능


0x01 (0x21): 주소

Initial Value 처음에 가지는 값

DDA7 DDA6 DDA5 DDA4 DDA3 DDA2 DDA1 DDA0  번지 들 7번지 6번지 5...... 0번지
Read/Write읽고 쓰는 게 가능하다.

728x90