Download presentation
Presentation is loading. Please wait.
1
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
2
DK-128 메인보드 – 연산, 제어 확장보드 - 입출력 Serial port Parallel port FND LED
high low FND low high LED low high EEPROM & Sensor ATmega 4K EEPROM Tact Switch EEPROM Power 1:TWI clock, 2:TWI data, 상위5~8:Infrared sensor
3
DK-128의 결선 8 line j19 red - j15 + black j18 j16 - + 8 line 1 1 2 61 1
25 j16 54 - + 35 42 8 line
4
LED OUT ATMEGA128 Key IN ADC=아날로그신호입력 Port A : I/O, 상위어드레스(ALE의한제어)
아날로그전원 프로그램 쓰기 LED OUT 전원 Port E : I/O, 외부인터럽트, ISP 프로그래밍 데이터/주소 모드 ATMEGA128 Key IN 전원 Port B : I/O, 타이머, 카운터, PWM, SPI 외부데이터메모리 접근 모드 Oscillator Port D : I/O, TWI, UART직렬통신 Real time clock시 Oscillator
5
1. EECR (Control Register)
EERE (Read Enable) EEAR에 지정된 주소의 1바이트를 읽어 EEDR에 저장 EEWE (Write Enable) 쓰기 기능 동작, 시스템에 의한 클리어, EEMWE (Master Write Enable) EEWE 동작 전 1 지정해야 함, 시스템에 의한 클리어 EERIE (Ready Interrupt Enable) EEWE가 클리어 될때 인터럽트 발생 여부 SREG I 비트도 활성화 되어 있어야 함. 비트 7 6 5 4 3 2 1 EECR - EERIE EEMWE EEWE EERE 모드 R R/W 초기값 X
6
2. EEAR (Address Register)
16비트 레지스터(12비트 사용) 비트 7 6 5 4 3 2 1 EEARH - EEAR11 EEAR10 EEAR9 EEAR8 모드 R R/W EEARL EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR1 EEAR0 초기값 12비트 = 4,096개 번지 관리 가능 Ex) EEAR = (unsigned int)0~4095
7
3. EEDR (Data Register) 읽거나 쓰기 위한 데이터를 저장하는 레지스터
비트 7 6 5 4 3 2 1 EEDR MSB LSB 모드 R/W 초기값 Ex) EEDR = (unsigned char)0~255
8
한 바이트 쓰기/읽기 절차 쓰기 시작 읽기 시작 쓰기 중인가? 쓰기 중인가? 쓸 주소 설정 읽을 주소 설정 쓸 데이터 설정
YES YES 쓰기 중인가? 쓰기 중인가? NO NO 쓸 주소 설정 읽을 주소 설정 쓸 데이터 설정 읽기 명령 쓰기 명령 데이터 읽기 쓰기 종료 읽기 종료
9
AVR-GCC의 EEPROM 함수 헤더파일 주요 함수 주의 사항 avr/eeprom.h
기능 eeprom_is_ready() EECR 레지스터에서 EEWE 비트가 Clear 될 때까지 대기 eeprom_write_byte(addr, val) 해당 주소에 바이트 단위 쓰기 eeprom_read_byte(addr) 해당 주소에서 바이트 단위 읽기
10
실습 예제 1/3
11
실습 예제 2/3 // 1번 스위치를 누르면 EEPROM에 데이터 기록 // EEPROM의 i 주소에 들어있는 데이터를 읽어옴
{ ch = 0; for(unsigned int i=0; i<10; i++) eeprom_write(i, ch++); ch = 9; eeprom_write(10+i, ch--); } // EEPROM의 i 주소에 들어있는 데이터를 읽어옴 // 읽어온 데이터를 FND에 출력
12
실습 예제 3/3 // 쓰기 작업 중이면 루프 // 쓸 주소값 입력 // 쓸 데이터 입력 // EEWE 할 준비해라
// 쓰기 명령 // 쓰기 작업 중이면 루프 // 읽을 주소값 입력 // 읽기 명령 // 데이터 읽기
13
실습 문제 [요구사항] LED와 KEY를 사용한다. 각 LED는 이웃한 각 KEY버튼과 짝이 된다.
현재의 상태를 매번 EEPROM에 기억 시킨다. DK-128의 전원을 껐다가 켰을 때, 이전의 LED 상태를 그대로 표시해야 한다.
Similar presentations