22

Function Generator

Embed Size (px)

DESCRIPTION

Function Generator. Ubiquitous Application Design. 11 조 2003731053 최근영 2003731049 임우창 2003731059 계승현 2003731063 김주현. 목 차. 설계 목표 블록 흐름도 프로그램 소스 관련 사진 Trouble Shooting 설계 일정 및 역할 분담. 설계 목표. DSP 2811 KIT 를 이용하여 함수 발생기 설계. 정현파 , 삼각파 , 펄스파 3 가지의 파형 발생 출력 전압 , Offset, 주파수 범위 가변 가능 - PowerPoint PPT Presentation

Citation preview

Page 1: Function Generator
Page 2: Function Generator

설계 목표블록 흐름도

프로그램 소스관련 사진

Trouble Shooting설계 일정 및 역할 분담

Page 3: Function Generator

1. 정현파 , 삼각파 , 펄스파 3 가지의 파형 발생2. 출력 전압 , Offset, 주파수 범위 가변 가능3. 파형 , 출력 전압 , 주파수 범위 LCD 로 표시4. 키보드를 사용하여 제어

DSP 2811 KIT 를 이용하여 함수 발생기 설계

Page 4: Function Generator

키보드 입력 RS232 통신 DSP

기본 파형 출력파형 조절LCD 로 표시

Page 5: Function Generator

long up_down=0; // 펄스파 변수 //int amp=1000; // 전압 //int freq=1; // 주파수 //int offs=50; //offset//int peak=0; // 전압 피크치 //int range=1; // 변수 바뀌는 범위 //int sam=0; // 삼각파 //int sa=0; // 펄스파 //

Page 6: Function Generator

if(rd=='1'){freq = freq + range;rd = '0';} //1 눌렀을 때 주파수 up

else if(rd=='2'){ freq = freq - range; rd = '0'; } //2 눌렀을 때 주파수

down if(freq >=1000){freq=1000;} if(freq <=1){freq=1;}

Page 7: Function Generator

if(rd=='3'){ amp = amp + range; rd = '0'; } //3 눌렀을 때 전압 upelse if(rd=='4'){ amp = amp - range; rd = '0'; } //4 눌렀을 때 전압 down

if(amp >=4000){amp=4000;}if(amp <=0){amp=0;}

Page 8: Function Generator

if(rd=='5'){ offs=offs+range; rd='0'; } //5 눌렀을 때 offset upelse if(rd=='6'){ offs=offs-range; rd='0'; } //6 눌렀을 때 offset down

if(offs >=4000){offs=4000;}if(offs <=0){offs=0;}

Page 9: Function Generator

if(rd=='7'){ range=range*10; rd='0'; } //7 눌렀을 때 범위 × 10else if (rd=='8'){ range=range/10; rd='0'; } //8 눌렀을 때 범위 ÷ 10

if(range >=1000){range=1000;}if(range <=1){range=1;}

Page 10: Function Generator

if(tcnt0 >= ARRAY_LEN){up_down= 1;

}else if(tcnt0<=0){

up_down=0;} // 삼각파 생성 조건 if(up_down == 1){

tcnt0=tcnt0-freq;}else if(up_down==0){

tcnt0=tcnt0+freq;} // 펄스파 생성 조건

Page 11: Function Generator

peak= amp+offs;if (peak >=4000) {peak= 4000;} // 피크 값 범위

if(++idx >= ARRAY_LEN) idx = 0;sv[idx] = sin(freq * 2 * PI * idx/(ARRAY_LEN-1)) * amp + offs + 2048;// 정현파 생성 함수

sam = tcnt0 * amp / 500 + offs; // 삼각파sa = up_down * amp + offs; // 펄스파

Page 12: Function Generator

if(rd=='w') r2='w';else if(rd=='e') r2='e';else if(rd=='q') r2='q';

// 키 입력이 되면 변수 r2 로 지정

if (r2=='w') out_dac(1,sam);else if (r2=='e') out_dac(1,sa);else if (r2=='q') out_dac(1,sv[idx]);

// 변수 값 발생시 각각의 파형 출력

Page 13: Function Generator

파형 ( 정현파 )파형 ( 삼각파 )

파형 ( 사각파 )

출력Offset

주파수

Range

Page 14: Function Generator
Page 15: Function Generator
Page 16: Function Generator

Problem) 삼각파 , 펄스파 생성 함수의 설정

sam = tcnt0 * amp / 500 + offs; sa = up_down * amp + offs;

Sol) tcnt0 과 up_down 변수를 지정하여 문제를 해결

Page 17: Function Generator

Problem) 수치 변경 시 숫자를 한번 눌렀는데 지정한 값이 계속 올라감 .

if(rd=='1'){freq = freq+range;rd='0';

Sol) ‘rd’ 값을 0 으로 초기화 함으로써 무한으로 반복하는 현상을 해결

Page 18: Function Generator

Problem) 파형 변경 시 전압 , 오프셋 등 변수 값은 초기화 되는데 LCD 에 표시된 값은 변화 없음

if(rd=='w') r2='w';else if(rd=='e') r2='e';else if(rd=='q') r2='q';

if (r2=='w') out_dac(1,sam);else if (r2=='e') out_dac(1,sa);else if (r2=='q') out_dac(1,sv[idx]);

Sol) ‘r2’ 변수를 지정하여 파형 변환 시 생기는 문제를 해결

Page 19: Function Generator

• 결과 발표

• 포트폴리오 작성

• 검토 및 외형제작

• 재료구입 및 회로제작

• 제안서 작성 및 회로구상1주차

2주차

3주차

4주차

Page 20: Function Generator

관련 이론 수집

보고서 작성 부품 구입 외형 제작 회로 구성 작품 검토

최근영

임우창

계승현

김주현

Page 21: Function Generator
Page 22: Function Generator