Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee

Similar documents
목차 1. 키패드 (KeyPAD) 2. KeyPAD 를이용한비밀번호입력기

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

정보보안 개론과 실습:네트워크

슬라이드 1

Microsoft PowerPoint - 제5장 인터럽트 (HBE-MCU-Multi AVR).ppt [호환 모드]

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

ATmega128

목차 1. A/D 컨버터개요 2. ATMega128 의 A/D 컨버터기능 3. A/D 컨버터로광센서읽기

Microsoft PowerPoint - 제3장 GPIO 입출력 제어 (HBE-MCU-Multi AVR)

Microsoft PowerPoint - Java7.pptx

lecture4(6.범용IO).hwp

Microsoft PowerPoint - es-arduino-lecture-03

Microsoft Word doc

2주차: 입출력 제어 복습

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

K&R2 Reference Manual 번역본

그룹웨어와 XXXXX 제목 예제

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

1. 제품소개 1.1 제품소개 < 그림 1.1> 도트매트릭스모듈 하드웨어제작에소요되는시간을단축시켜프로그래밍연구개발및학습효과를극대화시켜주는 16x16 도트매트릭스모듈입니다. 또한당사 AVR, PIC, ARM(STM32F) 개발보드와 1P 점퍼클립케이블을이용하여연동이가능하

HBE-MCU-Multi 로배우는 마이크로컨트롤러 (AVR 편 ) 마이크로컨트롤러기능 제 6 장타이머와카운터

PowerPoint 프레젠테이션

가. 도트매트릭스제어하기 단일 LED와는다르게도트매트릭스를구동시는구동전류가프로세서에서출력되는전류보다사용량을더많이필요하기때문에 TTL 계열의 IC로구동시키기에는무리가따른다. 이러한문제를해결하기위해서사용전압, 전류정격이높은달링턴트랜지스터가어레이형태로들어있는 ULN2803을

untitled

인터럽트 * 인터럽트처리메커니즘 ATmega128 인터럽트 2

Microsoft PowerPoint - 부호기와 복호기.PPT

목차 1. ATMega128의외부메모리인터페이스 2. TEXT LCD 3. TEXT LCD에글자쓰기 4. SRAM 5. 외부메모리인터페이스에 SRAM붙이기


프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

API 매뉴얼

PowerPoint 프레젠테이션

PowerPoint Presentation

PowerPoint 프레젠테이션

[8051] 강의자료.PDF

실험 5

뉴티씨 (NEWTC) 2. FB-CY4E-DEV (FPGA 개발 키트) 구성도 Port Select SW 7 Segment Text LCD UART RS-232C JTAG PORTA (5V) Active Serial PORTB (5V) OSC. 50MHz Analog

PowerPoint 프레젠테이션

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - ch11_reg.pptx

// 변수선언 unsigned char i; unsigned char FONT[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xD8, 0x80, 0x98}; //PORTA 를출력으로설정하고초기값은모두 0 PORTA = 0x00; DD

PowerPoint 프레젠테이션

T100MD+

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Microsoft PowerPoint - VHDL08.ppt [호환 모드]

Microsoft Word - PLC제어응용-2차시.doc

untitled

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint - M07_RTL.ppt [호환 모드]

온습도 판넬미터(JTH-05) 사양서V1.0

IoT FND8 7-SEGMENT api

API 매뉴얼

중간고사

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

Microsoft Word - JAVS_UDT-1_상세_메뉴얼.doc

Microsoft PowerPoint - chap06-2pointer.ppt

PowerPoint 프레젠테이션

PowerPoint Presentation

DVI-CL01 매뉴얼

PowerPoint 프레젠테이션

03장.스택.key

Chapter #01 Subject

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

1_12-53(김동희)_.hwp

인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

PowerPoint 프레젠테이션

Chapter 4. LISTS

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

목차 1. UART와 RS232 개요 2. ATMega128의 USART 포트 3. UART로 Hello 보내기 4. UART로 PC와데이터주고받기

ez-md+_manual01

슬라이드 1

PowerPoint 프레젠테이션

