DK-128 실습 EEPROM 제어 아이티즌 기술연구소 2009.12.10.

Slides:



Advertisements
Similar presentations
마이크로콘트롤러 설계 – 4 Timer 실습 2 – T1, T3
Advertisements

마이크로프로세서설계 - 3 ATmega128 마이크로컨트롤러의 특징 LED 실습 1
패러럴 포트를 이용한 Text LCD 제어 6월 17일 허정수 나선웅.
AVR 실습.
PIC는 우리의 친구 한국정보통신대학교 디지털미디어연구소.
다섯째날 : 외부 인터럽트 - 당근이의 AVR 갖고 놀기 - 당근닷컴
6 폴링과 인터럽트를 이용한 장치 인터페이스 마이크로컨트롤러 AVR ATmega128.
4. 컴퓨터 조직 순천향대학교 정보기술공학부 이상정.
UNIT 15 Timer & Watch Dog 로봇 SW 교육원 조용수.
컴퓨터 프로그래밍 기초 [Final] 기말고사
10장 주변장치 (PIO) Slide 1 (of 28).
제7강 학습 내용 주소지정 방식의 예 값 즉시 지정 방식과 실행 예 레지스터 직접지정 방식 메모리 직접지정 방식과 실행 예
2 AVR ATmega128 소개 마이크로컨트롤러 AVR ATmega128.
08. 디바이스 드라이버의 읽기와 쓰기 김진홍
자동제어 실험(2) 라인트레이서 제어.
TMS320F2812의 GPIO의 이해.
어셈블리 문법 보강 4월 10일.
Text LCD control.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
제10강 중앙처리장치 1.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
DK-128 ADC 실습 아이티즌 기술연구소
DK-128 ADC 실습 아이티즌 기술연구소
부트로더와 Self Programming
임베디드 실습 # LED, 7’Segment 제어
마이크로 시스템 lecture8. Interrupt Greet class 선 덕 한.
LCD 모듈의 특징 LCD 컨트롤러 내장으로 모든 디스플레이 기능을 명령어로 제어 8비트 혹은 4비트로 인터페이스
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소 김태성 연구원
타이머카운터 사용법 휴먼네트웍스 기술연구소
다섯째날 : 외부 인터럽트 - 당근이의 AVR 갖고 놀기 - 당근닷컴
PSW : PROGRAM STATUS WORD
ATmega128 FND 실습 휴먼네트웍스 기술연구소
DK-128 개발환경 설정 아이티즌 기술연구소 김태성 연구원
DK-128 FND 실습 아이티즌 기술연구소 김태성 연구원
Microprocessor I/O Port & CLCD Noh Jin-Seok.
과제#4 내용 정성훈.
디 지 털 공 학 한국폴리텍V대학.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
유승석 FILE I/O File Input/Output 유승석 SD50 – C# & .NET Platform.
DK-128 FND 실습 아이티즌 기술연구소
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소
논리회로 설계 및 실험 5주차.
6 레지스터와 카운터.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소
패러럴 포트를 이용한 Text LCD 제어 6월 17일 허정수 나선웅.
6. 레지스터와 카운터.
13장 CTC and DMA Slide 1 (of 10).
클라우드 서버로 부터 값 읽어오기 WiFi 시리얼 보드 활용가이드 김영준 헬로앱스 (
ARM Development Suite v1.2
ATmega128의 특징 아이티즌 기술연구소
계산기.
DK-128 직렬통신 기초 아이티즌 기술연구소
MEGA8_XBee CPUPLAZA
DK-128 개발환경 설정 아이티즌 기술연구소 김태성 연구원
DK-128 개발환경 설정 아이티즌 기술연구소
RAM RAM 읽기 동작(read) RAM 쓰기 동작(write) 1. 주소선을 통해 주소값 입력.
DK-128 직렬통신 실습 아이티즌 기술연구소
AT MEGA 128 기초와 응용 I 기본적인 구조.
Ⅰ 전자기초 Ⅱ 디지털 논리회로 Ⅲ C언어 기초 Ⅳ AVR 마이크로 컨트롤러 Ⅴ 마이크로 컨트롤러 개발환경
컴퓨터구조 (chap2 그림모음).
논리회로 설계 및 실험 4주차.
시리얼 UART 정리 정보통신•컴퓨터 공학부 송명규
셀프 프로그래밍으로 쓰기 셀프 프로그래밍이란? 프린트포트의 ISP 모듈을 사용하지 않음 부트로더에 의한 펌웨어 다운로드
TVM ver 최종보고서
AdcRead API 함수 분석 마이크로프로세서.
06. 디바이스의 등록과 해제 김진홍
1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법
2. 프로세스 B 안우진 - 운영체제 -.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
Presentation transcript:

DK-128 실습 EEPROM 제어 아이티즌 기술연구소 2009.12.10

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

DK-128의 결선 8 line j19 red - j15 + black j18 j16 - + 8 line 1 1 2 61 1 25 j16 54 - + 35 42 8 line

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

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

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

3. EEDR (Data Register) 읽거나 쓰기 위한 데이터를 저장하는 레지스터 비트 7 6 5 4 3 2 1 EEDR MSB LSB 모드 R/W 초기값 Ex) EEDR = (unsigned char)0~255

한 바이트 쓰기/읽기 절차 쓰기 시작 읽기 시작 쓰기 중인가? 쓰기 중인가? 쓸 주소 설정 읽을 주소 설정 쓸 데이터 설정 YES YES 쓰기 중인가? 쓰기 중인가? NO NO 쓸 주소 설정 읽을 주소 설정 쓸 데이터 설정 읽기 명령 쓰기 명령 데이터 읽기 쓰기 종료 읽기 종료

AVR-GCC의 EEPROM 함수 헤더파일 주요 함수 주의 사항 avr/eeprom.h 기능 eeprom_is_ready() EECR 레지스터에서 EEWE 비트가 Clear 될 때까지 대기 eeprom_write_byte(addr, val) 해당 주소에 바이트 단위 쓰기 eeprom_read_byte(addr) 해당 주소에서 바이트 단위 읽기

실습 예제 1/3

실습 예제 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에 출력

실습 예제 3/3 // 쓰기 작업 중이면 루프 // 쓸 주소값 입력 // 쓸 데이터 입력 // EEWE 할 준비해라 // 쓰기 명령 // 쓰기 작업 중이면 루프 // 읽을 주소값 입력 // 읽기 명령 // 데이터 읽기

실습 문제 [요구사항] LED와 KEY를 사용한다. 각 LED는 이웃한 각 KEY버튼과 짝이 된다. 현재의 상태를 매번 EEPROM에 기억 시킨다. DK-128의 전원을 껐다가 켰을 때, 이전의 LED 상태를 그대로 표시해야 한다.