1 / 22

Function Generator

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

Download Presentation

Function Generator

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Function Generator Ubiquitous Application Design 11조 2003731053 최근영 2003731049 임우창 2003731059 계승현 2003731063 김주현

  2. 목 차 설계 목표블록 흐름도프로그램 소스관련 사진Trouble Shooting설계 일정및 역할 분담

  3. 설계 목표 DSP 2811 KIT를 이용하여 함수 발생기 설계 정현파, 삼각파, 펄스파 3가지의 파형 발생 출력 전압, Offset, 주파수 범위 가변 가능 파형, 출력 전압, 주파수 범위 LCD로 표시 키보드를 사용하여 제어

  4. 블록 흐름도 키보드 입력 RS232 통신 DSP LCD로 표시 파형 조절 기본 파형 출력

  5. 프로그램 소스 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; //펄스파//

  6. 프로그램 소스 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;}

  7. 프로그램 소스 if(rd=='3'){ amp = amp + range; rd = '0'; } //3 눌렀을 때 전압 up else if(rd=='4'){ amp = amp - range; rd = '0'; } //4 눌렀을 때 전압 down if(amp >=4000){amp=4000;} if(amp <=0){amp=0;}

  8. 프로그램 소스 if(rd=='5'){ offs=offs+range; rd='0'; } //5 눌렀을 때 offset up else if(rd=='6'){ offs=offs-range; rd='0'; } //6 눌렀을 때 offset down if(offs >=4000){offs=4000;} if(offs <=0){offs=0;}

  9. 프로그램 소스 if(rd=='7'){ range=range*10; rd='0'; } //7 눌렀을 때 범위 × 10 else if (rd=='8'){ range=range/10; rd='0'; } //8 눌렀을 때 범위 ÷ 10 if(range >=1000){range=1000;} if(range <=1){range=1;}

  10. 프로그램 소스 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; } // 펄스파 생성 조건

  11. 프로그램 소스 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; //펄스파

  12. 프로그램 소스 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]); // 변수 값 발생시 각각의 파형 출력

  13. 관련 사진 파형 (정현파) 출력 파형 (삼각파) Offset 파형 (사각파) 주파수 Range

  14. 관련 사진

  15. 관련 사진

  16. Trouble Shooting Problem) 삼각파, 펄스파 생성 함수의 설정 sam = tcnt0 * amp / 500 + offs; sa = up_down * amp + offs; Sol) tcnt0과 up_down 변수를 지정하여 문제를 해결

  17. Trouble Shooting Problem) 수치 변경 시 숫자를 한번 눌렀는데 지정한 값이 계속 올라감. if(rd=='1'){ freq = freq+range; rd='0'; Sol) ‘rd’ 값을 0으로 초기화 함으로써 무한으로 반복하는 현상을 해결

  18. Trouble Shooting 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’ 변수를 지정하여 파형 변환 시 생기는 문제를 해결

  19. 설계 일정 • 결과 발표 4주차 • 포트폴리오 작성 3주차 • 검토 및 외형제작 2주차 • 재료구입 및 회로제작 1주차 • 제안서 작성 및 회로구상

  20. 역할 분담

  21. Q & A

  22. 감 사 합 니 다

More Related