1. SeeEyes HD-SDI 전송장치 개요 개요 HD-SDI 전송 솔루션 신기술 적용을 통한 고성능 / 경제적 CCTV 시스템 구축 Power over Coax 기능을 포함한 HD-SDI 전송 솔루션 저렴한 동축케이블을 이용하여 HD-SDI 신호를 원거리 전송 (H

Microsoft Word - logic2005.doc

컴파일러

歯superimp.PDF

CANTUS Evaluation Board Ap. Note

KEY 디바이스 드라이버

CAN-fly Quick Manual

Microsoft Word - logic2005.doc

C 언어 프로그래밊 과제 풀이

개요 데이터를저장할수있는기억소자 여러개의플립플롭으로구성. 메모리는단순데이터를저장하는소자이지만, 레지스터는저장뿐아니라저장된데이터를처리할수있는기능도있다. 카운터도클록펄스가입력되면미리정해진순서에따라상태가변하는레지스터이다. 카운터와레지스터의차이점 데이터를저장또는이동하는목적으로

한국기술교육대학교장영조 한국기술교육대학교전기전자통신공학부 1

¾Ë·¹¸£±âÁöħ¼�1-ÃÖÁ¾

01....b

2007백서-001-특집

00목차

(291)본문7

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

고급 프로그래밍 설계

UART.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

5.스택(강의자료).key

BMP 파일 처리

디지털TV솔루션 브로셔

C 프로그래밊 개요

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Formatvorlage für Arbeitsanweisungen

Transcription:

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변환기와함께마이크로프로세서응용회로에서널리사용됨. 성능평가요소 : 변환시간, 분해능, 선형성 분해능이높을수록섬세한아날로그값을출력할수있다. 인터페이스에따른분류 n n 병렬 D/A 컨버터직렬 D/A 컨버터

D/A 변환기 병렬 D/A 변환기 (Parallel DAC) DAC 모듈의병렬 D/A 변환기인 AD7302 는두개의출력채널을가지는 8 bit DAC 임. 0~255 까지의디지털데이터를 0V~5V 사이의아날로그신호로바꿔줌. 병렬 D/A 변환기 (AD7302) 핀설명 Pin Name 기능 D7~D0 데이터입력, CS 및 WR의제어신호를통해내부버퍼에로드된다. CS Chip Select. Low 신호에동작한다. WR Write Enable. Low 신호에서동작되며 CS와 A/B에의해동작이결정된다. A/B DAC Select. AD7302는두개의출력포트를지원하며출력값을설정할때설정할포트를지정하는역할을한다. LDAC 내부레지스터에설정된포트값에해당하는출력을업데이트하는역할을하며이값을 0 으로고정할경우 WR의값이상승할때출력값이업데이트되도록구성할수있다. CLR 내부레지스터의값을초기화하는역할을한다. VOUT DAC 출력이며그범위는 0V ~ 5.0V 이다.

D/A 변환기 병렬 D/A 변환기 AD7302 신호의타이밍도

D/A 변환기 직렬 D/A 변환기 (Serial DAC) DAC 모듈의직렬 D/A 변환기 DAC081S101 은시리얼인터페이스를가지는 8 비트 D/A 변환기임. 0~255 까지의디지털데이터를 0V~5V 사이의아날로그신호로바꿔줌. 직렬 D/A 변환기 (DAC081S101) 핀설명 Pin Name 기능 DIN SCLK Serial Data Input. SYNC 가하강후 CLK 하강타이밍을기준으로 16bit 가입력된다. Serial Clock Input. DIN 입력에대한래치클럭 SYNCN 데이터의시작을알리는신호로데이터입력구간동안 Low 값을가진다. VOUT DAC 출력이며그범위는 0V ~ 5.0V 이다.

D/A 변환기 직렬 D/A 변환기 DAC081S101 신호의타이밍도

실습 21 : 병렬 DAC 를이용한 LED 밝기제어 실습개요 DAC 모듈의병렬 D/A 변환기를이용하여 LED 의밝기를조절하도록한다. DAC 로디지털데이터를출력하여 DAC 에서변환된아날로그신호가 LED 에입력되어그값의크기에따라 LED 의밝기가제어된다. 실습목표 병렬 D/A 변환기의아날로그출력특성을이해 ATmega128 를이용한병렬 D/A 변환기구동방법습득

실습 21 : 병렬 DAC 를이용한 LED 밝기제어 사용모듈 : MCU 모듈, LED 모듈, DAC 모듈 포트 E, G DAC 모듈병렬 DAC 에연결 MCU 모듈 DAC Analog 출력 LED 모듈 LED 모듈 Signal DAC 모듈병렬 DAC Signal DAC 모듈

실습 21 : 병렬 DAC 를이용한 LED 밝기제어 사용모듈 : DAC 모듈의병렬 DAC 부회로

실습 21 : 병렬 DAC 를이용한 LED 밝기제어 모듈결선방법 MCU 모듈포트 E 의 PE0 ~PE7 을 8 핀케이블로 DAC 모듈의 P_DB0 ~ 7 까지연결 MCU 모듈포트 G 의 PG0 를 DAC 모듈의 P_CS 에, PG1 을 P_WR 에, PG2 를 P_LDAC 에, PG3 를 P_A/B 에연결 병렬 DAC 의아날로그출력단자 OUTA, OUTB 를 2 핀케이블 2 개를이용해서 LED 모듈의 LED 0 와 1 에연결

실습 21 : 병렬 DAC 를이용한 LED 밝기제어 구동프로그램 : 사전지식 개요 n 아날로그출력 A 와 B 에각각다른입력데이터를넣어서그출력에연결된 LED 의밝기를 A 는점점밝아지게, B 는점점어두워지게만들도록한다 n 데이터입력시 A/B 신호를번갈아 0 (A 출력 ) 과 1 (B 출력 ) 로넣어주어야한다. 소스구성 n p_dac_lib.c : DAC 를초기화하는함수와 DAC 에데이터를입력시키는함수를정의 n Parallel_DAC.c : 메인프로그램파일

실습 21 : 병렬 DAC 를이용한 LED 밝기제어 구동프로그램 : 사전지식 병렬 DAC 구동을위한신호구현순서 1) CS, WR 는 low( 0 ) 가될때동작을하므로처음에는 high( 1 ) 로설정한다. 2) LDAC 핀이 low( 0 ) 를유지하면 Auto update 모드로동작한다. 3) D/A 변환을하려면우선, 출력할 AB 포트중하나를선택한다. 4) 그리고, 칩선택을위해 CS 핀을 low ( 0 ) 로한다. 5) 데이타를쓰기위해 WR 를 low( 0 ) 로한다. 6) 공식 V out = 2 x (N /256) x Vref 에맞춰서데이타를입력한다. N : 입력하는데이타 Vref : 입력전압 (5v) / 2 7) WR, CS 을다시 high( 1 ) 로해주는순간전압이출력된다.

