(128c\272\273\271\256.hwp)
|
|
- 병선 황보
- 8 years ago
- Views:
Transcription
1 마이콤기초와응용강의노트 (ATmega128 시스템 ) 최한호 서울시중구필동 3가 26번지동국대학교전기공학과 TEL: , FAX: hhchoi@dongguk.edu, WWW: //home.dongguk.edu/user/hhchoi * 하늘아래새로운것이있을까? 학문은모방을통해발전하고정보공유를통해세상에대한이해는빨라지 고지식의지평선은넓어진다고생각합니다. 이자료는출처를밝히지않고자유로이사용하셔도됩니다. 많 이사용하셔야제가쓰레기를만들어낸것이아니라는위안을받을수있으니까요.
2
3 제목차례 1. AVR 개요 AVR 의일반적특징 AVR 의종류 ATmega128 의특징 외형과핀기능 ATmega128 의메모리 프로그램메모리 데이터메모리 : 범용레지스터 X,Y,Z 레지스터 데이터메모리 : I/O 레지스터 상태레지스터(SREG) 스택포인터(SP) RAMPZ(RAM Page Z select) 레지스터 데이터메모리 : 확장 I/O 레지스터 데이터메모리 : 내부 SRAM 데이터메모리 : EEPROM EEAR 레지스터 EEDR 레지스터 EECR 레지스터 EEPROM 쓰기과정 EEPROM 읽기과정 외부데이터메모리 외부메모리인터페이스 MCUCR 레지스터 XMCRA 레지스터 XMCRB 레지스터 메모리 lock 비트 퓨즈비트 Extended Fuse Byte Fuse High Byte Fuse Low Byte 시스템클록과슬립모드 클록분배 클록발생과선택 내부 RC( 디폴트클록) 발진기 외부 RC 발진기 외부수정발진기 저주파수정발진기 외부클록 XDIV 레지스터를이용한클럭주파수조정 슬립모드 MCUCR 레지스터를이용한모드설정 21 - i -
4 아이들모드 ADC noise reduction 모드 Power-down 모드 Power-save 모드 Standby 모드 Extended Standby 모드 슬립모드의동작요약 Reset 과워치독타이머 리셋 파워온리셋(POR) 외부리셋 Brown-out 리셋 워치독리셋 MCUCSR 레지스터 워치독타이머 워치독타이머의구성 WDTCR 레지스터 워치독의설정 ATmega128 시스템개발기초 명령어분류와주소지정방식 명령어요약 어셈블리어의일반형태 지시어( 의사명령) 숫자, 문자, 연산자 함수 AVR Studio 새프로젝트등록과실행파일만들기 디버깅과시뮬레이션 AVR의 ISP 마이컴시스템개발방법 ICE(In Cricuit Emulator) 를이용하는법 ROM Emulator 를이용하는법 ROM Writer 를이용하는법 외부 RAM 을이용하는법 ISP 를이용하는법 AVR ISP 용다운로더 AVR Studio와 ATAVRISP Atmel AVR ISP 프로그래머 PonyProg Codevisin AVR Codevision AVR C 컴파일러 새프로젝트등록하기와옵션설정하기 새소스파일만들기 프로젝트에소스파일등록하고실행파일만들기 디버깅 51 - ii -
5 플래쉬롬 ISP 프로그래밍하기 EEPROM ISP 프로그래밍하기 C 프로그래밍에서유의할점 C 프로그램의구성요소 C 프로그램의일반적형식 전처리 선언문 주석 함수와 main 함수부분 기본데이터형 문자형 정수형 실수형 변수나상수이름짓는법 상수정의 변수선언과초기화 확장데이터형 bit 데이터형 eeprom 데이터형 flash 데이터형 sfrb, sfrw 데이터형 연산자 조건연산자 데이터형변환연산자 콤마연산자 산술연산자 논리와비교연산자 비트연산자 대입연산자 제어문 if 문 switch-case 문 for 문 while 문 do-while 문 break 문 continue 문 goto 문 함수와변수 프로토타입선언 일반함수의정의 라이브러리함수 인터럽트함수의정의 변수 어셈블리어와결합 64 - iii -
6 포인터와배열 배열선언방법 배열초기화 포인터선언방법 포인터초기화및참조방법 포인터의연산 함수포인터 배열과포인터의차이점 typedef, structure, union, enum typedef 를사용한새로운데이터형정의법 구조체의개념과필요성 구조체선언법과초기화 구조체사용법 공용체(union) 열거형상수 기본프로그래밍과입출력실험 기본프로그래밍연습 실험1 : 내부램에데이터쓰기 실험2 : 내부램에데이터쓰기 실험3 : EEPROM 에데이터쓰기와읽기 실험4 : 롬데이터읽기 실험5 : 롬데이터검색 실험6 : 롬데이터검색 실험7 : 8비트 2진수의 BCD 변환 실험8 : 16비트 2진수의 BCD 변환 실험9 : 아스키문자의 16 진수변환 실험10 : 숫자의아스키코드변환 실험11 : 지연루틴 I/O Port 관련레지스터 DDRx 레지스터 PORTx 레지스터 PINx 레지스터 SFIOR 레지스터 구조및동작 단순출력연습 실험12 : LED 점멸 실험13 : LED 점멸 실험14 : LED 점멸 실험15 : LED 점멸 단순입출력연습 실험16 : 키누름수세기 실험17 : 파일럿램프 실험18 : 파일럿램프 실험19 : 입출력함수구현 81 - iv -
7 실험20 : 입력값에따른 LED 점멸속도조절 인터럽트와타이머실험 외부인터럽트실험 인터럽트의개념과종류 ATmega128 의인터럽트처리과정 인터럽트처리시간 인터럽트제어 벡터배치 MCUCR 레지스터 허용과우선순위 외부인터럽트트리거 EICRA 레지스터 EICRB 레지스터 EIMSK 레지스터 EIFR 레지스터 실험21 : LED 점멸 실험22 : LED 점멸 실험23 : 카운터 타이머실험 타이머카운터0, 구성 TCCRn 레지스터 TIMSK 레지스터 TIFR 레지스터 ASSR 레지스터 SFIOR 레지스터 타이머0,2 의일반모드 타이머0,2의 CTC 모드 타이머 0, 2의고속 PWM 모드 타이머 0, 2의 Phase Correct PWM 모드 타이머카운터1, 구성 TCCRxA 레지스터 TCCRxB 레지스터 TCCRxC 레지스터 TIMSK 레지스터 ETIMSK 레지스터 TIFR 레지스터 ETIFR 레지스터 타이머1, 3 의일반모드 타이머1, 3의 CTC 모드 타이머 1, 3의고속 PWM 모드 타이머 1, 3의 Phase Correct PWM 모드 타이머 1, 3의 Phase and Frequency Correct PWM 모드 출력비교변조 99 - v -
8 실험24 : 타이머를이용한 LED 점멸 실험25 : 타이머를이용한 LED 점멸 실험26 : 타이머를이용한 LED 점멸 실험27 : 타이머를이용한 LED 점멸 실험28 : 타이머를이용한 LED 점멸 실험29 : 워치독타이머 실험30 : 타이머를이용한카운터 실험31 : 펄스폭측정 인터럽트와타이머복합실험 실험32 : LED 점멸속도조절 실험33 : 스톱워치 실험34 : PWM 신호발생 실험35 : PWM 신호발생 응용실험 FND(Flexible Numeric Display) FND 의개요 실험36 : 디코더없는 FND 구동 실험37 : 디코더를사용한 FND 구동 실험38 : FND 동적구동 실험39 : 시계 실험40 : 스톱워치 실험41 : 시간조정이가능한시계 키보드스캐닝 실험42 : 단순키보드스캔 실험43 : 키매트릭스스캔 음향발생 음향발생개요 실험44 : 사이렌소리내기 실험45 : 전화벨소리내기 실험46 : 동요재생하기 실험47 : 전자오르간 x2 문자 LCD x2 문자 LCD 모듈개요 LCD 제어기의내부구성 명령어 초기화방법(4 비트인터페이스경우) 실험48 : LCD 초기화 실험49 : 점멸하며문자표시하기 실험50 : 사용자폰트이용하기 실험51 : 시간조정이가능한시계 모터제어 스텝모터개요 특징 종류 특성과사양 vi -
9 상스텝모터의결선확인법 상스텝모터의구동원리 상여자방법 상여자방법 상여자방법 스텝모터의위치제어법 스텝모터의속도제어법 스텝모터의가감속제어시펄스레이트결정법 모터구동용 H 브리지회로 모터구동용 IC L298 의개요 실험52 : 스텝모터정속제어 실험53 : 스텝모터속도제어 실험54 : 스텝모터가감속제어 직류모터개요 특징 직류모터구동원리 직류모터구조 실험55 : 직류모터속도제어 실험56 : 직류모터속도제어 D/A 변환 D/A 변환기의종류 DAC 0800 소개 실험57 : 톱니파발생 실험58 : 사인파발생 A/D 변환 A/D 변환과정 A/D 변환기의종류 ATmega128의 ADC 특징 ADCH, ADCL 레지스터 ADMUX 레지스터 ADCSRA 레지스터 동작 잡음제거방법 실험59 : 조도변화측정 아날로그비교기 구성 제어 ACSR 레지스터 SFIOR 레지스터 실험60 : 아날로그비교기실험 직렬통신 SPI 포트제어 SPI 의동작 SPCR 레지스터 vii -
10 SPSR 레지스터 USART 포트제어 데이터프레임포맷 UDRn 레지스터 UCSRnA 레지스터 UCSRnB 레지스터 UCSRnC 레지스터 UBRRnH, UBRRnL 레지스터 RS232C 개요 실험61 : PC와통신 실험62 : PC와통신 실험63 : PC와통신 실험64 : PC와통신 실험65 : PC와통신 참고문헌 색인 viii -
11 표차례 표 표 표 표 표 표 표 표 표 1. AVR 의종류와사양 2 2. 포트B 의다른기능설명 5 3. 포트D 의다른기능설명 6 4. 포트E 의다른기능설명 6 5. 포트F 의다른기능설명 6 6. 포트G 의다른기능설명 7 7. 어셈블리명령에쓰인약자의의미 기본데이터형 산술연산자 60 표 10. 논리, 비교연산자 60 표 표 11. 비트연산자 대입연산자 61 표 13. 음계에따른 tone_data 값 118 표 14. 박자에따른지속시간값 118 표 15. 일때 k 에따른속도 ix -
12 그림차례 그림 그림 그림 그림 그림 1. ATmega128 의블록선도( 출처:ATMEL) 4 2. ATmega128 의핀배치( 출처:ATMEL) 5 3. ATmega128 의메모리맵( 출처: ATMEL) 7 4. 범용레지스터( 출처:ATMEL) 8 5. XYZ 레지스터( 출처:ATMEL) 8 그림 6. ATmega128의 I/O 레지스터( 출처:ATMEL) 9 그림 7. ATmega128의확장 I/O 레지스터( 출처:ATMEL) 11 그림 그림 그림 8. 외부램의연결( 출처:ATMEL) SRL2-SRL0 를이용한메모리분할( 출처:ATMEL) Lock bit 의구성( 출처:ATMEL) 15 그림 11. Lock bit 설정에따른기능 ( 출처:ATMEL) 15 그림 그림 12. 부트사이즈의선택( 출처:ATMEL) ATmega128 의클록분배( 출처:ATMEL) 17 그림 14. 외부 RC 발진기의연결( 출처:ATMEL 사) 18 그림 15. 외부 RC 발진기동작모드 ( 출처:ATMEL) 18 그림 16. 외부 RC 발진기의기동시간선택( 출처:ATMEL) 18 그림 17. 외부수정발진기의연결( 출처:ATMEL) 19 그림 18. 외부수정발진기동작모드 ( 출처:ATMEL) 19 그림 그림 그림 그림 그림 그림 그림 그림 그림 그림 그림 그림 그림 19. 수정발진기의기동시간선택( 출처:ATMEL) 저주파수정발진기의기동시간선택( 출처:ATMEL) 슬립모드의설정( 출처:ATMEL) 슬립모드의동작요약( 출처:ATMEL) 리셋관련내부회로블록선도( 출처:ATMEL) 리셋관련변수( 출처:ATMEL) 파워온리셋동작타이밍도( 출처:ATMEL) 외부리셋동작타이밍도( 출처:ATMEL) 저전압검출리셋동작타이밍도( 출처:ATMEL) 워치독리셋동작타이밍도( 출처:ATMEL) 워치독타이머의구성( 출처:ATMEL) 워치독타이머프리스케일러의설정( 출처:ATMEL) 워치독타이머의설정( 출처:ATMEL) 26 그림 32. 분기명령모음 ( 출처:ATMEL) 28 그림 33. MCU 제어명령모음 ( 출처:ATMEL) 28 그림 그림 34. 데이터명령모음( 출처:ATMEL) 산술과논리연산명령모음( 출처:ATMEL) 29 그림 36. 비트조작명령모음 ( 출처:ATMEL) 30 그림 그림 그림 그림 그림 그림 37. AVR Studio 의초기화면 New Project 의실행 프로젝트의설정 디버그플랫폼과디바이스의설정 프로젝트등록의최종결과로생긴에디터창 Build 실행 36 - x -
13 그림 그림 그림 그림 43. 성공적으로실행파일이만들어진결과 에러가있을때결과 [Debug->Start Debugging] 메뉴 Debug 세션의시작 38 그림 47. 디버그세션에서메인메뉴 [View->Register] 의실행 38 그림 48. 디버그세션에서메인메뉴 [View->Memory] 의실행 39 그림 49. 디버그세션에서메인메뉴 [View->Watch] 의실행 39 그림 50. [Debug] 메뉴의하위메뉴들 40 그림 51. Atmel AVR ISP, PonyProg2000, CodevisonAVR용의 ISP 인터페이스회로 42 그림 그림 그림 그림 그림 그림 그림 그림 그림 그림 그림 52. CodevisionAVR Compiler 의초기화면 [File->New] 메뉴의실행과새로운프로젝트생성 CodeWizardAVR 사용여부를설정하기위한창 CodevisionAVR 에서새로운프로젝트이름의설정 CodevisionAVR 에서프로젝트옵션설정하기 [File->New] 메뉴의실행과새로운파일생성 CodevisionAVR 에서새로운파일의작성 [File->Save As] 메뉴를통한파일저장 [Project->Configure] 메뉴의실행 Add 메뉴를통한소스파일등록 Add 메뉴를통한소스파일등록결과 48 그림 63. CodeVisionAVR의 Make 실행 49 그림 64. CodevisionAVR에서 Make 의성공적인결과 49 그림 65. CodevisionAVR에서파일에에러가있을때 Make 결과 50 그림 그림 그림 그림 그림 그림 66. CodeVisionAVR 를이용한문법에러의수정 Debugger 의선택 [Tools->Debugger] 메뉴 AVR Studio4 의프로젝트선택창 cof 파일의선택대화창 디버깅을위한프로젝트생성 53 그림 72. CodeVisionAVR에서 AVR Studio4 를이용한디버깅화면 53 그림 그림 73. AVR Chip 프로그래머설정화면 CodeVisionAVR 의칩프로그래머대화창 54 그림 75. 다운로드할 rom이나 hex 혹은 bin 파일의선택 55 그림 그림 그림 그림 그림 그림 그림 그림 그림 그림 76. 플래시롬을지우는과정을보여주는창 프로그램의다운로드과정을보여주는창 I/O 포트의기본구조( 출처:ATMEL) 기본입출력실험을위한회로도 단순키보드스캔을위한회로도 딥스위치를이용한간단한입력회로 인터럽트벡터의배치( 출처:ATMEL) ATmega128 의인터럽트발생원과벡터값( 출처:ATMEL) 간단한채터링방지키입력회로 타이머0 의블록선도( 출처:ATMEL) 88 그림 86. 타이머0,2의 CTC 모드동작( 출처:ATMEL) 92 그림 87. 타이머의고속 PWM 모드동작( 출처:ATMEL) 92 - xi -
14 그림 88. 타이머0, 2의위상교정 PWM 모드동작 ( 출처:ATMEL) 93 그림 89. 타이머1,3 의불록선도( 출처:ATMEL) 94 그림 90. 타이머1,3 의동작모드설정( 출처:ATMEL) 96 그림 91. 타이머1,2 를이용한출력비교변조의예 99 그림 그림 92. LED 배열회로 FND 의내부구성과핀배치 109 그림 94. FND 기초실험도( 왼쪽: 디코더비사용, 오른쪽: 디코더사용) 110 그림 그림 그림 그림 95. FND 의동적구동을위한회로도 키보드스캔을위한순서도 X5 키매트릭스 음향발생을위한회로도 119 그림 x2 문자 LCD 실험회로도 125 그림 그림 그림 100. LCD 에문자등록을위해패턴값구하는예 스텝모터의토크속도특성 상스텝모터의결선도 131 그림 상여자방법( 왼쪽: sw1 만닫힌경우, 오른쪽: sw2 만닫힌경우) 131 그림 상여자방법( 왼쪽: sw1, sw2 만닫힌경우, 오른쪽: sw2, sw3 만닫힌경우) 132 그림 105. 스텝모터의가속패턴 133 그림 106. 다목적 H 브리지회로의예 134 그림 그림 107. 모터실험회로도 직류모터의구동원리 138 그림 109. D/A 변환기의종류. 가산형( 왼쪽) 과사다리형( 오른쪽) 141 그림 그림 110. D/A 변환실험회로도 ADCH, ADCL 레지스터( 출처:ATMEL) 144 그림 112. ADC 채널과 Gain 의설정( 출처:ATMEL) 145 그림 그림 그림 그림 그림 그림 113. 아날로그전원단자의처리( 출처:ATMEL) 조도측정회로 아날로그비교기의블록선도( 출처:ATMEL) SPI 포트의블록선도( 출처:ATMEL) SPI 의동작( 출처:ATMEL) USART 통신의데이터프레임( 출처:ATMEL) 152 그림 119. 보레이트와 UBRR 의관계( 출처:ATMEL) 154 그림 그림 120. RS232C 통신을위한인터페이스 직렬통신에의한문자열수신순서도 xii -
15 머리말 마이컴이란프로그램메모리, 데이터메모리, 입출력포트등으로구성된작은규모의컴퓨터인마이크로컴퓨터 의기능을단일칩에집적해구현한단일칩마이크로컴퓨터를지칭하는말로마이크로콘트롤러라고도불리운다. 마 이컴은아래와같은특성을갖기때문에모든산업전반에걸쳐다양하게응용되고있다. 소형화와경량화 : 다양한기능을 VLSI 기술에의해단일칩에집적해구현했기때문에제품제작시소형화와 경량화를실현할수있다. 쉽고편리한개발 할수있다. 저가격 융통성 : 입출력, 인터럽트처리, 비트조작명령어가많아프로그램작성이수월하여개발을빨리 : 개발비, 부품비와제작비를감소시켜제품의가격을저렴하게할수있다. : 프로그램변경만으로기능을변경하거나확장시키는것을짧은시간내에수월하게할수있다. 신뢰성 : 마이크로컴퓨터의기능이 VLSI 기술에의해단일칩에집적되어있기때문에제품의부품수를줄일 수있어제품의구성을간단하게하고고장률을줄일수있으며고장시유지보수가쉽다. 마이컴의시초는인텔사가 1971년 2300 여개의트랜지스터를집적하여, 46 개의명령어, 12 개의주소선, 16개의 내부 4비트범용레지스터를사양으로 108kHz의발진주파수에서동작하도록만든 4비트마이컴 4004 이다. 그후 인텔은 1972년에는 4004를개선한 비트마이크로프로세서를, 1973년에는 8008을개선한 비트 프로세서를발표하였다. 1975년에는 TI 에서중앙처리장치와, 메모리, 입출력장치를단일칩에내장한 TMS1000 시리즈를출시하여마이컴시대를열었고이후마이크로프로세서의개발은연산용프로세서와제어용마이컴으로 분화되었다. 1976년에는 8비트마이컴 8048, 8748, 8035가포함된 MCS48시리즈를인텔사에서출시하고그상 위버전인 MCS51 시리즈의 8051을 1981년에출시한이후여러회사에서계속적으로향상된기능의마이컴을출 시하고있다. 인텔의 80960, 모토로라의 68332, ST마이크로의 ST40이나 STR7, 삼성전자의 KS32 등 32비트의고성능마 이컴도있지만아직 8 비트마이컴이가전제품 (TV/VCR, CD, 카메라, 리모콘, 전자레인지, 공기청정기등), 사무 기기( 모니터, 마우스, 키보드, 스캐너, 프린터, 복사기, 팩스, PC LAN 시스템, 바코드리더, 탁상계산기, 하드디스크 등), 통신기기 ( 전화기, 자동응답기, 모뎀, 발신자확인기등), 자동차 (ABS, 속도측정기, Power seat, 운항제어, 자 동경보기, 온도제어, 연료제어, Air bag 센서, Sun roof 제어등), 계측기, CCTV, 자동차주행시험장의점수계 산장치, PLC, 신용카드리더, 공정제어등산업전반에걸쳐다양하게응용되고있는형편이다. 그리고인텔의 8051, 모토로라의 68HC11, ST마이크로의 ST7 시리즈, Microchip 의 PIC 시리즈, Zilog의 Z88C00, Atmel 의 AVR 등의 8비트마이컴에서 Atmel의 AVR 은교육로봇 (robotkim.com), US Technology( 로보블록 (roboblock.co.kr), 마이컴월드 ( 등국내여러회사에서값싼키트를공급하고 있으며 AVR이플래쉬롬을내장하여값싸고쉽게프로그래밍이가능한이점을갖고있어초보자들이쉽게구현해 볼수있으므로여기에서는 AVR 그가운데 ATmega128 시스템개발의기초와응용을다룬다. 1장에서는 ATmega128 의구조와기능에대하여설명하고 2장에서는 AVR 시스템개발을위한환경을꾸미는 방법과어셈블리어와 C 언어에대한설명을한다. 3장에서는기초적인프로그램과단순입출력을위한프로그램 작성과실습을다루고 4 장에서는타이머와인터럽트를사용한프로그램작성과실습을다룬다. 5장에서는응용실 험으로마이컴시스템의고기능화를위해사용되는 FND, 키보드, D/A와 A/D 변환, 모터, 스피커, LCD 등다양한 주변장치에대한설명과이들을이용한응용시스템을위한프로그램작성과실습을다룬다. 아무쪼록본책이독자들의마이컴시스템개발능력을향상시키는데일조하길바랍니다 년여름최한호 - xiii -
16 1. AVR 개요 1.1. AVR 의일반적특징 AVR은 Atmel 사의마이컴들로저가의고기능마이컴으로다음과같은특성을갖고있다. 유사 RISC (Reduced Instruction Set Code) 구조 : 명령어가많고복잡하며주소지정방식도다양한 CISC (Complex Instruction Set Code) 방식이사용된 8051에비해명령어와주소지정방식이작지않지만유사 RISC 구조로연산및전송이레지스터간에직접이루어지고명령어의길이가 16비트 1워드로고정적이어디코딩이쉬 운특징을갖고있으며발진주파수를분주해서내부클록으로사용하는 8051과달리발진주파수와같은내부클 록을사용하며대부분 1기계사이클에명령어가실행되어보통 1MHz 당 1MIPS 의처리속도를보인다. 결국통상 적인 RISC처럼명령어와주소지정방식이작지않아어셈블리어프로그램작성에서불리하지도않으면서도통상 적인 RISC처럼속도가매우빠른유사 RISC 의특성을갖고있다. 하바드구조의메모리구성 아니고 : Z80처럼프로그램메모리와데이터메모리가구분되지않은폰노이만방식이 TMS320 과같이프로그램메모리와데이터메모리가분리되어있는하바드구조를채택하였다. 저전력소모 : CMOS 기술을채택하고있어소비전력이매우적고동작전압이 V 로큰장점이있다. 다양한동작모드를제공해저전력동작을지원한다. 큰잡음여유와입력임피던스 : CMOS 정전기및과전압에의한파손위험이큰단점도있다. 기술을채택하고있어잡음여유와입력임피던스가큰장점이있으나 고집적 : CMOS 기술에의해 1K-256Kbyte 플래시롬메모리와변수저장을위한 EEPROM 및 SRAM 이작은 칩하나에내장되어있다. 고속 : 유사 RISC 구조와 32개의레지스터사용과고집적으로대부분 1기계사이클에명령어가실행되어보통 1MHz 당 1MIPS 의처리속도를보인다. 효율적인프로그래밍 : C언어를고려하여설계하였으며 32개의레지스터와 C와유사한주소지정방식를사용 하고있으며 16비트와 32 비트의산술연산을지원하여효율적으로최적의프로그램을가능하게한다. 다양하고값싼개발도구 : 공짜의개발도구인 AVR Studio 와값싼평가보드나 Starter 키트가이용가능하다. 다양한사양지원 : 8핀에서 100핀의외형과이에상응하는메모리와기능을갖는다양한시리즈의제품이존 재하여적절한응용에대응하여제어기를개발할수있다. ISP (In System Program) 지원 : 내부에롬라이터와같은기능을하는부분이내장되어있어내부플래시롬 을롬라이터없이읽고쓰기가가능하여따로값비싼롬라이터를이용하지않고도 장하고전원과클럭이공급되는상태에서프로그래밍이가능한 1.2. AVR 의종류 ISP 기능이제공된다. PCB 기판상에마이컴을실 Atmel 사의 8비트마이컴 AVR은크게 Tiny, AT90, Mega 시리즈로나뉠수있다. 표 1은 AVR의사양을보여 준다. Tiny 시리즈 : 핀수가 8-24핀정도의작은외형으로대부분외부시스템버스가없고내부에 1K-2K byte 정 도의플래시메모리를가지고있어용량도작은편이다. UART 를지원하지않고 RTC 타이머가없으며 16비트 타이머가없고 8비트타이머만 1-2개있는등기능이나성능이비교적낮지만가격이저렴하여소형제어기에 적당하다. Mega 시리즈 : 핀정도의외형을갖고내부에 8K-256Kbyte 정도의플래시메모리와 256-4K byte 정도의 EEPROM 과 512-4K byte의 SRAM 을내장하고있다. 20MHz 의클럭에서 20MIPS 의속도를갖는등성 능과기능이높으나가격도높다
17 AT90 시리즈 : 중간정도사양을가진시리즈로 AT90S 의경우에는사양화되었다. Device Flash (K) EEPROM (K) SRAM (byte) 표 1. AVR의종류와사양 M a x I/O F.max (MHz) Vcc (V) 16-bit Timers AT90PWM No AT90PWM Yes AT90PWM Yes AT90PWM Yes AT90PWM Yes ATmega Yes 8 34 ATmega Yes ATmega Yes ATmega128RZAV Yes ATmega128RZBV Yes ATmega Yes ATmega ATmega164P Yes 8 31 ATmega USI ATmega165P USI ATmega Yes 6/8 26 ATmega168P Yes 8 26 ATmega USI ATmega169P USI ATmega Yes ATmega Yes ATmega256RZAV Yes ATmega256RZBV Yes ATmega Yes ATmega324P Yes ATmega USI ATmega USI ATmega3250P USI ATmega325P USI ATmega328P Yes 8 26 ATmega USI ATmega USI ATmega3290P USI ATmega329P USI ATmega Yes ATmega Yes 6/8 26 ATmega48P Yes 6/8 26 ATmega Yes ATmega Yes ATmega Yes ATmega644P Yes ATmega USI ATmega USI ATmega USI ATmega USI ATmega64RZAPV Yes ATmega64RZAV Yes ATmega Yes 6/8 18 ATmega ATmega Yes ATmega Yes 6/8 26 ATmega88P Yes 8 26 ATtiny ATtiny ATtiny15L ATtiny USI -- 8 ATtiny USI 8 17 ATtiny USI 4 15 ATtiny USI ATtiny USI ATtiny28L ATtiny USI 8 17 ATtiny USI 4 15 ATtiny USI ATtiny USI 8 17 ATtiny USI 4 15 ATtiny USI bit Timer PWM ( 채널 ) UART TWI A/D ( 채널 ) 인터럽트 - 2 -
18 1.3. ATmega128 의특징 그림 1은 ATmega128 의블록선도로다음과같은특징을갖는다. 유사 RISC 구조 : 대부분한클럭에동작하는 133 개의명령어, 32개의 8 비트범용레지스터, 16MHz 에서 16MIPS 의성능, 2사이클에서실행되는내장곱셈장치 6개의 Sleep 모드 : idle, ADC noise reduction, power save, power down, standb, extended standby 모 드지원 메모리 : 128K byte의 번까지 ISP를이용해쓰고지우기가능한플래시롬내장하고있으며부트코드 영역으로사용가능, 십만번까지쓰고지우기가능한 4K바이트의 EEPROM 내장, 4K바이트의 SRAM 을내장, 최 대 64K 바이트의외부데이터메모리추가가능, 소프트웨어의보안을위한프로그램잠금기능제공 ALU : 32 개의범용레지스터와직접연결되어수학연산, 논리연산, 비트연산을보통한개의시스템클럭안에 서수행한다. Watchdog Timer : 프로세서가안정적으로동작하는지감시하는기능을수행한다. 프로세서에이상이생겨일 정시간마다 Watchdog Timer 가리셋되지않게되는경우시스템에인터럽트를발생시켜프로세서를초기화시 키는동작이이루어지게하여안정적인동작을보장할수있다. 입출력 I/O : 6개의 8비트병렬 I/O포트와 1개의 5비트병렬 I/O포트로총 53개의프로그램가능한입출력선 을갖고있다. 타이머 / 카운터 : 2개의 8 비트타이머 ( 타이머 0와 2) 와 2개의 16 비트타이머( 타이머 1와 2) 를가지고있다. 이들 은 2개의 8비트 PWM 출력, 2-16비트 PWM 출력, 출력비교단자등과관련되어동작한다. AD 변환기 : 8채널의 10비트 AD 변환기를제공한다. 이들은 8개의단일입력혹은 7개의차동입력채널로사 용가능하며, 8 개중프로그램이가능한입력게인(1x, 10x, 200x) 을갖는 2 개의채널이존재한다. 비교기 : 아날로그비교기를 1 개내장하고있다. 발진기 : RC 발진기를내장하고있으며외부에서크리스탈을접속해정확한클럭소스를사용할수도있다. 직렬통신포트 (Serial Port) : 동시양방향전송이가능한범용동기/ 비동기직렬통신(USART) 기능을제공하 는직렬통신포트를 2개존재하여쉽게 RS232C 통신을구현할수있다. 인터럽트 : 리셋과 8개의외부인터럽트를포함하여총 35 개의인터럽트벡터를가지고있다. JTAG 인터페이스 : JTAG 인터페이스로플래시, EEPROM, 퓨즈, Lock 비트를프로그램이가능하며, 내장된 상태에서디버그를가능하게한다. SPI (Serial Peripheral Interface) 인터페이스 : SPI는오직 3라인을이용한통신방법으로 MOSI (Master Out Slave In), MISO (Master In Slave Out), SCK (Serial ClocK) 신호를이용한다. Motolora 에서개발되었으 며 Master 와 Slave 가 SCK에동기하여데이터를교환하는방식으로마이컴의 RST( 리셋) 핀을 0으로한상태에 서앞의세시그널을이용하여메모리의데이터를읽고쓰기가가능하다. 즉내부에롬라이터와같은기능을하 는부분이내장되어있어내부플래시롬을롬라이터없이읽고쓰기가가능하므로 를이용하지않고도 PCB ISP(In System Programming) 기능이제공된다. SPI가지원되면따로롬라이터 기판상에마이컴을실장하고전원과클럭이공급되는상태에서프로그래밍이가능한 동작범위 : 정상적인동작의경우 5.5mA, idle모드의경우 1.6mA, 파워다운모드의경우 1마이크로 A이하를 소비한다. -40도부터 85도사이에서동작가능하고 ATmega128L 의경우 V에서최대 8MHz에서동작가 능하고, ATmega128 의경우 V 에서최대 12MHz 에서동작가능하다
19 그림 1. ATmega128 의블록선도 ( 출처:ATMEL) 1.4. 외형과핀기능 ATmega128 은그림 2와같이 64핀을갖는 TQFP(Thin Quad Flat Pack) 형또는 MLF(Micro Lead Frame) 형 이있다. RESET ( 핀20) : 입력단자로 1레벨이입력되면리셋되어 PC(Program Counter) 는일반적으로 0번지를가르키 고 0 번지부터프로그램이시작됨(1.5.9 절참조). 리셋시대부분의레지스터는 0 으로된다. XTAL1, XTAL2( 핀24,23) : 발진용증폭기입력및출력단자. Vcc( 핀21,51) : 전원입력단자. GND ( 핀22,53,63) : 그라운드입력단자. AVCC( 핀64) : AD변환기및포트 F에대한공급전압 - 4 -
20 AREF( 핀62) : ADC 참조전압 그림 2. ATmega128 의핀배치 ( 출처:ATMEL) PEN( 핀1) : SPI를활성화시키는단자로일반적인동작모드에서는사용하지않고파워온리셋시 0상태로유 지해 SPI를허용하게한다 포트A (PA7~PA0: 핀44-51) : 내부풀업저항이있는 8 비트양방향입출력단자. 외부메모리를둘경우에는 주소버스 (A7-A0) 와데이터버스 (D7-D0) 로사용. 포트B (PB7~PB0: 핀10-17) : 내부풀업저항이있는 8 비트양방향입출력단자. SPI용단자혹은 PWM 단자 로도사용된다 ( 표2 참조). 포트핀 표 2. 포트B 의다른기능설명 다른특수기능 PB7( 핀17) OC2,OC1C : 타이머 2용의비교신호출력혹은타이머 1용의비교신호C 출력 PB6( 핀16) OC1B : 타이머 1용의비교신호B 출력 PB5( 핀15) OC1A : 타이머 1용의비교신호A 출력 PB4( 핀14) OC0 : 타이머 0 용의비교신호출력 PB3( 핀13) MISO : SPI 채널의마스터데이터입력혹은슬레이브데이터출력신호단자 PB2( 핀12) MOSI : SPI 채널의마스터데이터출력혹은슬레이브데이터입력신호단자 PB1( 핀11) SCK : SPI 채널의마스터클럭출력혹은슬레이브클럭입력신호단자 PB0( 핀10) SS : SPI 태널의슬레이브선택입력신호단자 포트C (PC7~PC0: 핀35-42) : 내부풀업저항이있는 8 비트양방향입출력단자. 외부메모리를둘경우에는 주소버스 (A15-A8) 로사용된다
21 포트D (PD7~PD0: 핀25-32) : 내부풀업저항이있는 8 비트양방향입출력단자. 타이머용단자혹은외부인 터럽트용단자로도사용된다 ( 표3 참조). 포트핀 PD7( 핀25) T2 : 타이머2 클럭입력 PD6( 핀26) T1 : 타이머1 클럭입력 PD5( 핀27) XCK : USART1 외부클럭입출력 PD4( 핀28) ICP1 : 타이머 1 입력캡춰 표 3. 포트D 의다른기능설명 다른특수기능 PD3( 핀29) INT3/TXD1 : 외부인터럽트 3 혹은 USART1 송신 PD2( 핀30) INT2/RXD1 : 외부인터럽트 2 혹은 USART1 수신 PD1( 핀31) INT1/SDA : 외부인터럽트 1 혹은 2선방식의직렬인터페이스용데이터단자 PD0( 핀32) INT0/SCL : 외부인터럽트 0 혹은 2선방식의직렬인터페이스용클록단자 포트E (PE7~PE0: 핀2-9) : 내부풀업저항이있는 8 비트양방향입출력단자. 타이머용단자, 외부인터럽트, 아날로그비교기, USART 용단자로도사용된다 ( 표4 참조). 포트핀 표 4. 포트E 의다른기능설명 다른특수기능 PE7( 핀2) INT7/ICP3 : 외부인터럽트 7 혹은타이머3 입력캡춰 PE6( 핀3) INT6/T3 : 외부인터럽트 6 혹은타이머3 클럭입력 PE5( 핀4) INT5/OC3C : 외부인터럽트 5 혹은타이머 3용의비교신호C 출력 PE4( 핀5) INT4/OC3B : 외부인터럽트 4 혹은타이머 3용의비교신호B 출력 PE3( 핀6) AIN1/OC3A : 비교기 -입력혹은타이머 3용의비교신호A 출력 PE2( 핀7) AIN0/XCK0 : 비교기 + 입력혹은 USART0 외부클럭입출력 PE1( 핀8) PDO/TXD0 : 프로그램데이터출력(ISP 케이블의 MISO 와연결) 혹은 USART0 송신 PE0( 핀9) PDI/RXD0 : 프로그램데이터입력(ISP 케이블의 MOSI 와연결) 혹은 USART0 수신 포트F (PF7~PF0: 핀54-61) : 내부풀업저항이있는 5 비트양방향입출력단자. AD변환기혹은 JTAG 인터 페이스용단자로도사용된다 ( 표5 참조). 포트핀 다른특수기능 PE7( 핀54) ADC7/TDI : ADC 입력채널 7 혹은 JTAG 테스트용데이터입력단자 PE6( 핀54) ADC6/TDO : ADC 입력채널 6 혹은 JTAG 테스트용데이터출력단자 PE5( 핀54) ADC5/TMS : ADC 입력채널 5 혹은 JTAG 테스트용모드선택단자 PE4( 핀54) ADC4/TCK : ADC 입력채널 4 혹은 JTAG 테스트용클럭단자 PE3( 핀54) ADC3 : ADC 입력채널 3 PE2( 핀54) ADC2 : ADC 입력채널 2 PE1( 핀54) ADC1 : ADC 입력채널 1 PE0( 핀54) ADC0 : ADC 입력채널 0 표 5. 포트F의다른기능설명 포트G (PG4~PE0: 핀19, 18, 43, 34, 33) : 내부풀업저항이있는 8 비트양방향입출력단자. 외부메모리 접속을위한스트로브신호용, RTC(Real Time Counter) 타이머용발진기단자로도사용된다 ( 표5 참조)
22 포트핀 표 6. 포트G의다른기능설명 다른특수기능 PG4( 핀19) TOSC1 : 타이머 0의 RTC 기능사용시클럭발생을위한수정발진자접속단자 PG3( 핀18) TOSC2 : 타이머 0의 RTC 기능사용시클럭발생을위한수정발진자접속단자 PG2( 핀43) ALE : 외부메모리에접근할때하위주소값을래치하도록신호를출력 PG1( 핀34) RD : 외부테이터메모리를읽을때사용되는스트로브신호출력단자로사용 PG0( 핀33) WR : 외부데이터메모리에쓸때사용되는스트로브신호출력단자로사용 1.5. ATmega128 의메모리 ATmega128 의메모리는프로그램메모리와데이터메모리가분리된하바드구조로프로그램메모리는 128K바 이트의크기로 ISP 가가능한플래쉬롬이내장되어있다( 메모리맵은그림 3 의좌측참조). 데이터메모리는램과 EEPROM 으로나뉠수있는데그림3 의우측은데이터메모리의램의 2 가지가능한메모리맵구조를보여준다. 그림 3. ATmega128 의메모리맵( 출처: ATMEL) 플래시프로그램메모리 : 그림3 의좌측에보여진것처럼 16비트단위로접근가능한 64K바이트의주소공간 (0000 번지에서 FFFF 번지) 을갖는플래시롬이프로그램메모리로내장되어있다. 데이터메모리 : 데이터메모리는크게램과롬으로나뉠수있고램은그림3 의우측에보여진것처럼 32바 이트의범용레지스터 (0000번지에서 001F 번지), 64바이트의 I/O 레지스터, 그리고 4K의 SRAM이내장되어있고 롬은 EEPROM 으로 10만번쓰기가가능한 4K 바이트가내장되어있다. 그림3의우측에보여진것처럼이전의구 형 ATmega103 모델과의호환성을유지하기위하여 (4K - 100) 바이트의맵을사용하는 configuration B와내 장된 4K 바이트전부를사용하는 configuration A 모드( 노말모드) 를지원한다. 그림3의우측에보여진것처럼 60K 바이트까지외부램의연결이가능하다 프로그램메모리 구성 : 128K바이트의 번까지쓰기가가능한플래시롬으로그림3의좌측에보여진것처럼 16비트단위 로접근가능한 64K 바이트의주소공간 (0000 번지에서 FFFF 번지) 을갖는다. 부트로더섹션과응용프로그램섹션 으로나뉠수있다. 역할 : 16비트또는 32비트구조로되어있는각명령어가프로그램메모리에 1~2개의번지를차지하며저장 - 7 -
23 된다. 프로그래밍 : SPI 통신방식을이용한 ISP 에의하여프로그램을쓰거나, JTAG 에뮬레이터를사용하거나병렬 프로그래밍모드를이용하여프로그램을쓸수있다 데이터메모리 : 범용레지스터 구성 : 그림 3과 4와같이 32바이트로내부메모리의 00번지에서 1F 번지를차지한다. 역할 : 8051의 A레지스터와같은 ALU가따로있지않고 32개가모두 ALU역할을하여기본적인사칙연산을 수행하고일부의상수데이터를사용하는연산명령은 R16-R31 에서수행한다 X,Y,Z 레지스터 그림 4. 범용레지스터 ( 출처:ATMEL) 그림 4,5와같이 R26-R31 은각각 2개씩합쳐져서 3개의 16비트레지스터인 X,Y,Z 레지스터로사용될수있 다. 이들은데이터메모리의 16비트주소를간접지정하는포인터로사용되며 Z 레지스터 (R30, R31 의쌍) 는 LPM, ELPM, SPM 명령에서메모리값에접근할때사용한다. 그림 5. XYZ 레지스터 ( 출처:ATMEL) 데이터메모리 : I/O 레지스터 그림 3과 6에서처럼 64바이트로구성되며내장된각종 I/O 장치를제어하기위한레지스터로 IN, OUT 명령을 사용하여입출력장치에접근한다. 이들은그림 6의괄호에표시한것처럼 0x20번지에서 0x5F번지까지존재하지 만 IN, OUT 명령을사용할때는그림 6에표시한것처럼 0x00에서 0x3F 로지칭해야한다. 0x00(0x20) 번지에서 0x1F(0x3F) 번지에위치하는 32개의레지스터는 CBI, SBI, SBIC, SBIS 명령을사용하여비트어드레싱이가능하 다
24 상태레지스터 (SREG) 그림 6. ATmega128 의 I/O 레지스터 ( 출처:ATMEL) 상태레지스터 (SREG:Status REGister) 는 ALU의연산후상태와결과를표시하는레지스터로 8051의 PSW에 해당한다
25 비트7(I : Global Interrupt Enable) : 전체인터럽트를허용하도록설정하는비트로 SEI 및 CLI 명령으로이 비트를제어할수있다. 인터럽트처리가시작되면자동적으로클리어되고 RETI 명령을만나면원래상태로복구 된다. 개별인터럽트의허용은인터럽트마스크레지스터로설정한다. 비트6(T : Bit Copy Storage) : BLD, BST 명령을사용하여어느레지스터의한비트값의복사가가능하다. 비트5(H : Half Carry Flag) : 산술연산의가감산에서비트3에서올림수가발생하면 1 로세트. BCD 연산에 사용하며 8051 PSW레지스터의 AC 에해당한다. 비트4(S : Sign Bit) : 플랙 N과 V의 XOR(eXclusive OR) 값으로정수들의크기를판단할때사용한다. 비트3(V : 2's Complement Overflow Flag) : 2 의보수연산에서오버플로를표시한다. 비트2(N : Negative Flag) : 연산결과값의최상위비트가 1로되어 2의보수표현을사용하는경우연산결과 가음수임을표시한다. 비트1(Z : Zero Flag) : 연산결과값이 0 이되었음을표시한다. 비트0(C : Carry Flag) : 연산으로자리올림이나자리내림이발생하면 1 로세트된다 PSW레지스터의 CY 에해당한다 스택포인터 (SP) 서브루틴이나인터럽트호출시이들을처리하고다시본래위치로되돌아오기위한복귀주소인프로그램카운 터(PC) 값의 SRAM 내의스택위치, push 또는 pop할 SRAM 내의스택위치를표시한다. C프로그램에서지역변수 를저장하거나어셈블리프로그램에서임시데이터를저장하는용도로도사용한다. 초기값은 0x0000인데사용자프로그램에서 SP의초기값은적어도 0x0100 번지이상의값으로설정한다. PC값이저장될때는 SP값이 1만큼증가하고증가된 SP 값이가리키는내부램에하위바이트 (PCL) 가먼저저장 되고다시 SP값이 1만큼증가하고증가된 SP 값이가리키는내부램에상위바이트 (PCH) 가저장된다. push와 pop은 1바이트데이터만이대상이되는데 push 명령이내려지면 1바이트데이터를저장하기전에먼 저 SP값이 1만큼증가하여증가된 SP값이가리키는 SRAM내에데이터가저장되고 pop 명령이내려지면현재 SP값이가리키는내부램에서 1바이트데이터를꺼낸후에 SP값이 1 만큼감소한다 RAMPZ(RAM Page Z select) 레지스터 Z 레지스터 (R30, R31 의쌍) 로 LPM, ELPM, SPM 명령을사용해메모리값에접근할때 RAMPZ0=1 로하면 0x8000 에서 0xffff 에접근하고 RAMPZ0=0 로하면 0x0000 에서 0x7fff 에접근할수있다 데이터메모리 : 확장 I/O 레지스터 ATmega128 에추가된각종 I/O를제어하기위한레지스터로 160 바이트 (0x60에서 0xff 번지) 로 I/O레지스터처 럼 IN, OUT 명령을사용할수없고 LD, LDS, LDD, ST, STS, STD 명령어로접근해야한다( 그림7 참조) 데이터메모리 : 내부 SRAM 구성 : ATmega128 은 4K의 SRAM 이내장되어있다. 그림3 의우측에보여진것처럼이전의구형 ATmega103 모델과의호환성을유지하기위하여 (4K - 100) 바이트의맵을사용하는 configuration B와내장 된 4K 바이트전부를사용하는 configuration A 모드( 노말모드 ) 를지원한다. 노말모드의경우 0x0100 에서 0x10ff 번지를점유한다. 접근법 : LS, LDS, LDD 또는 ST, STS, STD의명령을사용하여 16비트직접데이터에의한번지값을지정 하여접근하거나 역할 X,Y,Z 레지스터를사용하여간접지정으로접근한다. : 프로그램에서사용되는사용자변수의저장영역이나스택영역으로사용된다
26 데이터메모리 : EEPROM 그림 7. ATmega128 의확장 I/O 레지스터 ( 출처:ATMEL) ATmega128 은 EEPROM 으로 10만번쓰기가가능한 4K 바이트가내장되어있는데내부램, I/O, 확장 I/O 레 지스터와는별개의주소가할당되어있어 EEPROM 용주소레지스터 (EEARH, EEARL), 데이터레지스터 (EEDR),
27 제어레지스터 (EECR) 를이용해접근한다 EEAR 레지스터 EEAR 의비트12 에서비트 15 : 항상 0 으로읽히며향후버젼을위해유보되어있는비트들이다. EEAR 의비트11(EEAR11) 에서비트0(EEAR0) : 읽고쓸 EEPROM 의 4K 바이트의주소지정에사용된다. 초기 값은부여되지않고임의의값이될수있다. 항상 EEPROM 에접근하기전에주소값을지정하도록한다 EEDR 레지스터 쓰기의경우에는 초기값은 0x00 이다 EECR 레지스터 비트7-비트 4 : 유보된비트들이다. EEAR 의주소에쓰여질값을임시로저장하거나읽기의경우에는읽힌값을저장한다. 비트3(EERIE : EEPROM Ready Interrupt Enable) : 1로설정되면 EEWE 비트가 0이될때 EEPROM Ready 인터럽트를발생하는기능을가진다. 비트2(EEMWE : EEPROM Master Write Enable) : EEWE를 1로설정할때 EEPROM에쓰기가가능하도록 허용할지여부를결정한다. 비트1(EEWE : EEPROM Write Enable) : EEMWE 가 1로설정되면 EEWE 가 1로되고나서 4클록사이클이 내에 EEDR의데이터를 EEAR이가리키는 EEPROM 의주소에쓴다. 쓰기가완료되면 EEMWE는자동적으로 0 이된다. 비트0(EERE : EEPROM Read Enable) : EEPROM의읽기스트로브로서 EEAR 레지스터에적절한주소값이 부여된경우 EERE를 1로해야 EEPROM 읽기가시작될수있다 EEPROM 쓰기과정 다음의과정을거쳐쓰기가이루어지는데쓰기가수행되고나면 CPU는다음명령을실행하기전에 2클럭동 안멈추고 EEPROM 쓰기는 CPU 가플래시메모리에쓰기를할때는불가능하다. 1EEWE 가 0 일될때까지기다린다. 2SPMCSR 레지스터의 SPMEN비트가 0 이될때까지기다린다. 3쓰기할 EEPROM 주소를 EEAR 레지스터에저장한다. 4쓰기할 EEPROM 데이터를 EEDR 레지스터에저장한다. 5EECR레지스터의 EEMWE는 1로 EEWE는 0 으로설정한다. 64클럭사이클이내에 EEWE 를 1 로설정한다. 그리고쓰기가수행된다. 위의쓰기과정에서 3, 4는순서가바뀌어도상관없다. 5, 6 과정중에인터럽트가발생되면 EEMWE 의동작 제한시간이초과되어쓰기동작이실패하게되므로이를방지하기위해 의 I비트를 0 으로설정하여인터럽트발생을금지시켜야한다. 3-6 과정동안에는상태레지스터 SREG EEPROM 쓰기과정중에파워다운슬립모드에진입하면파원다운슬립모드에제대로진입하지못하게되므 로파워다운모드에진입하려면 EEPROM 쓰기가완료되었는지를확인해야한다. 전원전압이낮은동안에는 EEPROM 데이터가손상될수있다. 이를방지하기위해내부 Brown-out 감지기 를작동하게하고전원전압이낮아지면리셋되도록하드웨어를구성하는것도괜찮다 EEPROM 읽기과정 1EEWE 가 0 일될때까지기다린다
28 2읽기할 EEPROM 주소를 EEAR 레지스터에저장한다. 3EECR레지스터의 EERE를 1 로설정한다. 4EEPROM 데이터를 EEDR 레지스터로부터읽는다 외부데이터메모리 ATmega128 은노말모드에서 0x1100-0xffff 번지에외부데이터메모리로사용가능하며이들은외부램, 외부 플래쉬롬또는 LCD나 AD 변환기와같은주변장치의인터페이스용으로사용할수있다. 이를위해다음과같은 기능이제공된다. 1 주변장치와적절한인터페이스를위한 0-3 의대기사이클을지정할수있다. 2 2 개의섹터로외부데이터메모리를분할하고이들에독립적인대기사이클을지정할수있다 비트주소의상위바이트에중필요한갯수의비트만을주소버스로동작하게할수있다. 4 데이터버스의신호들이동작할때전류소비량이감소되도록 외부메모리인터페이스 외부램연결을위한핀 : MCUSR 레지스터를이용해서설정한다. 1 PA7~PA0( 핀44~ 핀51) : 8051의포트0 처럼하위주소와데이터버스로사용된다. 2 PC7~PC0( 핀35~ 핀42) : 8051의포트2 처럼상위주소버스로사용된다. Bus-keeper 기능을설정할수있다. 3 ALE(Address Latch Enable, PG2, 핀43) : 외부메모리에접근할때 PA에서출력되는하위주소값을래치할 수있도록 CPU에서 1 레벨값을출력해준다. 4 RD( PG1, 핀34) : 외부테이터메모리를읽을때사용되는스트로브신호출력단자로사용 5 WR (PG0, 핀33) : 외부데이터메모리에쓸때사용되는스트로브신호출력단자로사용 외부램연결블록선도 : 그림 8 은외부램과의연결을보여준다. 외부램읽기( 쓰기) 과정 : 그림 8. 외부램의연결( 출처:ATMEL) 1외부램읽기명령이내려지면 ALE신호가 1레벨이되고 Port A(AD7:0) 는하위주소버스로하위주소값을 내보내고 Port C(A15:8( 는상위주소버스로페이지값을출력시킨다. 2ALE 가 1레벨인동안하위주소값은래치되어 ALE가 0 레벨이된후에도래치에값이보존된다. 3읽기신호 RD ( 쓰기신호 WR) 가 0레벨로변하여활성상태로되면 4외부램의 Output Enable( 혹은 Write Enable) 이활성화되고외부램의데이터값이 Port A를통해 CPU로 읽혀지도록 ( 램에쓰여지도록 ) 한다. ( 외부램과의인터페이스는기본적으로 3클럭사이클에수행되나소프트웨어적 으로 1-3 개의여분의대기사이클을줄수도있다.)
29 MCUCR 레지스터 MCUCR(MCU Control Register) 레지스터는 CPU의전체적인기능을설정하는데비트7과 6을사용해서외부 데이터메모리영역을설정할수있다. 비트7(SRE:external SRAM/XMEM Enable) : 1로세트하면 PA7-PA0( 핀44- 핀51), PC7-PC0( 핀35- 핀42), ALE(PG2, 핀43), RD( PG1, 핀34), WR(PG0, 핀33) 핀들을외부메모리와인터페이스를위한핀들로설정하게 되고 0 으로하면병렬포트로동작하도록한다. 비트6(SRW10:Wait-state Select Bit for Upper Sector) : 외부메모리와인터페이스할때외부데이터의 Upper 섹터에부여하는여분의대기사이클의수를 XMCRA 레지스터의 SRW11 비트와조합되어설정한다. [SRW11:SRW10]=00 일때대기사이클은 0 개, 01일때 1 개, 10일때 2 개, 11일때 3 개를준다 XMCRA 레지스터 XMCRA(eXternal Memory Control Register A) 레지스터는외부데이터메모리영역을분할하거나대기사이 클의수를설정할수있다. 비트6(SRL2)~ 비트4(SRL0) : 외부데이터메모리영역을 Lower 와 Upper 2개의섹터로분할하여각섹터에 별도로대기사이클의수를설정할수있도록한다. 그림 9. SRL2-SRL0 를이용한메모리분할( 출처:ATMEL) 비트3~ 비트2(SRW01~SRW00:Wait-state Select Bit for Lower Sector) : 외부메모리와인터페이스할때 외부데이터의 Lower 섹터에부여하는여분의대기사이클의수를설정한다. [SRW01:SRW00]=00 일때대기 사이클은 0 개, 01일때 1 개, 10일때 2 개, 11일때 3 개를준다. 비트1(SRW11:Wait-state Select Bit for Upper Sector) : 외부메모리와인터페이스할때외부데이터의 Upper 섹터에부여하는여분의대기사이클의수를 XMCRA 레지스터의 SRW11 비트와조합되어설정한다. [SRW11:SRW10]=00 일때대기사이클은 0 개, 01일때 1 개, 10일때 2 개, 11일때 3 개를준다 XMCRB 레지스터 XMCRB(External Memory Control Register B) 레지스터는버스키퍼기능을설정하고외부메모리주소의상 위바이트에서어느부분까지가주소지정에사용되는지를설정한다. 비트7(XMBK:eXternal Memory Bus-Keeper enable) : 1로세팅되면 PA7-PA0( 핀44-핀 51) 의값들이보존 되는버스키퍼기능을활성화시킨다. 비트6~ 비트4 : 유보된비트들이다. 비트2~ 비트0(XMM2~0 : external Memory high Mask) : 60K이하의외부메모리를사용하는경우상위주소 버스로사용되는 port C의일부분만이주소버스로사용되도록하고나머지는입출력포트로설정하는데사용된
30 다. 만약 [XMM2:XMM1:XMM0]=111 로하면포트 C 모두를입출력포트로설정하고, 110이면 PC0와 PC1만을 주소버스로설정하고, 101이면 PC0~PC2, 100이면 PC0~PC3, 011이면 PC0~PC4, 010이면 PC0~PC5, 001이 면 PC0~PC6 을주소버스로설정하고, 000이면포트 C 모두를주소버스로설정한다 메모리 lock 비트 메모리의보호를위해설정하는데사용하는 1바이트구조의비트로디폴트로비트값이 1로되어있고프로그램 하면 0으로설정되고 chip erase명령에의해 1 로환원된다. 그림 10은 lock 비트의구성을보여준다. 그리고그림 11은 lock 비트값에따른모드설정값과각모드에따른메모리보호기능을보여준다. 그림 10. Lock bit 의구성( 출처:ATMEL) 그림 11. Lock bit 설정에따른기능 ( 출처:ATMEL)
31 퓨즈비트 ATmega128 의기본적인설정용으로사용되며 Extended Fuse, Fuse High, Fuse Low바이트로모두 3개의 바이트로구성되어있다. 디폴트로비트값이 1로되어있고프로그램하면 0으로설정되고 chip erase 명령에의해 영향을받지않으므로메모리 Lock비트의 LB1을 0 으로하여퓨즈비트를변경할수없도록할수있다. 퓨즈비 트를먼저설정하고메모리 Lock 비트를설정해야한다 Extended Fuse Byte 비트1~0 만사용하여 ATnega103 과호환모드의설정, Watchdog 타이머동작의설정에사용한다. 비트1(M103C) : 디폴트상태로는 0으로설정되어 ATmega13 과호환모드로되어있다. 1로프로그램하면노 말모드로 ATmega128 의고유기능을전부활용할수있다. 비트0(WDTON: WatchDog Timer ON) : 디폴트상태로는 1로설정되어워치독타이머기능이동작하도록 한다 Fuse High Byte 비트7(OCDEN:On Chip Debug enable) : 디폴트상태로는 1로설정되어 On chip debug 를허용한다. 비트6(JTAGEN : JTAG ENable) : 디폴트상태로는 1로설정되어 JTAG 를허용한다. 비트5(SPIEN : SPI Enable) : 디폴트상태로는 1로설정되어 SPI 를통한직렬프로그래밍을허용한다. 비트4(CKOPT) : 클럭옵션을설정한다 (1.6 절참조). 비트3(EESAVE) : 디폴트상태로는 1로설정되어 Chip Erase 할때 EEPROM 의내용을보호한다. 비트2~1(BOOTSZ1~0) : 부트사이즈를선택하는데사용한다 ( 그림12 참조). 비트0(BOOTRST) : Reset vector 의선택에사용한다. 디폴트상태로는 1로설정되어 0x0000 번지를리셋주 소로하고 0이면그림 12 에주어진값을리셋주소로사용한다 Fuse Low Byte 그림 12. 부트사이즈의선택( 출처:ATMEL) 비트7(BODLEVEL) : 디폴트상태로는 1로설정되어 Brown Out Detector 의기능을레벨값에따라트리거되 도록설정한다. 비트6(BODEN: Brown Out Detector ENable) : 디폴트상태로는 1로설정되어 Brown Out Detector 의기능 을허용한다. 비트5~4(SUT1~0) : Start up 시간을설정한다 (1.6~7 절참조). 디폴트상태로는 10 의값을갖는다. 비트3~0(CKSEL3~0) : 클럭소스를설정한다 (1.6 절참조). 디폴트상태로는 0001의값을갖고있어디폴트 상태로는 1MHz 의내부 RC 발진기를통한클록을사용하도록설정되어있다
32 1.6. 시스템클록과슬립모드 클록분배 그림13 에보여진것처럼 ATmega128 은다양한소스에의해클록을발생시키고분배가가능하다. 또한내부의 각부분은모두동시에클록이필요치않아소비전력을절약시키기위해개별적으로공급을차단할수도있다. CPU 클록( ) : 범용레지스터, 상태레지스터, 데이터메모리와같은 AVR 핵심적인동작과관련된클록으 로공급을차단하면이들의동작을멈추게한다. I/O 클록( ) : 타이머, SPI, USART 등 I/O 모듈대부분에서사용되는클록이다. 외부인터럽트모듈에서도 사용되나일부외부인터럽트는 I/O 클록의공급이차단되어도인터럽트처리가된다. 플래쉬클록 ( ) : 플래쉬롬과의인터페이스를제어하며보통 CPU 클록과동시에사용된다. 비동기타이머클록 ( ) : 외부 32kHz 수정발진기를소스로하는비동기타이머용클록이다. AD 변환기클록( ) : AD변환기용의클록으로 CPU와 I/O클록을정지시키고 AD변환을이루어지도록하 여노이즈를줄일수있도록한다 클록발생과선택 그림 13. ATmega128 의클록분배( 출처:ATMEL) 5가지의클록발생원이존재하며 CKSEL3~0 와 SUT1~0, XDIV레지스터를이용하여클록발생원과주파수를설 정한다 내부 RC( 디폴트클록 ) 발진기 XTAL1, XTAL2 단자의연결 : 내부발진기를사용하므로 XTAL1, XTAL2 에는아무것도연결하지않는다. CKOPT 의설정 : 퓨즈하이바이트의비트4 CKOPT 를 1 로설정해야한다
33 CKSEL3~0 의설정 : 퓨즈로우바이트의비트3~0(CKSEL3~0) 의값들을 0001로하면 1MHz, 0010으로하 면 2MHz, 0011로하면 4MHz, 0100으로하면 8MHz 의클록을사용한다. 디폴트상태로는 0001의값을갖고 있어디폴트상태로는 1MHz 의내부 RC 발진기를통한클록을사용하도록설정되어있다. SUT1~0 의설정 : 퓨즈로우바이트의비트5~4(SUT1~0) 의값들을 11로설정하는것은유보되어있고나머 지값들(00,01,10) 으로하면기동시간이 6 클럭으로설정된다. 또한 00로의설정은 BOD(Brown Out Detector) 사용에권장되고, 01로하면리셋의경우추가적으로 4.1 ms의지연이발생하고 Fast rising power 사용에권 장되고, 10로하면리셋의경우추가적으로 65ms 의지연이발생하고 slowly rising power 사용에권장된다. 내부발진기를통해발생되는클럭은주파수가부정확하므로확장된 I/O레지스터인 OSCCAL(OSCillator CALibration) 레지스터를조정해서사용한다. OSCCAL 의값이 0x00이면 CKSEL3~0 으로설정한값의 50%~100% 의주파수값이클록으로사용되며, 0x7F이면 75%~150%, 0xFF이면 100%~200% 의주파수값이클 록으로사용된다 외부 RC 발진기 XTAL1, XTAL2 단자의연결 : 그림 14와같이연결하고커패시터의값은적어도 22pF 이상으로한다. 발진주파수 그림 14. 외부 RC 발진기의연결( 출처:ATMEL 사) : 클럭의주파수값은 로결정된다. CKOPT 의설정 : 0으로설정하면내부의 36pF 커패시터가사용되므로그림 18의커패시터 C를연결하면안 된다. CKSEL3~0 의설정 : 그림 15참조 SUT1~0 의설정 : 그림 16 참조. 그림 15. 외부 RC 발진기동작모드 ( 출처:ATMEL) 그림 16. 외부 RC 발진기의기동시간선택( 출처:ATMEL)
34 외부수정발진기 XTAL1, XTAL2 에수정이나세라믹 resonator 를연결하여사용하는경우이다. XTAL1, XTAL2 단자의연결 : 그림 17과같이연결하고커패시터의값은그림 18 을참조한다. CKOPT 의설정 : 그림 18 참조. 그림 17. 외부수정발진기의연결( 출처:ATMEL) CKSEL3~0 의설정 : 그림 18과 19 참조 그림 18. 외부수정발진기동작모드 ( 출처:ATMEL) SUT1~0 의설정 : 그림 19 참조 저주파수정발진기 그림 19. 수정발진기의기동시간선택( 출처:ATMEL) XTAL1, XTAL2 에저주파수수정을연결하여사용하는경우이다. XTAL1, XTAL2 단자의연결 : 그림 17과같이연결하고수정은 kHz 를사용한다. CKOPT 의설정 : 0으로설정하면내부의 36pF 커패시터가사용되므로그림 14의커패시터들을연결하면안
35 된다. CKSEL3~0 의설정 : 1001 로설정한다. SUT1~0 의설정 : 그림 20 참조 외부클록 그림 20. 저주파수정발진기의기동시간선택( 출처:ATMEL) XTAL1, XTAL2 단자의연결 : 외부의클럭신호를 XTAL1 단자에연결하고 XTAL2 단자는비워둔다. CKOPT 의설정 : 0으로설정하면내부의 36pF 커패시터가사용된다. CKSEL3~0 의설정 : 0000 으로설정한다. SUT1~0 의설정 : 퓨즈로우바이트의비트5~4(SUT1~0) 의값들을 11로설정하는것은유보되어있고나머 지값들(00,01,10) 으로하면기동시간이 6 클럭으로설정된다. 또한 00로의설정은 BOD(Brown Out Detector) 사용에권장되고, 01로하면리셋의경우추가적으로 4.1 ms의지연이발생하고 Fast rising power 사용에권 장되고, 10로하면리셋의경우추가적으로 65ms 의지연이발생하고 slowly rising power 사용에권장된다. 유의점 : 클럭주파수가 2% 이상변동하면시스템의동작이불안정해지므로변동이없도록해야한다 XDIV 레지스터를이용한클럭주파수조정 XDIV(Xtal DIVide) 레지스터를이용하여클럭발생원을 2~129 로분주한주파수값을시스템클럭으로사용할 수있도록설정할수있다. 비트7(XDIVEN:Xtal DIVide ENable) : 1 로설정되면클럭발생원의주파수값(clk) 을 XDIV6~0 의값으로설정 한 d 값을이용하여다음의공식에따라모든클럭의주파수값 (f) 으로설정한다. 비트6~0(XDIV6~0) : 클럭주파수의분주비를설정한다 Sleep 모드 전원을절약할수있는 그림 21. 슬립모드의설정( 출처:ATMEL) 6 가지의다양한슬립모드가제공된다. MCUCR 레지스터를설정하여모드를선택하고 SLEEP 명령을실행하여슬립모드에돌입하도록한다
36 MCUCR 레지스터를이용한모드설정 MCUCR(MCU Control Register) 의비트5(SE), 비트4,3,2(SM1,SM0,SM2) 를이용해모드를설정한다. 비트5(SE:Sleep Enable) : 디폴트는 0으로 1로세트되면 SLEEP 명령시슬립모드의돌입이허용한다. 비트4,3,2(SM1,SM0,SM2) : 그림 21 과같은형태로값을조절하여모드를설정할수있다 Idle 모드 CPU의동작은멈추지만 SPI, USART, 아날로그비교기, ADC, TWI, 타이머, 워치독, 인터럽트의동작은유지 된다. 클럭은차단되지만나머지클럭은공급된다 ADC noise reduction 모드 CPU의동작은멈추지만 ADC, TWI, 타이머 0, 워치독, 인터럽트의동작은유지된다. 클럭은차단되지만나머지클럭은공급된다. ADC가잡음에영향을덜받아서정밀하게동작할수있도록하는모 드로 ADC의동작이활성화된경우 ADC noise reduction 모드로의돌입은 ADC 변환이자동으로시작된다 Power-down 모드 외부수정발진기또는세라믹 resonator 의동작이정지되며 TWI, 워치독, 인터럽트의동작은유지된다. 모든 클럭이차단되어비동기모듈의동작만이가능하다. 이모드가해제될때는클럭이안정적으로되기위해충분한 여유기동시간이필요한데이를사용자가지정할수있다 Power-save 모드 Power-down 모드와유사하나 ASSR 레지스터의 AS0비트를 1로설정하여타이머0을 TOSC1, TOSC2 단자로 입력되는외부클럭에의하여비동기로동작시킬때사용하는것이다른점이다. 클럭을제외한모든클 럭이차단된다 Standby 모드 외부수정발진기또는세라믹 resonator 을클럭발생원으로한경우에만가능한슬립모드로 Power-down 모드 와유사하나발진기가동작하는것이다르다. 해제되어정상동작이개시되는데 6 개의클럭사이클만이소요된다 Extended Standby 모드 외부수정발진기또는세라믹 resonator 을클럭발생원으로한경우에만가능한슬립모드로 Power-save 모드 와유사하나발진기가동작하는것이다르다. 해제되어정상동작이개시되는데 6 개의클럭사이클만이소요된다. 그림 22. 슬립모드의동작요약( 출처:ATMEL)
37 슬립모드의동작요약 동작 : MCUCR 의 SE를 1로세트하고 SM2~0 을그림 21에따라모드를설정하고 SLEEP 명령어를실행시킨 다. 6개의동작모드 Idle, ADC noise reduction, Power-down, Power-save, Standby, Extended Standby 동 작요약은그림 22 에주어졌다. 인터럽트에의한해제 : 슬립모드안에서인터럽트를만나면 MCU가동작을시작하고슬립모드가해제되는데 기동시간이외에 4사이클이더경과한후에동작이개시되고인터럽트서비스를다실행하고슬립모드에돌입하 도록한이전의 SLEEP 명령의바로뒤에이어지는명령으로복귀된다. 해제된모든레지스터와메모리에있는 내용은슬립모드이전의값이보존된다. 리셋에의한해제 : 슬립모드에서리셋이발생하면슬립모드가해제되고리셋동작이수행된다 Reset 과 Watchdog 타이머 리셋 정상적으로동작하고있는마이컴이리셋되면모든 셋벡터에서시작된다. 리셋은 5 가지의발생원이존재한다. I/O레지스터값이디폴트값으로초기화되고프로그램은리 그림 23. 리셋관련내부회로블록선도 ( 출처:ATMEL)
38 1 파워온리셋 : 공급전원이그림 24에정의된 이하일때리셋되는것. 2 외부리셋 : RESET핀에 50ns 이상동안그림 24에정의된 이하의신호가입력되면리셋되는것 3 Brown-out 리셋 : 공급전원이 2마이크로초이상동안그림 24에정의된 이하로떨어져 Brown-out 감 지기가작동해리셋되는것. 4 워치독리셋 : 워치독타이머가지정한주기이상이경과되어워치독기능이동작할때리셋되는것 5 JTAG AVR 리셋 : JTAG 이연결되어있고 JTAG 명령 AVR_RESET 명령에따라선택된 JTAG 리셋레지스 터에논리 1이저장되어있는경우리셋되는것 파워온리셋 (POR) 전원투입후제대로리셋이되지않으면 그림 24. 리셋관련변수( 출처:ATMEL) PC와레지스터들이제대로초기화되지못하여마이컴은임의의위 치에서명령을시작하게되는데이를막기위해전원투입후자동으로리셋이되도록하는것을파워온리셋이 라한다. POR회로는 벨로올라가지못하고그림 보다공급전원이작으면동작이시작되는데공급전원이투입되고나서곧바로정상적인레 25처럼 보다작으므로 POR회로가작동되어파워온리셋동작이시작되고공 급전원이 에도달하면시간지연카운터를동작시켜일정한시간 동안리셋을유지시킨다 외부리셋 그림 25. 파워온리셋동작타이밍도 ( 출처:ATMEL) RESET핀에 50ns 이상동안그림 24에정의된 이하의신호가입력되면리셋이시작되는데그림 26에 서처럼리셋신호가저전압을유지하다가 이상으로올라가면시간지연카운터를동작시켜일정한시간
39 이부가적으로경과될때까지리셋을유지시킨다 Brown-out 리셋 그림 26. 외부리셋동작타이밍도 ( 출처:ATMEL) 마이컴내부에있는저전압검출회로 (BOD:Brown-Out Detector) 가공급전원이 2마이크로초이상동안그림 24에정의된 이하로떨어지면발생된다. 그림 27의동작타이밍도처럼발생하는데전압스파이크에의한오동작을줄이기위해히스테리시스특성을 갖도록하여전압이감소하여 이하로될때리셋동작이시작되고전압이증가하여 이상으로된후시간지연카운터를동작시켜일정한시간 이부가적으로경과될 때까지리셋을유지시킨다. 그림 27. 저전압검출리셋동작타이밍도 ( 출처:ATMEL) BOD 기능은 1.5.9절에설명된 Fuse Low byte의 BODEN 비트를 1로하여활성화시킬수있고 BODKEVEL 비트에따라그림 워치독리셋 24 처럼설정할수있다. 워치독타이머가지정한주기이상이경과되면그림 28처럼 1클럭사이클의리셋펄스가발생하여리셋동작이 시작되고리셋펄스가끝나면시간지연카운터를동작시켜일정한시간 이부가적으로경과될때까지리셋을 유지시킨다. 그림 28. 워치독리셋동작타이밍도 ( 출처:ATMEL)
40 MCUCSR 레지스터 MCUCSR(MCU Control and Status Register) 레지스터는마이컴의리셋발생원에대한정보를제공한다. 비트4(JTRF:JTAG Reset Flag) : JTAG 리셋이발생한경우 1 로세트된다. 파워온리셋이나 0을써넣음으로 써클리어된다. 비트3(WDRF:Watch Reset Flag) : 워치독리셋이발생한경우 1 로세트된다. 파워온리셋이나 0을써넣음으 로써클리어된다. 비트2(BORF:Brown-Out Reset Flag) : Brown-out 리셋이발생한경우 1 로세트된다. 파워온리셋이나 0을 써넣음으로써클리어된다. 비트1(EXTRF:EXTernal Reset Flag) : 외부리셋이발생한경우 1 로세트된다. 파워온리셋이나 0을써넣음 으로써클리어된다. 비트0(PORF:Power-On Reset Flag) : 파워온리셋이발생한경우 1 로세트된다. 파워온리셋이나 0을써넣 음으로써클리어된다 워치독타이머 워치독타이머의구성 역할 : 프로세서가안정적으로동작하는지감시하는기능을수행한다. 프로세서에이상이생겨일정시간마다 워치독타이머가리셋되지않게되는경우시스템을리셋시켜마이컴의안정적인동작을보장하도록한다. 워치 독타이머의리셋은 WDR 명령을실행하거나워치독의동작을금지시키거나마이컴이리셋된는경우리셋된다. 구성 : 그림 29처럼구성되어마이컴내부의 RC발진기와는별개로내장되어있는워치독발진기와그곳에서 만들어지는 1MHz 클럭을받아이를 8 가지로분주하는워치독프리스케일러, WDTCR레지스터의설정값에따 라마이컴리셋을발생시키는논리회로로구성된다 WDTCR 레지스터 그림 29. 워치독타이머의구성( 출처:ATMEL) 비트4(WDTOE:WatchDog Turn-Off Enable) : 디폴트값은 0 이다. WDE비트가 0일때 1 로세트되어야한다. 그렇지않으면워치독은비활성화된다. 1로세트되면 4 클록이지난후에하드웨어적으로클리어된다. 안전레벨 1과 2에서프리스케일러비트를바꾸는경우 1 로세트되어야한다. 비트3(WDE:WatchDog Enable) : 디폴트값은 0 이다. 1로세트되면워치독타이머가활성화되고 0으로클리 어되면비활성화된다. WDE는 WDCE 비트가 1 로세트된경우에만클리어될수있다
41 비트2~0(WDP2~0: Watch-Dog timer Prescaler2~0) : 디폴트값은 0 이다. 워치독타이머가활성화된경우 프리스케일러를그림 30 처럼설정한다 워치독의설정 그림 30. 워치독타이머프리스케일러의설정( 출처:ATMEL) 워치독타이머의안전레벨설정 : 절에소개된 Etended Fuse Byte의비트들값으로안전레벨0, 1, 2 로그림 31 에보여진것처럼설정할수있다( 퓨즈의비트값들은프로그램되면 0이되고프로그램되지않으면 1). 그림 31. 워치독타이머의설정( 출처:ATMEL) 안전레벨0 : ATmega103 과호환모드로그림 31 에보여진것처럼초기에는워치독이금지되어있다. WDE를 1 로세트하면워치독이허용된다. WDP2~0를바꿔즉프리스케일러의값을바꿔타임아웃주기를변경시키는 것에는제한이없으나워치독타이머를비활성화시키려면다음의과정을거쳐야한다. 1WDTCR 레지스터에동시에 WDCE=1, WDE=1 로세트시킨다. 2 4클록사이클이내에 WDE=0 으로클리어시킨다. 안전레벨 1 : 디폴트상태이다. 그림 31 에보여진것처럼초기에는워치독이금지되어있다. WDE를 1로세트 하면워치독이허용된다. WDP2~0 를바꿔즉프리스케일러의값을바꿔타임아웃주기를변경시키거나워치독 타이머를비활성화시키려면다음의과정을거쳐야한다. 1WDTCR 레지스터에동시에 WDCE=1, WDE=1 로세트시킨다. 2 4클록사이클이내에 WDE비트와 WDP2~0 비트에원하는값을쓴다. 안전레벨 2 : 그림 31에보여진것처럼초기에워치독이허용되어있고 WDE가 1로세트되어있고워치독을 비활성화시킬수없다. WDP2~0 를바꿔즉프리스케일러의값을바꿔타임아웃주기를변경시키려면다음의과 정을거쳐야한다. 1WDTCR 레지스터에동시에 WDCE=1, WDE=1 로세트시킨다. 2 4클록사이클이내에 WDCE=0 으로클리어시키고 WDP2~0 비트에원하는값을쓴다
42 2.1. 명령어분류와주소지정방식 명령어기본형식 2. ATmega128 시스템개발기초 : 명령어는명령코드 (OP 코드:OPeration code) 와오퍼랜드 (operand) 로구성되는데명령코 드는명령그자체이고오퍼랜드는명령의대상으로레지스터, 메모리, 상수값이사용될수있으며명령에따라 오퍼랜드없이명령코드에포함되는경우가있다. 명령코드는대부분 16비트의길이이지만 LDS, STS, JMP, CALL 4개의명령어는 32 비트이다. 실행시간에따른분류 : 실행하는데 1~4 기계사이클를요구하여 1 1 기계사이클명령어( 예: ADD Rd, Rr) 와 2 2 기계사이클명령어( 예:ADIW Rdl, K) 33 기계사이클명령어 ( 예:ELPM 혹은 LPM) 44기계사이클명령어 ( 예:RETI 혹은 RET) 로나뉠수있다. 기능에따른분류 : 데이터전송, 산술과논리연산, 분기, 비트조작, MCU 제어명령으로나눌수있다. 1 데이터전송명령 : 내부램이나외부램의데이터전송을위한명령으로 MOV, MOVW, LDI, LD, LDD, LDS, ST, STD, STS, LPM, ELPM, SPM, IN, OUT, PUSH, POP 등 16 가지가관계된다. 2 산술과논리연산명령 : 가감산, 증감, 곱하기등산술연산과논리연산명령어로 ADD, ADC, ADIW, SUB, SUBI, SBC, SBCI, SBIW, AND, ANDI, OR, ORI, EOR, COM, NEG, SBR, CBR, INC, DEC, TST, CLR, SER, MUL, MULS, MULSU, FMUL, FMULS, FMULSU 등 28 가지가관계된다. 3 분기명령 : 조건을따져분기하거나프로그램의실행순서를바꾸는명령으로 RJMP, IJMP, JMP, RCALL, ICALL, CALL, RET, RETI, CPSE, CP, CPC, CPI, SBRC, SBRS, SBIC, SBIS, BRBS, BRBC, BREQ, BRNE, BRCS, BRCC, BRSH, BRLO, BRMI, BRPL, BRGE, BRLT, BRHS, BRHC, BRTS, BRTC, BRVS, BRVC, BRIE, BRID 등이관계된다. 4 비트조작명령 : 1비트값에대한비트조작불리안연산명령으로 SBI, CBI, LSL, LSR, ROL, ROR, ASR, SWAP, BSET, BCLR, BST, BLD, SEC, CLC, SEN, CLN, SEZ, CLZ, SEI, CLI, SES, CLS, SEV, CLV, SET, CLT, SEH, CLH 등이관계된다. 5 MCU 제어명령 : NOP, SLEEP, WDR, BREAK 등 4개의 MCU 제어관련명령 오퍼랜드의주소지정방식 1 직접상수지정방식 : 오퍼랜드로서상수값을사용하는방식이다. 2 I/O 직접주소지정방식 : 오퍼랜드로서 64개의 I/O 레지스터의주소값을직접지정한다. 3 레지스터직접주소지정방식 : R0~R31 이오퍼랜드로서지정된다. 4 데이터직접주소지정방식 : 오퍼랜드로서데이터메모리영역의 16 비트주소값을직접지정한다. 5 데이터간접지정방식 : 오퍼랜드의주소를저장하고있는 X,Y,Z 레지스터를이용하여간접적으로지정한다. 6 선증가데이터간접지정방식 : 데이터간접지정방식과비슷하나 X,Y,Z레지스터값을먼저 1 만큼감소시킨다. 7 증가시킨다. 후증가데이터간접지정방식 : 데이터간접지정방식과비슷하나 X,Y,Z 레지스터값을명령실행후에 1만큼 8 9 변위데이터간접지정방식 : 데이터간접지정과비슷하나 Y,Z 레지스터값에변위값을합하여사용한다. 프로그램메모리상수지정방식 : Z 레지스터를사용하여프로그램메모리영역의상수값을지정한다. 10 실행후에 후증가프로그램메모리상수지정방식 : 프로그램메모리상수지정방식과비슷하나 Z레지스터값을명령 1 만큼증가시킨다
43 2.2. 명령어요약 다음은 ATmega128 의명령을요약한것으로항목에서 #clocks 은수행에걸리는기계사이클, Flags 은명령수 행으로영향을받는 CSEG 의비트를의미한다. 그리고다음의정의들이사용된다. 표 7. 어셈블리명령에쓰인약자의의미 Rd Destination register R0~R31 Rr Source register R0~R31 b, s 바이트데이터의비트번호값 0~7 P I/O 레지스터주소값 (0-31/63) K 8비트상수값 k,q 상수 Rdl R24, R26, R28, R30. X Indirect address register R27:R26 Y Indirect address register R29:R28 Z Indirect address register R31:R30 분기명령 MCU 제어명령 그림 32. 분기명령모음 ( 출처:ATMEL) 그림 33. MCU 제어명령모음 ( 출처:ATMEL)
44 데이터전송명령 그림 34. 데이터명령모음( 출처:ATMEL) 산술과논리연산명령 그림 35. 산술과논리연산명령모음( 출처:ATMEL)
45 비트조작명령 어셈블리어의일반형태 어셈블리어의일반형태는아래와같다. 그림 36. 비트조작명령모음 ( 출처:ATMEL) [ 라벨 + : + 1 개이상의공백 ] + 명령어( 혹은지시어) + [1 개이상의공백 + ; + 주석] ( 예: START: LDI AL, 0b ;AL에이진수 값을넣어라. ) 라벨 (Label) 은기호주소로분기명령이나참조에사용되는심볼(Symbol) 로 1 심볼과바로뒤에공백없이 : ( 콜론) 을두고콜론과명령어는 1 개이상의공백을두어야한다. 2 어셈블러 ( 어셈블리어를기계어로바꾸어주는 프로그램 ) 에따라다르지만길이는보통 1에서수십개까지의기호가허용되고 AVR Studio4 에서심볼은영문자 와숫자와특수문자 (_) 의조합을사용하고처음은반드시숫자가아닌기호( 영문자나 _) 로시작해야한다. 3 R0-R31 과같은어셈블러특수심볼그리고명령어와지시어등예약어는심볼로사용될수없고 4 심볼은보 통명령어, 지시어와함께대문자와소문자의구분이없다(AVR Studio4 에서구분을하게옵션설정가능). 주석은반드시앞에 ;( 세미콜론 ) 을붙여야하는데어셈블러는세미콜론과같은줄에존재하며세미콜론뒤쪽에 존재하는글은주석으로여기고모두무시한다 지시어 ( 의사명령 ) 지시어란기계어로번역되지않고어셈블러에게어떤정보만을제공하는것으로의사명령이라고불린다. CSEG DSEG : 프로그램메모리에해당하는코드세그먼트의시작을정의한다. 파라메터를갖고있지않다. : SRAM 데이터메모리세그먼트의시작을정의한다. 파라메터를갖고있지않다. ESEG : EEPROM 데이터메모리세그먼트의시작을정의한다. 파라메터를갖고있지않다. EQU :.EQU +1 개이상의공백 + 심볼 +1 개이상의공백 + 상수값의형태로어떤심볼의값을정의하는데 사용된다. EQU 를사용하면숫자로된값대신에기억하기쉬운심볼을사용하여프로그램을쉽게할수있다. 어셈블러에서는기계어로번역할때라벨을상수값으로대체하여해석하게된다. 한번할당된값은수정되거나 다시정의될수없다. 예 :.EQU BUF= 0x20 ; 기계어로번역시 BUF는 0x20 으로대체된다
46 SET : EQU 와유사하나나중에다시정의되어수정가능하다. DEF :.DEF +1 개이상의공백 + 심볼 +1 개이상의공백 + 레지스터이름의형태로기억하기쉬운심볼에 레지스터를할당하여프로그램을쉽게할수있다. 나중에다시정의되어수정가능하고같은레지스터에여러 가지심볼을할당할수있다. 예 :.DEF BUF= R0 ; BUF 는 R0 UNDEF :.UNDEF +1 개이상의공백 + 심볼의형태로심볼에레지스터를할당한것을해제한다. 예 :.UNDEF BUF ; BUF 를해제 ORG :.ORG +1 개이상의공백 + 주소의형태로바로뒤에오는프로그램명령어의시작번지나데이터의시 작번지지정에사용된다. 주소로는숫자뿐만아니라라벨도사용될수있다. 다음과같은프로그램의경우명령 어 LDI AL, 0b 와그이후의명령은프로그램메모리의 20 번지를시작으로차례로저장된다. 예 :.CSEG.ORG 0x0020 START: LDI AL, 0b ;AL에이진수 값을넣어라.... BYTE : 심볼 +: +1 개이상의공백 +.BYTE +1 개이상의공백 + 숫자의형태로 SRAM 데이터세그먼트에 숫자만큼의메모리를바이트단위로예약해둔다. 예 : CNT:.BYTE 1 ;CNT 을위해 1 바이트를유보해두라. DB (Define Byte) : 라벨 +: + 1 개이상의공백 +.DB +1 개이상의공백 + 데이터의형태로 1 바이트(8 비트) 단위로숫자나문자데이터들을프로그램메모리나 EEPROM 세그먼트에저장할때사용한다. 예 :.ESEG DATA: DB 1, 2, 'S' ; 라벨 DATA 번지에 1을 DATA+1 에 2를 DATA+2 에 S' 를저장. DW (Define Word) : 라벨 +: + 1 개이상의공백 +.DW +1 개이상의공백 + 데이터의형태로 1 워드(2바이 트,16 비트) 단위로숫자나문자데이터들을프로그램메모리나 EEPROM 세그먼트에저장할때사용한다. DD (Define Doubleword) : 라벨 +: + 1 개이상의공백 +.DD +1 개이상의공백 + 데이터의형태로 2워드 (4 바이트, 32 비트) 단위로숫자나문자데이터들을프로그램메모리나 EEPROM 세그먼트에저장할때사용한다. DQ (Define Quadword) : 라벨 +: + 1 개이상의공백 +.DQ +1 개이상의공백 + 데이터의형태로 4 워드(8 바이트, 64 비트) 단위로숫자나문자데이터들을프로그램메모리나 EEPROM 세그먼트에저장할때사용한다. INCLUDE :.INCLUDE + 1 개이상의공백 +"+ 파일이름 + 의형태로외부의파일을 include하여어셈블할 때사용한다. IF :.IF + 1 개이상의공백 + 조건식의형태로조건식을만족하면아래부분를어셈블한다. ELIF :.ELIF + 1 개이상의공백 + 조건식의형태로앞선 IF의조건을만족시키지않는다른조건을판단할 때사용하며주어진조건식을만족하면아래부분를어셈블한다. IFDEF :.IFDEF + 1 개이상의공백 + 심볼의형태로심볼이정의되어있으면아래부분을어셈블한다. IFNDEF :.IFNDEF + 1 개이상의공백 + 심볼의형태로심볼이정의되지않았으면아래부분을어셈블한다. ELSE ENDIF : IF, IFDEF, IFNDEF 와같은조건문에서이전조건이만족되지않으면아래부분을어셈블한다. :.ENDEF 의형태로조건블록의마지막을표시한다. ENDM 혹은 ENDMACRO :.ENDM 혹은.ENDMACRO 의형태로마크로를정의를종료할때사용한다. MACRO :.MACRO + 1 개이상의공백 + 마크로이름의형태로마크로를정의할때사용한다. 로지정된 10개까지의파라메터가사용될수있고마크로를호출할때는아래의예에서처럼마크로이 름다음에공백을두고해당파라메터를차례로, 를사용해나열하면된다. 예 :.MACRO SUBL16 ; Start macro definition
47 ERROR :.WARNING + 1 개이상의공백 +" 주의문장 의형태로어셈블시주의문장을출력하고어셈블을중지한다. 예 :.IFDEF EXPTEST WARNING :.WARNING + 1 개이상의공백 +" 주의문장 의형태로어셈블시주의문장을출력하나 ERROR 처럼어셈블을중지하지는않는다. 예 :.IFDEF EXPTEST 숫자, 문자, 연산자 오퍼랜드로상수값을사용할때는반드시진법표현을명확히해야한다. 2진수의경우에는 0b를앞에붙여주 고( 예: 0b ), 16진수의경우에는 0x 혹은 $ 를붙여주고, 8진수의경우 O 를붙여주고, 10진수의경우에 는아무런표시도하지않는다. 문자상수값은반드시앞뒤에반드시따옴표 ( ) 를붙여준다. 문자열의경우에는큰따옴표를사용한다. 오퍼랜드에사용되는수식의연산자에는산술연산자, 논리연산자, 비교연산자, 조건연산자가있다. 산술연산자로 +( 더하기 ), -( 빼기), /( 나누기 ), *( 곱하기), %( 나머지가정수가되도록나눈나누기연산의나머지 값을결과로내놓는 mode 연산), <<( 오른쪽으로이동), >>( 왼쪽으로이동) 이있다. 논리연산자로!(NOT), &&( 논리곱 ), ( 논리합 ), ~( 비트단위 NOT), &( 비트단위 AND), ( 비트단위 OR), ^( 비 트단위 exclusive OR) 이쓰인다. 비교연산자로 == ( 동치),!= (Not Equal), < (Less Than), <= (Less than or Equal to), > (Greater Than), >= (Greater than or Equal to) 가있다. 조건연산자로아래와같은형식으로사용하며삼항연산자로보통불린다. 조건식이참이거나 0이아니면식 1을처리하고거짓이거나 0이면식2 를처리하라는의미이다. 변수 = ( 조건)? 식1 : 식2; 함수 LOW(x) : x 의하위바이트값을돌려준다. HIGH(x) : x의 2 번째바이트값을돌려준다. BYTE2(x) : x의 2 번째바이트값을돌려준다. BYTE3(x) : x의 3 번째바이트값을돌려준다. BYTE4(x) : x의 4 번째바이트값을돌려준다. LWRD(x) : x의비트 15~0 값을돌려준다. HWRD(x) : x의 4 번째바이트값을돌려준다. PAGE(x) : x의비트 16~21 값을돌려준다. EXP2(x) : 값을돌려준다
48 LOG2(x) : 값의정수부를돌려준다. INT(x) : x 의정수부분을돌려준다. FRAC(x) : x 의소수부분을돌려준다. Q7(x) : x를 FMUL/FMULS.FMULSU 명령에적절한형태의부호있는 1 바이트수로변환한다. Q15(x) : x를 FMUL/FMULS.FMULSU 명령에적절한형태의부호있는 1 바이트수로변환한다. ABS(x) : x 의절대값을돌려준다. DEFINED(x) : x라는심볼이정의된경우 1 을돌려준다 AVR Studio4 AVR Studio 는 ATMEL 사( 에서개발한 AVR용의소프트웨어개발툴로현재 Ver 이나와있어윈도우즈에기반한통합개발환경을제공한다. 에뮬레이터와시뮬레이터를동시에사용할 수있고어셈블러를제공한다. 만약에 AVRISP, JTAG ICE, STK500, ICE40, ICE50 등의에뮬레이터가 PC의직 렬포트에접속되어있으면에뮬레이터로동작하고그렇지않으면시뮬레이터로동작한다 새프로젝트등록과실행파일만들기 1 초기화면 : AVR Studio Ver 을 에서내려받아설치하고실행하면그림 37 과같은초기화면이뜬다. 상단에 [File], [Project], [Build], [View], [Tools], [Debug], [Help] 메뉴가있고 [New Project], [Open] 등의메뉴를갖는 Welcome to AVR Studio 4라는이름의작은창이있고그이외에 I/O View, Message 라는이름의작은창이있다. 그림 37. AVR Studio 의초기화면
49 2 New Project 실행 : Welcome to AVR Studio 4 라는이름의작은창의메뉴 [New Projct] 를클릭하면 그림 38 과같은창이뜨게된다. 이창에서프로젝트형태( 어떤어셈블러를사용할것인가를결정), 프로젝트이 름, 어셈블리어파일이름, 파일들이위치할디렉토리를결정할수있다. 그림 38. New Project 의실행 3 프로젝트의설정 : 그림 39와같이메뉴에서 Project type로 Atmel AVR Assember 을선택하고 Project name 와 Initial File, Location 은적절한값으로설정한다 ( 여기에서는각각 hhchoi, hhchoi, C:\Documents and Settings\GX620\My Documents\avr\at128 로설정했다 ). 그러면그림 39 처럼 [Next] 메뉴가활성화된다. 그림 39. 프로젝트의설정
50 4 Debug 플랫폼과디바이스설정 : Project name 와 Initial File, Location 은적절한값으로설정하고 [Next] 메뉴를누르면그림 40 과같이디버그플랫폼과디바이스를설정하는창이뜬다. Debug platform 은 AVR Simulator 를선택하고 Device는 ATmega128 을선택하고마지막으로 [Finish] 메뉴를누른다. 그림 40. 디버그플랫폼과디바이스의설정 5 에디터창생성 : 디버그플랫폼과디바이스를설정하고 [Finish] 메뉴를누르면그림41 과같이프로젝트설 정단계에서지정한어셈블리파일의코드를작성할수있는파일이름을갖는에디터창과 그만창이뜬다. Project 라는이름의조 그림 41. 프로젝트등록의최종결과로생긴에디터창
51 6 Build 실행 : 어셈블리파일의코드를작성한이후에메인창의 [Build] 메뉴를그림 42처럼선택하여실행시킨다. 그림 42. Build 실행 7 에러없이종료된결과 : 그림 43 은에러없이실행파일이만들어진경우를보여준다. Build 라는이름의창에실행파일을생성한결과가보여진다. 그림 43. 성공적으로실행파일이만들어진결과
52 8 에러가있을때결과 : 그림 44 는실행파일을만드는과정에서문법적인에러가발생한경우를보여준다. Build 창에에러가발생한행번호와에러메시지가나타나있음을알수있다. 에러메시지부분을더블클릭하면에 러가발생한위치로커서가자동적으로이동하여손쉽게에러를수정할수있게한다 디버깅과시뮬레이션 그림 44. 에러가있을때결과 1 Debug 선택 : 문법적인에러가없어실행파일이만들어진경우그림 45 과같이 [Debug->Start Debugging] 메뉴를선택하면디버깅과간단한시뮬레이션을할수있다. 그림 45. [Debug->Start Debugging] 메뉴
ISP and CodeVisionAVR C Compiler.hwp
USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler
More information<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729>
2주차 ATmega128의내부구조및퓨즈비트설정 Next-Generation Networks Lab. 4. ATmega128의클럭시스템과배분 시스템클럭 마이크로컨트롤러동작의기준이되는클럭의주파수 AVR은시스템클럭을내부모듈별로독립적으로배분하여제어 슬립 (Sleep) 모드를활용하여내부모듈별로클럭차단이가능하여전력소모관리 퓨즈비트를통해다양한클럭소스선택가능 클럭배분 (
More information정보보안 개론과 실습:네트워크
` 마이크로프로세서설계및실습 2 주차강의자료 2/31 Contents 학습목표 다양한 AVR 패밀리와소자특징을알아보고, 제어환경에따라 AVR 소자를선택하여개발할수있는융통성을이해할수있다. ATmega128 내부구조에서특수레지스터, 범용레지스터의역할을이해할수있다. ATmega128 내부에포함된명령어인출과실행절차를알아보고, 명령어유형을통해동작을이해할수있다. 내용
More informationMicrosoft PowerPoint - avr_lecture1.ppt
임베디드마이크로프로세서 프로그래밍실전 제작 : 네로테크 강의 : 김종형 AVR 개요및개발환경구축 1. AVR 개요및특징 2. AVR 개발환경구축 -2- 1-1 AVR 의개요 AVR [ Alf(Bogen) Vergard(Wollen) Risc ] 이란? ATMEL 사에서제작된 RISC(Reduced Instruction Set Computer) 구조의저전력 CMOS
More information<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>
8주차중간고사 ( 인터럽트및 A/D 변환기문제및풀이 ) Next-Generation Networks Lab. 외부입력인터럽트예제 문제 1 포트 A 의 7-segment 에초시계를구현한다. Tact 스위치 SW3 을 CPU 보드의 PE4 에연결한다. 그리고, SW3 을누르면하강 에지에서초시계가 00 으로초기화된다. 동시에 Tact 스위치 SW4 를 CPU 보드의
More information<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>
뻔뻔한 AVR 프로그래밍 The 4 th Lecture 유명환 ( yoo@netplug.co.kr) 1 시간 (Time) 에대한정의 INDEX 2 왜타이머 (Timer) 와카운터 (Counter) 인가? 3 ATmega128 타이머 / 카운터동작구조 4 ATmega128 타이머 / 카운터관련레지스터 5 뻔뻔한노하우 : 레지스터비트설정방법 6 ATmega128
More information인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고
CHAPTER 7 인터럽트 가. 레지스터구조이해하기 나. 엔코더제어하기 인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고급한일을처리한후에본래의일을다시수행하는것을말한다.
More informationMicrosoft PowerPoint - 제3장 GPIO 입출력 제어 (HBE-MCU-Multi AVR)
한백전자기술연구소 HBE-MCU-Multi 로배우는 마이크로컨트롤러 (AVR편) 마이크로컨트롤러기능 제 3 장 GPIO 입출력제어 GPIO 입출력제어 1. HBE-MCU-Multi 구동 2. 마이크로컨트롤러와 GPIO 3. AVR 마이크로컨트롤러의입출력포트 4. GPIO 를이용하여 LED 켜기 5. GPIO를이용한스위치눌러 LED 불켜기 6. GPIO 를이용하여
More information<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>
뻔뻔한 AVR 프로그래밍 The Last(8 th ) Lecture 유명환 ( yoo@netplug.co.kr) INDEX 1 I 2 C 통신이야기 2 ATmega128 TWI(I 2 C) 구조분석 4 ATmega128 TWI(I 2 C) 실습 : AT24C16 1 I 2 C 통신이야기 I 2 C Inter IC Bus 어떤 IC들간에도공통적으로통할수있는 ex)
More informationAVR ATmega128 소개 마이크로컨트롤러 AVR ATmega128 저자 : 이상설 소속 : 원광대학교전기 정보통신공학부
AVR ATmega128 소개 마이크로컨트롤러 AVR ATmega128 저자 : 이상설 (slee@wku.ac.kr) 소속 : 원광대학교전기 정보통신공학부 학습목표 2/39 다양한 AVR 패밀리와소자특징을알아보고, 제어환경에따라 AVR 소자를선택하여개발할수있는융통성을이해할수있다. ATmega128 내부구조에서메모리공간, I/O 공간의프로그램과데이터를처리하기위한특수레지스터,
More information< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>
Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법
More information슬라이드 1
마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***
More informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향
More information<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>
7주차 AVR의 A/D 변환기제어레지스터및관련실습 Next-Generation Networks Lab. 3. 관련레지스터 표 9-4 레지스터 ADMUX ADCSRA ADCH ADCL 설명 ADC Multiplexer Selection Register ADC 의입력채널선택및기준전압선택외 ADC Control and Status Register A ADC 의동작을설정하거나동작상태를표시함
More informationAVR Atmega128
AVR Atmega128 외부인터럽트 중원대학교최재영 인터럽트와폴링 MCU 에서입력을받아들이는방법은폴링방식과인터럽트방식이있음 - 폴링 (Polling) 방식 : 사용자의명령어에의해서하드웨어의변경사항을주기적으로읽어들이는방식 주기적으로하드웨어의변화를체크하기때문에사용자의프로그래밍에따라다양핚변화에대응이가능하지만 CPU 의점유율이높기때문에반응속도가느리다. 인터럽트 (Interrupt)
More information<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729>
1주차 ATmega128의구조와메모리 Next-Generation Networks Lab. 1. ATmega128의특징 고성능, 저전력의 8 비트마이크로컨트롤러 진보된 RISC 구조 대부분단일클럭에서실행되는강력한 133개의명령어구조 16MHz에서거의 16MIPS로동작 32개의 8 bit 범용작업레지스터와추가된주변장치제어레지스터 2 사이클내에서수행되는강력한곱셈기내장
More information<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >
10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절
More informationMicrosoft Word - PLC제어응용-2차시.doc
과정명 PLC 제어응용차시명 2 차시. 접점명령 학습목표 1. 연산개시명령 (LOAD, LOAD NOT) 에대하여설명할수있다. 2. 직렬접속명령 (AND, AND NOT) 에대하여설명할수있다. 3. 병렬접속명령 (OR, OR NOT) 에대하여설명할수있다. 4.PLC의접점명령을가지고간단한프로그램을작성할수있다. 학습내용 1. 연산개시명령 1) 연산개시명령 (LOAD,
More information2. AVR(ATmega162)의 구조
ATmega128 의구조 Prof. Jae Young Choi ( 최재영교수 ) (2015 Spring) Prof. Jae Young Choi 2.1 ATmega AVR 개요 AVR 개요 ATMEL 사에서제작한 RISC 구조의저전력 CMOS 8 비트마이크로컨트롤러 1997 년에처음개발, Alf-Egil Bogen 과 Vegard Wollan 의진보된 RISC
More informationMicrosoft PowerPoint - chap02-C프로그램시작하기.pptx
#include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의
More information[ 마이크로프로세서 1] 1 주차 1 차시. 마이크로프로세서개요 1 주차 1 차시마이크로프로세서개요 학습목표 1. 마이크로프로세서 (Microprocessor) 를설명할수있다. 2. 마이크로컨트롤러를성능에따라분류할수있다. 학습내용 1 : 마이크로프로세서 (Micropr
1 주차 1 차시마이크로프로세서개요 학습목표 1. 마이크로프로세서 (Microprocessor) 를설명할수있다. 2. 마이크로컨트롤러를성능에따라분류할수있다. 학습내용 1 : 마이크로프로세서 (Microprocessor) 1. 마이크로프로세서란? 1 작은실리콘칩위에트랜지스터를수천만개집적한소자 2 마이크로 [μ] 는매우작은크기, 프로세서는처리기혹은 CPU를뜻하므로
More informationAVR ATmega128 소개 AVR ATmega128 IT Eng 학습목표 ü 다양한 AVR 패밀리와소자특징을알아보고, 제어환경에따라 AVR 소자를선택하여개발할수있는융통성을이해할수있다. ü ATmega128 내부구조에서메모리공간, I/O 공간의프로그램과데이터를처리하기
AVR ATmega128 소개 AVR ATmega128 학습목표 ü 다양한 AVR 패밀리와소자특징을알아보고, 제어환경에따라 AVR 소자를선택하여개발할수있는융통성을이해할수있다. ü 에서메모리공간, I/O 공간의프로그램과데이터를처리하기위한특수레지스터, 범용레지스터의역할을이해할수있다. ü ATmega128 내부에포함된명령어인출과실행절차를알아보고, 명령어유형을통해동작을이해할수있다.
More informationMicrosoft Word - AVRISP mkII 장비 운용.doc
AVRISP mkii 장비운용 기술연구소이진용대리 ( jylee@mamiel.com ) 1. AVRISP mkⅡ 개요 AVRISP mkⅡ 장비운용 1) AVRISP mkⅡ란? 기존의 AVRISP의단점을보충해서 Atmel에서새롭게출시된 ISP 장비이다기존에 AVRISP는전원을 Target System에서공급을받아야했기에사용하기에불편한점이많았지만이번에새롭게출시된
More informationMicrosoft Word - MAI-ISP-STK500_매뉴얼_Ver25.docx
MAI-ISP-STK500 사용자매뉴얼 Manual Ver. 2.5 엠에이아이 (M.A.I) www.maicom.co.kr http://cafe.naver.com/at128mai [ 모델이름 ]: MAI-ISP-STK5000 [ 용도 ]: AVR MCU의내부 Flash Memory 및 EEPROM 에 HEX 파일을 Write W / Readd 할수있는기능을하는프로그래머로써,
More informationJMOD : ATmega128 기본모듈 사용자설명서 제이씨넷
JMOD-128-1 : ATmega128 기본모듈 사용자설명서 제이씨넷 www.jcnet.co.kr 1. JMOD-128-1 개요 1.1 JMOD-128-1 소개 은 ATmega128 MCU를이용하여, 다양한기능을구현하거나시험해볼수있도록모듈형태로개발된마이크로콘트롤러모듈입니다. 개발자의편의를위하여소형모듈에서는국내최초로프로그램 (ISP)
More informationMicrosoft PowerPoint - 제5장 인터럽트 (HBE-MCU-Multi AVR).ppt [호환 모드]
Chapter. 5 인터럽트 HBE-MCU-Multi AVR Jaeheung, Lee 목차 1. 폴링과인터럽트그리고인터럽트서비스루틴 2. ATMega128 인터럽트 3. 인터럽트로 LED 점멸시키기 4. 인터럽트로스톱워치만들기 인터럽트 1. 폴링과인터럽트그리고인터럽트서비스루틴 2. ATMega128 인터럽트 3. 인터럽트로 LED 점멸시키기 4. 인터럽트로스톱워치만들기
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More information[ 마이크로프로세서 1] 1 주차 2 차시. 마이크로프로세서와마이크로컨트롤러발달과정 1 주차 2 차시마이크로프로세서와마이크로컨트롤러발달과정 학습목표 1. 마이크로프로세서발달과정과종류를설명할수있다. 2. 인텔 8051 계열과아트멜 (Atmel) 의특성을설명할수있다. 학습
1 주차 2 차시마이크로프로세서와마이크로컨트롤러발달과정 학습목표 1. 마이크로프로세서발달과정과종류를설명할수있다. 2. 인텔 8051 계열과아트멜 (Atmel) 의특성을설명할수있다. 학습내용 1 : 마이크로프로세서발달과정 1. 마이크로프로세서종류 1 인텔 ( intel) 80 계열 2 모토롤라 (motorola) 68 계열 2. 인텔 80 계열 1 최초 1971
More information[8051] 강의자료.PDF
CY AC F0 RS1 RS0 OV - P 0xFF 0x80 0x7F 0x30 0x2F 0x20 0x1F 0x18 0x17 0x10 0x0F 0x08 0x07 0x00 0x0000 0x0FFF 0x1000 0xFFFF 0x0000 0xFFFF RAM SFR SMOD - - - GF1 GF0 PD IDL 31 19 18 9 12 13 14 15 1 2 3 4
More informationCHAPTER 2 마이크로컨트롤러구조이해하기 가. ATmega128 기능 나. CRX10 구조
CHAPTER 2 마이크로컨트롤러구조이해하기 가. ATmega128 기능 나. CRX10 구조 가. ATmega128 기능 1) 기능 고성능저전력 AVR 8비트마이크로컨트롤러 고급 RISC 구조 - 133개의강력한명령어 - 최대단일주기클록수행 - 32 8 범용레지스터 + 주변기기제어레지스터 - 완전한정적동작 - 16 MHz에서 16 MIPS(Million Instruction
More informationSAT8-10.hwp
Dr. Kim ATmega8 Training Kit (SAT8-10) 이란? 현제 Atmega8 마이크로컨트롤러는산업현장에서 MP3 플레이어, DMB 수신기, 로봇등첨단제품에매우많이사용되고있으며, 각종기사시험의실기시험이나졸업작품등에서매우중요한위치를차지하고있다. 하지만학습용키트나모듈등이너무비싸서개인적으로구입하여사용하기가매우힘들었다. 그래서 Dr. Kim Training
More information슬라이드 1
CCS v4 사용자안내서 CCSv4 사용자용예제따라하기안내 0. CCS v4.x 사용자 - 준비사항 예제에사용된 CCS 버전은 V4..3 버전이며, CCS 버전에따라메뉴화면이조금다를수있습니다. 예제실습전준비하기 처음시작하기예제모음집 CD 를 PC 의 CD-ROM 드라이브에삽입합니다. 아래안내에따라, 예제소스와헤더파일들을 PC 에설치합니다. CD 드라이브 \SW\TIDCS\TIDCS_DSP80x.exe
More informationMicrosoft PowerPoint - chap01-C언어개요.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을
More information<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>
뻔뻔한 AVR 프로그래밍 The 6 th Lecture 유명환 ( yoo@netplug.co.kr) 1 2 통신 관련이야기 시리얼통신 관련이야기 INDEX 3 ATmega128 시리얼통신회로도분석 4 ATmega128 시리얼통신컨트롤러 (USART) 분석 5 ATmega128 시리얼통신관련레지스터분석 6 ATmega128 시리얼통신실습 1 통신 관련이야기 동기
More information<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>
SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......
More informationATmega128
ATmega128 외부인터럽트실습 Prof. Jae Young Choi ( 최재영교수 ) (2015 Spring) Prof. Jae Young Choi 외부인터럽트실험 외부인터럽트를사용하기위해관렦레지스터를설정 일반적으로 I/O 포트에대한설정이끝난후에외부인터럽트나타이머 / 카운터설정 PE4~7 번까지 4 개의외부인터럽트 INT4~INT7 까지사용 외부인터럽트사용법요약
More information슬라이드 1
Delino EVM 용처음시작하기 - 프로젝트만들기 (85) Delfino EVM 처음시작하기앞서 이예제는타겟보드와개발홖경이반드시갖추어져있어야실습이가능합니다. 타겟보드 : Delfino EVM + TMS0F85 초소형모듈 개발소프트웨어 : Code Composer Studio 4 ( 이자료에서사용된버전은 v4..입니다. ) 하드웨어장비 : TI 정식 JTAG
More information<4D F736F F F696E74202D2037C0E55FC0CEC5CDB7B4C6AEC0C720B5BFC0DB2E707074>
7 장. 인터럽트의동작 한국산업기술대학교 이응혁교수 WWW.ROBOTICSLAB.CO.KR 1 7.1 인터럽트 (Interrupt) 개요 인터럽트개념 프로그램이수행되고있는동안에어떤조건이발생하여수행중인프로그램을일시적으로중지시키게만드는조건이나사건의발생 비동기적으로처리 다른프로그램이수행되는동안여러개의사건을처리할수있는메커니즘 인터럽트가발생하면마이크로컨트롤러는현재수행중인프로그램을일시중단하고,
More information(1) 주소지정방식 Address Mode 메모리접근 분기주소 명령어 직접번지 Reg. 지정 Reg. 간접 Base Index 간접 Immediate 상대번지 절대번지 Long 주소 Reg. 간접 Byte Access Bit Access 내부 Data M
(1) 주소지정방식 Address Mode 메모리접근 분기주소 2. 8051 명령어 직접번지 Reg. 지정 Reg. 간접 Base Index 간접 Immediate 상대번지 절대번지 Long 주소 Reg. 간접 Byte Access Bit Access 내부 Data Memory 외부 Data Memory (2) 명령어세트 - 8051 명령어는 5 가지로분류,
More informationMicrosoft Word - EastSocket매뉴얼_ _.doc
USB 전원을이용한 SMD 패키지라이팅지원보드 저가의라이팅장비를사용하여 SMD 패키지마이컴을라이팅할수있도록지원하는장비입니다. 각종제품개발시마이컴을 SMD로사용하는추세로이를양산에적용시고가의장비를사용해야했습니다. 아니면보드에다운로더를사용하여마이컴라이팅을했습니다. 그에따른생산속도의저하및고가의장비구입에따른경제적부담이컸습니다. 이를대처하기위해저가및기존개발에사용한장비를그대로사용하여라이팅을할수있는지원장비를개발했습니다.
More information마이크로프로세서 개요
1 주 개요 메카트로닉스공학부 조철우 8051 Pin Layout 8051 3 Atmel 89C2051 4 강의의개요 컴퓨터및의기원과동작원리를학습 마이크로컨트롤러를배우기위한기초원리 마이크로컨트롤러를활용하기위한도구사용법 마이크로컨트롤러를활용하기위한기초시스템설계및프로그래밍 History of Computer 컴퓨터의역사. 최초의컴퓨터 - 1946년 ENIAC,
More informationMicrosoft Word - Ahram_ISP_V15_Manual_V20.doc
Ahram ISP V1.5 사용자매뉴얼 Manual Ver 2.0 Ahramsoft CO.LTD www.ahramsoft.com Contents 1. 모델이름 ------------------------------------------------------- 3 2. 용 도 -------------------------------------------------------
More informationÀ̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp
l Y ( X g, Y g ) r v L v v R L θ X ( X c, Yc) W (a) (b) DC 12V 9A Battery 전원부 DC-DC Converter +12V, -12V DC-DC Converter 5V DC-AC Inverter AC 220V DC-DC Converter 3.3V Motor Driver 80196kc,PWM Main
More informationHBE-MCU-Multi 로배우는 마이크로컨트롤러 (AVR 편 ) 마이크로컨트롤러기능 제 6 장타이머와카운터
HBE-MCU-Multi 로배우는 마이크로컨트롤러 (AVR 편 ) 마이크로컨트롤러기능 제 6 장타이머와카운터 타이머와카운터 1. 클럭과카운터 2. ATMega128 의타이머 / 카운터 3. 8 비트타이머 / 카운터의일반동작모드 4. 타이머로 LED 점멸시키기 5. 타이머로디지털시계만들기 타이머 / 카운터 타이머와카운터 정확한시간의측정이필요하다.( 자명종과스톱워치
More informationMicrosoft Word - PEB08_USER_GUIDE.doc
0. PEB08 이란? PEB08(PIC EVALUATION BOARD 8bits) 은 Microchip 8bit Device 개발을쉽고편리하게할수있는보드입니다. 1. 다양한 8bit Device 지원 기존대부분의 8bit 보드의경우일부 Pin-Count만지원을하였지만, PEB08은 PIC10, PIC12, PIC16, PIC18의 DIP Type Package의모든
More informationMicrosoft Word - logic2005.doc
제 8 장 Counters 실험의목표 - Catalog counter 의동작원리에대하여익힌다. - 임의의 counter를통하여 FSM 구현방법을익힌다. - 7-segment display 의동작원리를이해한다. 실험도움자료 1. 7-segment display 7-segment는디지털회로에서숫자를표시하기위하여가장많이사용하는소자이다. 이름에서알수있듯이 7개의 LED(
More information<BDC7C7E83520BFB9BAF1BAB8B0EDBCAD2E687770>
제목 : 실험 #5 예비보고서 Interrupt 제어 실험목적 - Interrupt에대한기초지식을알아본다. - Atmega128의 Interrupt를사용해보고, 동작방식과동작방법및특징을확인한다. 실험장비 - ATmega128(AVR Chip), Switch, LED(Green-LED) 실험이론 - 인터럽트 (Interrupt) 인터럽트는프로그램이수행되고있는동안에어떤조건이발생하여수행중인프로그램을일시적으로중지시키게만드는조건이나사건의발생을말한다.
More informationMicrosoft PowerPoint - chap03-변수와데이터형.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.
More informationADP-2480
Mitsubishi PLC 접속 GP 는 Mitsubishi FX Series 와통신이가능합니다. 시스템구성 6 7 8 GP-80 RS- Cable RS-C Cable FXN--BD FXN--BD 6 FX Series(FXS,FXN,FXN,FXNC, FXU) 7 FXS, FXN 8 FXN FX Series 는기본적으로 RS- 통신을하며, RS-/ converter
More informationPowerPoint 프레젠테이션
System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소
More information[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi
2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,
More informationMicrosoft Word - codevision사용법_pdf버전.docx
CodevisionAVR 설치와 기본사용법 민경학 ( hak@anycalluser.net) 인하대학교 IT 공과대학전자공학과멀티미디어연구실 ( 하이테크센터 916 호 ) 2008.9.7.001 들어가며 AVR 에서쓸수있는컴파일러종류에는 CodeVisionAVR, AVR Edit, IAR, AVRStudio 등이있습니다. CodeVisionAVR 과 IAR 은상용이고
More information슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More informationMicrosoft PowerPoint - chap04-연산자.pptx
int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에
More information목차 1. ATMega128의외부메모리인터페이스 2. TEXT LCD 3. TEXT LCD에글자쓰기 4. SRAM 5. 외부메모리인터페이스에 SRAM붙이기
Chapter. 10 외부메모리인터페이스 HBE-MCU-Multi AVR Jaeheung, Lee 목차 1. ATMega128의외부메모리인터페이스 2. TEXT LCD 3. TEXT LCD에글자쓰기 4. SRAM 5. 외부메모리인터페이스에 SRAM붙이기 ATMega128 의외부메모리인터페이스 ATMega128 의외부메모리인터페이스 칩외부에더큰용량의메모리나별도의주변장치들을연결하기위한인터페이스
More informationMicrosoft PowerPoint - Chapter 8_USART Serial Communication
MEC382 마이크로프로세서응용및실습 USART Serial Communication Jee-Hwan Ryu School of Mechanical Engineering 통신방법 병렬통신 고속데이터전송이필요한곳에서이루어짐 여러개의라인에서동시에이루어짐 직렬통신 한라인에서이루어짐 데이터의송수신속도가느리다 라인수적고멀리까지통신 동기식, 비동기식있음 동기식 : 기준클럭인동기클럭라인과데이터송
More informationMicrosoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt
변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short
More information2. GCC Assembler와 AVR Assembler의차이 A. GCC Assembler 를사용하는경우 i. Assembly Language Program은.S Extension 을갖는다. ii. C Language Program은.c Extension 을갖는다.
C 언어와 Assembly Language 을사용한 Programming 20011.9 경희대학교조원경 1. AVR Studio 에서사용하는 Assembler AVR Studio에서는 GCC Assembler와 AVR Assmbler를사용한다. A. GCC Assembler : GCC를사용하는경우 (WinAVR 등을사용하는경우 ) 사용할수있다. New Project
More information<4A4B49542D D312DBBE7BFEBC0DABCB3B8EDBCAD2E646F63>
JKIT-128-1 개발/ 실습키트 사용자설명서 제이씨넷 www.jcnet.co.kr 1 1. JKIT-128-1 개요 1.1 JKIT-128-1 소개 은 atmega128 MCU를비롯하여 LED, FND, 스위치, 부저, 온도센서, 광감지센서, 모터제어드라이버등의부품을실장하여, 다양한기능을시험해볼수있는개발/ 실습키트입니다. 소형키트로는국내최초로
More information온라인 IT 교육최강 ( 강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1
강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1 - 2. 중앙처리장치 (Central Processing Unit) 주기억장치에기억된명령을꺼내서해독하고, 시스템전체에지시신호를내는장치명령코드가명령을수행할수있게필요한제어기능을제공제어장치의구성
More informationChapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee
Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee 목차 1. D/A 변환기 2. 병렬 D/A 변환기로 LED 밝기제어하기 3. 직렬 D/A 변환기로 LED 밝기제어하기 D/A 변환기 D/A 변환기 (Digital to Analog Converter) 디지털데이터를아날로그전압으로변환하는소자 A/D변환기와함께마이크로프로세서응용회로에서널리사용됨.
More information2주차: 입출력 제어 복습
마이크로프로세서 응용및실습 ` 13-14 주차 : 직렬통신 (2) 한철수 전자공학과 2/35 직렬통신과병렬통신 직렬통신 한가닥의선으로송수신할데이터를차례대로전송하는방식 장점 : 통신선로가적기때문에경제적임 단점 : 전송속도가느림. 송수신약속이복잡해짐 병렬통신 여러가닥의선으로동시에여러개의데이터를전송하는방식 장점 : 전송속도가빠름 단점 : 직렬통신보다비쌈 3/35
More informationMicrosoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]
Chapter 03 변수와자료형 2009 한국항공대학교항공우주기계공학부 (http://mercury.kau.ac.kr/sjkwon) 1 변수와자료유형 변수 프로그램에서자료값을임시로기억할수있는저장공간을변수 (variables) 변수 (Variables) 는컴퓨터의메모리인 RAM(Random Access Memory) 에저장 물건을담는박스라고생각한다면박스의크기에따라담을물건이제한됨
More informationMicrosoft PowerPoint - ch07 - 포인터 pm0415
2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자
More informationBY-FDP-4-70.hwp
RS-232, RS485 FND Display Module BY-FDP-4-70-XX (Rev 1.0) - 1 - 1. 개요. 본 Display Module은 RS-232, RS-485 겸용입니다. Power : DC24V, DC12V( 주문사양). Max Current : 0.6A 숫자크기 : 58mm(FND Size : 70x47mm 4 개) RS-232,
More informationAPI 매뉴얼
PCI-TC03 API Programming (Rev 1.0) Windows, Windows2000, Windows NT, Windows XP and Windows 7 are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations
More informationiii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.
Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:
More information<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>
VHDL 프로그래밍 D. 논리합성및 Xilinx ISE 툴사용법 학습목표 Xilinx ISE Tool 을이용하여 Xilinx 사에서지원하는해당 FPGA Board 에맞는논리합성과정을숙지 논리합성이가능한코드와그렇지않은코드를구분 Xilinx Block Memory Generator를이용한 RAM/ ROM 생성하는과정을숙지 2/31 Content Xilinx ISE
More informationMicrosoft PowerPoint - hy2-12.pptx
CPU의구조와기능 CPU 의명령어수행과정 명령어인출 (Instruction Fetch) : 기억장치로부터명령어를읽어온다 명령어해독 (Instruction Decode) : 수행해야할동작을결정하기위하여명령어를해독한다 모든명령어들에대하여공통적으로수행 데이터인출 (Data Fetch) : 명령어실행을위하여데이터가필요한경우에는기억장치혹은 I/O 장치로부터그데이터를읽어온다
More informationuntitled
시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000
More informationSection 03 인터럽트활성화와인터럽트서비스루틴연결 34/82 장치에대한인터럽트설정과활성화 내부장치에대한특수레지스터존재 장치의특성을반영한동작설정용또는상태관찰용비트로구성 인터럽트사건의발생패턴을설정해야함 인터럽트활성화비트를 1 로셋하여, 인터럽트발생을허락» 전제, 전역
Section 03 인터럽트활성화와인터럽트서비스루틴연결 33/82 Section 03 인터럽트활성화와인터럽트서비스루틴연결 34/82 장치에대한인터럽트설정과활성화 내부장치에대한특수레지스터존재 장치의특성을반영한동작설정용또는상태관찰용비트로구성 인터럽트사건의발생패턴을설정해야함 인터럽트활성화비트를 1 로셋하여, 인터럽트발생을허락» 전제, 전역인터럽트활성화비트가 1 로셋되었을때
More informationMicrosoft Word - Armjtag_문서1.doc
ARM JTAG (wiggler 호환 ) 사용방법 ( IAR EWARM 에서 ARM-JTAG 로 Debugging 하기 ) Test Board : AT91SAM7S256 IAR EWARM : Kickstart for ARM ARM-JTAG : ver 1.0 ( 씨링크테크 ) 1. IAR EWARM (Kickstart for ARM) 설치 2. Macraigor
More informationMicrosoft PowerPoint - es-arduino-lecture-03
임베디드시스템개론 : Arduino 활용 Lecture #3: Button Input & FND Control 2012. 3. 25 by 김영주 강의목차 디지털입력 Button switch 입력 Button Debounce 7-Segment FND : 직접제어 7-Segment FND : IC 제어 2 디지털입력 : Switch 입력 (1) 실습목표 아두이노디지털입력처리실습
More informationPowerPoint 프레젠테이션
Chapter 06 반복문 01 반복문의필요성 02 for문 03 while문 04 do~while문 05 기타제어문 반복문의의미와필요성을이해한다. 대표적인반복문인 for 문, while 문, do~while 문의작성법을 알아본다. 1.1 반복문의필요성 반복문 동일한내용을반복하거나일정한규칙으로반복하는일을수행할때사용 프로그램을좀더간결하고실제적으로작성할수있음.
More information사용자매뉴얼
AVRISP mkii 사용자매뉴얼 OL 마이크로웨이브 http://olmicrowaves.com 1 / 27 목차 1. AVRISP mkii 개요 1) 제품기능 2) 사용환경 3) 제품사양 4) 제품구조 2. AVRISP mkii 사용방법 1) Jungo USB Driver 설치 2) AVRISP mkii 셋업 3) 타겟보드셋업 4) AVR Studio 4로펌웨어프로그래밍
More informationMicrosoft PowerPoint - hy2-12.pptx
2.4 명령어세트 (instruction set) 명령어세트 CPU 가지원하는기계어명령어들의집합 명령어연산의종류 데이터전송 : 레지스터 / 메모리간에데이터이동 산술연산 : 덧셈, 뺄셈, 곱셈및나눗셈 논리연산 : 비트들간의 AND, OR, NOT 및 XOR 연산 입출력 (I/O) : CPU( 레지스터 ) 와외부장치들간의데이터이동 프로그램제어 : 분기, 서브루틴호출
More informationChapter ...
Chapter 4 프로세서 (4.9절, 4.12절, 4.13절) Contents 4.1 소개 4.2 논리 설계 기초 4.3 데이터패스 설계 4.4 단순한 구현 방법 4.5 파이프라이닝 개요*** 4.6 파이프라이닝 데이터패스 및 제어*** 4.7 데이터 해저드: 포워딩 vs. 스톨링*** 4.8 제어 해저드*** 4.9 예외 처리*** 4.10 명령어 수준
More informationMicrosoft Word - FunctionCall
Function all Mechanism /* Simple Program */ #define get_int() IN KEYOARD #define put_int(val) LD A val \ OUT MONITOR int add_two(int a, int b) { int tmp; tmp = a+b; return tmp; } local auto variable stack
More information<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>
IT OOKOOK 87 이론, 실습, 시뮬레이션 디지털논리회로 ( 개정 3 판 ) (Problem Solutions of hapter 9) . T 플립플롭으로구성된순서논리회로의해석 () 변수명칭부여 F-F 플립플롭의입력 :, F-F 플립플롭의출력 :, (2) 불대수식유도 플립플롭의입력 : F-F 플립플롭의입력 : F-F 플립플롭의출력 : (3) 상태표작성 이면,
More information프로그램카운터 (Program Counter) 명령레지스터 (Instruction Register) 누산기 (AC: Accumulator) 상태레지스터 (Status Register) PSWR(Program Status Word Register) 메모리주소레지스터 (M
중앙처리장치 (CPU: Central Process Unit) 1) 제어장치 (Control Unit) 컴퓨터시스템의모든장치들에게동작을지시하고제어하는장치로주기억장치에서읽어온명령어를해독하고해당장치에게제어신호를보낸다. 구성회로 : 부호기, 명령해독기, 번지해독기 구성레지스터 : PC( 프로그램카운터 ), IR( 명령어레지스터 ) 부호기 ( 제어신호발생기 ) 해독한명령어에따라서해당장치로보낼제어신호를생성하는회로
More informationMicrosoft PowerPoint - 부호기와 복호기.PPT
논리회로실험부호기와복호기 2005. 5. 3. 부호기와복호기란? 이론실험내용 개요 Encoder & Decoder 서로다른부호간의변환에사용되는것으로디지털신호를압축하거나전송시깨지지않도록바꾸는등여러가지목적에의해부호화라는장치와부호화되어전송되어온신호를다시원래의디지털신호로복호하는장치들을말한다. CODEC(enCOder DECoder) 이라고도한다. 기타 10진 to
More information정보보안 개론과 실습:네트워크
` 마이크로프로세서설계및실습 12-13 주차강의자료 학습목표 A/D 변환기의제어방법을이해한다 능숙하게 A/D 변환기를제어할수있도록반복실습한다 2/28 아날로그 - 디지털변환회로 아날로그 - 디지털변환회로 (A/D 변환회로 ) 는, 아날로그전기신호를디지털전기신호로변환하는전자회로이다 A/D 컨버터 (ADC: Analog-to-digital converter) 라고도불린다
More informationUART.h #ifndef _UART_H_ #define _UART_H_ #define DIR_TXD #define DIR_RXD sbi(portd,4) cbi(portd,4) #define CPU_CLOCK_HZ UL UART PORT1 void UAR
IMC-V0.1 예제소스파일 1. UART 소스코드 (page 1-3) 2. Encoder 소스코드 (page 4-7) 3. ADC 소스코드 (page 8-10) UART.h #ifndef _UART_H_ #define _UART_H_ #define DIR_TXD #define DIR_RXD sbi(portd,4) cbi(portd,4) #define CPU_CLOCK_HZ
More information슬라이드 1
AVR(Atmega128) Interrupt 1 Interrupt Polling 사용자가명령어를사용하여입력핀의값을계속읽어서변화를알아냄 모든경우의입력또는값의변화에대응하여처리가가능 Interrupt MCU 자체가하드웨어적으로그변화를체크하여변화시에만일정한동작 하드웨어적으로지원되는몇개의입력또는값의변화에만대응처리가가능 처리속도는일반적인경우인터럽트가빠름 인터럽트발생시
More information<4D F736F F F696E74202D20332EB5F0C1F6C5D0C8B8B7CEBFCD20B1B8C7F62E >
디지털회로 디지털논리의표현 디지털회로 디지털회로구현 dolicom@naver.com http://blog.naver.com/dolicom 논리 논리게이트 논리게이트 논리게이트 (Logic gate) 또는 로구성된 2 진정보를취급하는논리회 (logic circuit) 일반적으로 2 개이상의입력단자와하나의출력단자 기본게이트 : AND OR NOT 기본게이트로부터
More informationChapter. 1 마이크로컨트롤러개요 Jaeheung, Lee
Chapter. 1 마이크로컨트롤러개요 Jaeheung, Lee 목차 1. 마이크로컨트롤러의정의 2. AVR 마이크로컨트롤러개요 3. ATMega128 마이크로컨트롤러 AVR 마이크로컨트롤러 1. 마이크로컨트롤러의정의 2. AVR 마이크로컨트롤러개요 3. ATMega128 마이크로컨트롤러 마이크로프로세서 ALU, 제어회로, 메모리, 타이밍 ( 클럭 ) 회로
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More informationMicrosoft PowerPoint - M07_RTL.ppt [호환 모드]
제 7 장레지스터이동과데이터처리장치 - 디지털시스템의구성 data path 모듈 : 데이터처리, 레지스터, 연산기, MUX, control unit 모듈 : 제어신호발생, 연산의순서지정 - register transfer operation : reg 데이터이동 / 처리 reg set,operation, sequence control - micro-operation
More information학습목차 r 개념으로살펴보는 CPU 속의제어장치 r 마이크로연산 r 제어장치의동작 r 마이크로프로그램을이용한제어 컴퓨터구조 제어장치
컴퓨터구조 제 12 강제어장치 학습목차 r 개념으로살펴보는 CPU 속의제어장치 r 마이크로연산 r 제어장치의동작 r 마이크로프로그램을이용한제어 컴퓨터구조 2 12. 제어장치 학습목표 r 프로세스내의제어장치의기능과역할을공부한다. r 마이크로연산의표현을공부하다. r제어장치의구성과마이크로연산을공부한다. r제어장치의구현방법을알아본다. r 마이크로프로그램을이용한제어장치의구조와동작을공부한다.
More informationPoison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3
Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Example 3.1 Files 3.2 Source code 3.3 Exploit flow
More information2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지
PX-8000 SYSTEM 8 x 8 Audio Matrix with Local Control 2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지역에
More informationPowerPoint 프레젠테이션
AVR Studio 소개 1. AVR Studio 의다운로드 AVR Studio 는 Atmel 사의 8bit MCU 인 AVR 용의통합개발환경툴 (Integrated Development Environment (IDE) tool) 이며프로그램내부에어셈블러, 시뮬레이터, 에뮬레이터를사용한디버거, AVR 용개발툴용소프트웨어가포함되어있다. AVR Studio 는
More information<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>
연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.
More information학습목표 2/33 마이크로프로세서와마이크로컨트롤러의차이를알수있다. 마이크로프로세서에서프로그램이수행되기위한명령어형식과명령어실행절차를알수있다. 프로그램을수행하려면어떤종류의명령어가필요한지알수있다. 현대컴퓨터의기본모델인저장형프로그램컴퓨터의한계점과그한계를완화하려는방법을알수있다.
마이크로프로세서의원리 마이크로컨트롤러 AVR ATmega128 저자 : 이상설 (slee@wku.ac.kr) 소속 : 원광대학교전기 정보통신공학부 학습목표 2/33 마이크로프로세서와마이크로컨트롤러의차이를알수있다. 마이크로프로세서에서프로그램이수행되기위한명령어형식과명령어실행절차를알수있다. 프로그램을수행하려면어떤종류의명령어가필요한지알수있다. 현대컴퓨터의기본모델인저장형프로그램컴퓨터의한계점과그한계를완화하려는방법을알수있다.
More informationMicrosoft PowerPoint - 30.ppt [호환 모드]
이중포트메모리의실제적인고장을고려한 Programmable Memory BIST 2010. 06. 29. 연세대학교전기전자공학과박영규, 박재석, 한태우, 강성호 hipyk@soc.yonsei.ac.kr Contents Introduction Proposed Programmable Memory BIST(PMBIST) Algorithm Instruction PMBIST
More informationMicrosoft Word - 1. ARM Assembly 실습_xp2.doc
ARM asm 의구조 ARM Assembly 실습 1. 기본골격 AREA armex,code, READONLY ;Mark first instruction to execute start MOV r0, #10 MOV r1,#3 ADD r0, r0, r1 ; r0 = r0 + r1 stop NOP NOP B stop ; Mark end of file 위의 asm의구조를이해하고실행해보세요.
More informationJAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각
JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.
More informationMicrosoft PowerPoint - e pptx
Import/Export Data Using VBA Objectives Referencing Excel Cells in VBA Importing Data from Excel to VBA Using VBA to Modify Contents of Cells 새서브프로시저작성하기 프로시저실행하고결과확인하기 VBA 코드이해하기 Referencing Excel Cells
More informationPowerPoint 프레젠테이션
Text-LCD Device Control - Device driver Jo, Heeseung M3 모듈에장착되어있는 Tedxt LCD 장치를제어하는 App 을개발 TextLCD 는영문자와숫자일본어, 특수문자를표현하는데사용되는디바이스 HBE-SM5-S4210 의 TextLCD 는 16 문자 *2 라인을 Display 할수있으며, 이 TextLCD 를제어하기위하여
More information슬라이드 제목 없음
ETOS-DPS-X Guide AC&T SYSTEM 1 ETOS-DPS-X 개요 ETOS-DPS-X Field Bus Network 중 Profibus-DP Network 에연결되는장비. ProfiBus-DP Network 시스템에 DP 통신을지원하지않는현장장비에대한통신서버기능구현. Profibus-DP Slave 동작하기때문에반드시 DP-Master 모듈이있는시스템에서적용가능.
More information