실습 21 : 병렬 DAC 를이용한 LED 밝기제어 구동프로그램 : 소스분석 P_dac_lib.h 1-1) #include<avr/io.h> #define OUTA 0x00 #define OUTB 0x08 #define AD7302_DATA PORTE #define AD7302_DATA_DDR DDRE #define AD7302_CTRL PORTG #define AD7302_CTRL_DDR DDRG #define P_CS 0x01 #define P_WR 0x02 #define P_LDAC 0x04 #define P_AB 0x08 void DAC_init(); void DAC_vol_gen(unsigned char selab,unsigned char voltage);

실습 21 : 병렬 DAC 를이용한 LED 밝기제어 구동프로그램 : 소스분석 P_dac_lib.c 2-1) #include"p_dac_lib.h void DAC_init(){ AD7302_DATA_DDR = 0xFF; AD7302_DATA = 0x00; // data 출력 AD7302_CTRL_DDR = P_CS P_WR P_LDAC P_AB; } AD7302_CTRL = P_CS P_WR ; //Auto Update Moce

실습 21 : 병렬 DAC 를이용한 LED 밝기제어 2-2) void DAC_vol_gen(unsigned char selab,unsigned char voltage){ AD7302_CTRL &= ~P_AB ; AD7302_CTRL = selab; AD7302_CTRL &= ~P_CS; AD7302_CTRL &= ~P_WR; AD7302_DATA = voltage; AD7302_CTRL = P_WR; AD7302_CTRL = P_CS; // 출력선택 // 전압선택 }

실습 21 : 병렬 DAC 를이용한 LED 밝기제어 구동프로그램 : 소스분석 Parallel_DAC.c 3-1) #include<avr/io.h> #include<util/delay.h> #include"p_dac_lib.h #define DELAY_MS(x) {static unsigned int _i; \ for(_i=0;_i<x;_i++) \ _delay_ms(1); } int main() { unsigned char VolA = 0x01, VolB = 0xFF; 3-2) DAC_init(); //Parallel DAC 초기화함수 while(1){

실습 21 : 병렬 DAC 를이용한 LED 밝기제어 3-3) DAC_vol_gen(OUTA,VolA); //DAC 에데이터를전송 DAC_vol_gen(OUTB,VolB); 3-4) VolA+ = 4; VolB- = 4; VolA = (VolA == 0? 0x01 : VolA); VolB = (VolB == 0? 0xFF : VolB); DELAY_MS(10); } return 0; } //OUTA 에는전압상승발생 //OUTB 에는전압하강발생 //10ms 단위로딜레이발생

실습 21 : 병렬 DAC 를이용한 LED 밝기제어 실행결과

실습 22 : 직렬 DAC 를이용한 LED 밝기제어 실습개요 DAC 모듈의직렬 D/A 변환기를이용하여 LED 의밝기를조절하도록한다. DAC 로디지털데이터를출력하여 DAC 에서변환된아날로그신호가 LED 에입력되어그값의크기에따라 LED 의밝기가제어된다. 실습목표 직렬 D/A 변환기의아날로그출력특성을이해 ATmega128 를이용한직렬 D/A 변환기구동방법습득

실습 22 : 직렬 DAC 를이용한 LED 밝기제어 사용모듈 : MCU 모듈, LED 모듈, DAC 모듈 MCU 모듈 포트 A DAC 모듈직렬 DAC 에연결 LED 모듈 LED 모듈 Signal DAC Analog 출력 DAC 모듈 DAC 모듈직렬 DAC Signal

실습 22 : 직렬 DAC 를이용한 LED 밝기제어 사용모듈 : DAC 모듈의직렬 DAC 부회로

실습 22 : 직렬 DAC 를이용한 LED 밝기제어 모듈결선방법 직렬 DAC 의아날로그출력단자 OU T_C 는 LED 모듈의 LED 0 에연결 MCU 모듈포트 A 의 PA0 를 DAC 모듈의 S_DIN 에, PA1 을 S_CLK 에, PA2 를 S_SYNC 에연결

실습 22 : 직렬 DAC 를이용한 LED 밝기제어 구동프로그램 : 사전지식 개요 n 아날로그 DAC 에입력데이터를넣어서그출력인 OUT_C 에연결된 LE D 의밝기를점점밝아지게만들도록한다. 직렬 D/A 변환기의입력신호 n CLK 신호에맞추어데이터가한비트씩입력되는데, 그최상위비트의위치를알려주기위해 SYNC 신호를필요로한다. n SYNC 핀이 low 가될때쓰기 (write) 작업을실시 n SYNC 가 low 이고, SCLK 가하강에지일때, Din 이쉬프트 (shift) 레지스터에저장 n 마지막 16 번째비트의 SCLK 하강에지가되면, 정해진동작이시작되며, SYNC 가 high( 1 ) 가되면전압이출력 n 출력전압 : Vout ( 출력전압 ) = Va ( 입력전압 ) x ( 입력값 / 256)

실습 22 : 직렬 DAC 를이용한 LED 밝기제어 구동프로그램 : 사전지식 직렬 DAC 구동을위한신호구현순서 1) 먼저 SYNC 를 high( 1 ) 로만든다. 2) CLK 를 High( 1 ) 로만들었다가잠시후다시 Low( 0 ) 로만든다. 3) 잠시후 SYNC 를 Low( 0 ) 로만든다. 4) CLK 를 High( 1 ) 로만들고, 잠시후데이터를 1 비트보낸다. 5) 잠시후 CLK 를 Low( 0 ) 로만든다. 6) 데이터가모두전달될때까지 4~5 를반복한다.

실습 22 : 직렬 DAC 를이용한 LED 밝기제어 구동프로그램 : 소스분석 Serial_DAC.c 1) #include<avr/io.h> #include<util/delay.h> #define DELAY_MS(x) { static unsigned int _i; \ for(_i=0;_i<x;_i++) \ _delay_ms(1); } #define CLK 0x02 #define Din 0x01 #define SYNC 0x04 #define DAC_PORT PORTA #define DAC_DDR DDRA unsigned char outvol=0;

실습 22 : 직렬 DAC 를이용한 LED 밝기제어 2) void Convert_sDAC(unsigned char tmp); int main(){ DAC_DDR = CLK Din SYNC; DAC_PORT = 0x00; unsigned char VolC = 0x00; Convert_sDAC(0x00); // 초기출력전압 3) while(1){ Convert_sDAC(VolC); VolC+ = 4; VolC =(VolC == 0? 0x01 : VolC); // 전압상승 DELAY_MS(10); //10ms단위로딜레이발생 } return 0; }

실습 22 : 직렬 DAC 를이용한 LED 밝기제어 3) void Convert_sDAC(unsigned char tmp){ unsigned int data=0,mask; unsigned char i; mask = 0x8000; data = tmp<<4; // write sequence PORTA = SYNC; asm("nop"); PORTA = (CLK); asm("nop"); PORTA &= ~(CLK); asm("nop"); PORTA &= ~SYNC; asm("nop");

실습 22 : 직렬 DAC 를이용한 LED 밝기제어 3) for(i=0;i<16;i++){ //data 전송 PORTA = (CLK); asm("nop"); if(data & mask) PORTA = Din; //( 조건문사용 ) 포트A를 Din으로출력 else PORTA &= ~(Din); // 포트A를반전 Din으로출력 asm("nop"); PORTA &= ~(CLK); // 포트A를반전 CLK로출력 asm("nop"); data <<= 1; } }

실습 22 : 직렬 DAC 를이용한 LED 밝기제어 실행결과