.B khuy ch dis d ng trong khóa l un (AD620)

Một phần của tài liệu Tìm hiểu chung về vi điều khiển DsPic30F (Trang 52)

M Ðu

3.1.4.2.B khuy ch dis d ng trong khóa l un (AD620)

Trong khóa lu n này b khuy ch d i dã xây d ng có s d ng vi m ch AD620, so d c th du c trình bày nhu hình 3.18

ÐH Công Ngh - ÐHQG Hà N i Khóa Lu n T t Nghi p

Hình 3.18. B khuy ch d i thu t toán s d ng IC AD620

AD620 là lo i IC khuy ch d i thu t toán khá t t, nó có kh nang khuy ch d i tín hi u t i 1000 l n, tùy thu c vào di n tr ph i ghép. M t d n l i vào 9nV/ Hz , bang

thông c a b khuy ch d i là 120KHz

Ð khuy ch d i du c tính theo công th c:

1 4 , 49 1 4 , 49 G k R R k G G G Trong khóa lu n RG chính là R7. 3.1.5. Kh i LCD

Trong khóa lu n này em s d ng LCD hi n th 16 ký t 2 dòng. Giao ti p 8 bit. LCD có tác d ng hi n th k t qu cu i cùng c a bài toán. Các chân di u khi n c a LCD du c k t n i v i các chân I/O c a vi di u khi n dsPic30F4011. LCD du c ho t d ng thông qua s di u khi n c a vi di u khi n (VÐK) dsPic30F4011.

ÐH Công Ngh - ÐHQG Hà N i Khóa Lu n T t Nghi p

Hình 3.19. LCD 16 ký t 2 dòng 3.1.6. Kh i x lý trung tâm

Kh i x lý trung tâm trong khóa lu n s d ng vi di u khi n DsPic30F4011. Kh i x lý trung tâm có nhi m v bi n d i tín hi u vào thành tín hi u s sau dó nó s dùng b dsp d x lý tín hi u d cho ta k t qu cu i cùng dua ra LCD(g m có th c hi n các phép nhân và s d ng b l c s FIR )..

Th t thú v trong VÐK DsPic30F4011 có tích h p b chuy n d i AD nhu dã trình bày ph n 2.3.7 trong chuong 2. Công vi c c a ngu i s d ng là chuong trình hóa cho VÐK d th c hi n vi c chuy n d i AD.

B x lý s dsp du c tích h p s n trong VÐK DsPic30F4011 làm cho vi c thi t k cung don gi n hon, v i nh ng hàm thu vi n có s n do Microchip cung c p.

3.2. Ph n M m

Trong khóa lu n này em s d ng ph n m m MPLab c a công ty Microchip Technology d th c hi n vi t chuong trình cho kh i x lý trung tâm (c th dây là vi di u khi n dsPic30F4011). Và em dùng ngôn ng C (C30) d vi t chuong trình. Trong chuong trình có s d ng thu vi n chu n c a Microchip cung c p (nhu p30fxxx.h,

ÐH Công Ngh - ÐHQG Hà N i Khóa Lu n T t Nghi p Modul chuong trình : Hình 3.20. So d kh i chuong trình Kh i t o LCD Kh i T o Timer Kh i T o ADC Kh i T o Reference signal ref_signal x input_signal = I ref_signal_90 x input_signal=Q FIR Filter I,Q Final 2 2 Q I Magnitude ) / ( tan 1 Q I Phase Display LCD MAIN

ÐH Công Ngh - ÐHQG Hà N i Khóa Lu n T t Nghi p

3.3. Các k t qu th c nghi m:

3.3.1. M ch khuy ch d i lock-in dã ch t o và tín hi u vào ra lock in:

M ch di n du c thi t k trên ph n m m portel (xem hình 3.21), so d m ch nguyên lý trình bày chi ti t ph n ph l c

ÐH Công Ngh - ÐHQG Hà N i Khóa Lu n T t Nghi p

Tín hi u reference thu du c sau khi s d ng b chuy n d i DA 4bit theo ki u m ng R/2R du c bi u di n các hình 3.22 và 3.23.

Tín hi u reference khi chua qua b l c sallen-key

Hình 3.22. Tín hi u reference khi chua qua b l c sallen-key

Tín hi u reference khi qua b l c sallen-key

Hình 3.23. Tín hi u reference khi qua b l c sallen-key (adsbygoogle = window.adsbygoogle || []).push({});

Tín hi u refrence này s cung c p cho c m bi n c n kh o sát. T n s c a tín hi u reference này có th thay d i du c b ng cách l p trình cho vi di u khi n.

ÐH Công Ngh - ÐHQG Hà N i Khóa Lu n T t Nghi p

Tích c a tín hi u vào và tín hi u reference du c trình bày trên các hình 3.24 và 3.25.

Hình 3.24. Tích hai tín hi u cùng pha và d l ch trung bình DC c a tín hi u thu du c khi qua b l c thông th p

S mô ph ng trên hình 3.24(s d ng ph n m m Micro-Cap Evaluation) cho ta th y m t phép nhân gi a hai tín hi u cùng pha (tín hi u vào và tín hi u tham chi u(reference)).

Phép nhân này cho k t q a là m t tín hi u có t n s b ng hai l n t n s reference và có m c trung bình trên m c 0(duong).

Khi tín hi u này qua b l c thông th p chúng ta s thu du c 1 m c DC t l v i tín hi u vào.

ÐH Công Ngh - ÐHQG Hà N i Khóa Lu n T t Nghi p

Hình 3.25. Tích hai tín hi u l ch pha 900 và d l ch trung bình DC c a tín hi u thu du c khi qua b l c thông th p

Hình 3.25. cho th y tích gi a hai tín hi u (tín hi u vào và tín hi u tham chi u (reference)) khi chúng khác pha nhau 900.

V i phép nhân ta thu du c m t tín hi u có t n s b ng hai l n t n s reference nhung m c trung bình là b ng 0.

ÐH Công Ngh - ÐHQG Hà N i Khóa Lu n T t Nghi p

Hình 3.26 ch ra k t qu phép nhân c a tín hi u reference và tín hi u vào trong th c t khi tín hi u vào có pha t p n nhi u.

Hình 3.26.

a) Tín hi u d u vào và tín hi u tham chi u b)Tích c a chúng 3.3.2.Th nghi m b khuy ch d i lock-in v i c m bi n áp su t MPX2300D:

Ð dánh giá và kh nang do d c c a b khuy ch d i lock-in dã xây d ng em th c hi n thi t k m t h do cho sensor áp su t MPX2300D.

3.3.2.1. C m bi n áp su t MPX2300D:

- C m bi n áp su t MPX2300D là m t s n ph m thuong m i c a công ty Motorola. - MPX2300D ch u d ng du c áp l c t 0mmHg d n 300mmHg và v i m i áp l c1mmHg MPX2300D cho ta m t di n th ra 1uV (1uV/mmHg).

- So d chân c m bi n MPX2300D (xem b ng 3.1) cùng v i hình dáng bên ngoài

B ng 3.1. So d chân c m bi n MPX2300D So d chân c a c m bi n MPX2300D 1 2 3 4 Vs S+ S- GND a) b)

ÐH Công Ngh - ÐHQG Hà N i Khóa Lu n T t Nghi p

Hình dáng bên ngoài và bên trong c m bi n du c bi u di n trên hình 3.27a và 3.27b

a) b)

Hình 3.27. a)Hình dáng bên ngoài MPX2300D b)Hình dáng bên trong MPX2300D

3.3.2.2. K t qu thí nghi m:

So d h do th nghi m lock-in s s d ng c m bi n áp su t du c trình bày nhu hình 3.28. Hình 3.28. So d h do c m bi n MPX2300 Hình 3.29. ch ra cách m c cho h do Hình 3.29. Cách m c h do th nghi m B Khuy ch Ð i Lock-In Sensor MPX2300D Reference signal

Signal Input K t q a (hi n th trên LCD) Tác d ng áp su t Ð u vào b khuy ch d i lock-in Lock-in Amlifier (adsbygoogle = window.adsbygoogle || []).push({});

ÐH Công Ngh - ÐHQG Hà N i Khóa Lu n T t Nghi p H do th c t du c trình bày trên hình 3.30 Hình 3.30. H do th c t K t q a do th c a b lock-in s dùng c m bi n áp su t MPX2300D d th nghi m du c trình bày trên b ng 3.2 Áp su t vào K t qu 10mmHg 9,8uV 15mmHg 14,6uV 20mmHg 21,3uV 25mmHg 24,3uV 30mmHg 32,1uV 40mmHg 40,3uV 50mmHg 53,8uV B ng 3.2. K t qu do

ÐH Công Ngh - ÐHQG Hà N i Khóa Lu n T t Nghi p

K t q a do du c bi u di n trên các hình 3.31 và 3.32

Hình 3.31. M i quan h gi a tín hi u ra theo th i gian

Hình 3.32. M i quan h gi a áp su t dua vào và tín hi u ra

V(uV)

ÐH Công Ngh - ÐHQG Hà N i Khóa Lu n T t Nghi p

K t Lu n K t qu thu du c sau khi khóa lu n du c th c hi n: K t qu thu du c sau khi khóa lu n du c th c hi n:

- Tìm hi u v c u t o và nguyên t c ho t d ng c a b khuy ch d i lock-in - N m v ng c u trúc và l p trình t t cho vi x lý dsPic30F4011.

- Bi t cách s d ng Matlab d thi t k m t b l c.

- S dùng thành th o ph n m m v m ch in protel và orcad - Hi u rõ v nh ng phuong pháp bi n d i ADC và DAC.

- Xây d ng du c cho b n thân cách làm vi c khoa h c, cách tu duy có h th ng khi th c hi n m t khóa lu n.

- Ch t o m t b khuy ch d i lock-in và dã th nghi m v i m t sensor áp su t.

Ðánh giá k t qu thu du c và hu ng phát tri n c a khóa lu n:

- Có th s d ng b khuy ch d i lock-in s dã ch t o cho nhi u thí nghi m v i nhi u lo i sensor khác nhau.

- B khuy ch d i lock-in dang còn sai s và d n d nh v n chua cao. - M ch v n chua du c g n gàng

- Vì th i gian th c hi n d tài là khá ng n nên h do chua du c th nghi m nhi u, do dó dánh giá chua th t khách quan.

- Hu ng phát tri n ti p c a d tài là rút g n m ch di n, tang d chính xác cho h do qua dó có th thuong m i hóa h do.(Có th s d ng h do có nhân là b khuy ch d i lock- in cho nh ng c m bi n y sinh h c – Bio Sensor).

ÐH Công Ngh - ÐHQG Hà N i Khóa Lu n T t Nghi p Ph L c Mã ngu n chuong trình: //---Main--- #include <p30f4011.h> #include <stdio.h> #include "common.h" #include "dsp.h" #include "lcd8bit.h" #include "delay.h" #include "string.h" _FOSC(CSW_FSCM_OFF & XT_PLL16); _FWDT(WDT_OFF);

_FBORPOR(PBOR_OFF & MCLR_EN); _FGS(CODE_PROT_OFF);

extern FIRStruct lowpassexample_psvFilter; /*Contains filter structures for FIR-LPF*/ extern FIRStruct fir_oneFilter;

extern FIRStruct fir_baFilter; extern FIRStruct fir_cuoiFilter; fractional i_Ptr_sig[NUMSAMP]; fractional input_I_signal[NUMSAMP]; fractional input_Q_signal[NUMSAMP]; fractional output_I_signal[NUMSAMP]; fractional output_Q_signal[NUMSAMP]; fractional* i_Ptr;

unsigned int ref_input_s90; unsigned int ref_input; unsigned int doFilterFlag; int main(void)

{

ÐH Công Ngh - ÐHQG Hà N i Khóa Lu n T t Nghi p float fI,fQ; float mag,phi; char sBuff[40]; TRISE = 0xFFF0; FIRDelayInit(&lowpassexample_psvFilter); FIRDelayInit(&fir_oneFilter); FIRDelayInit(&fir_baFilter); // Uart_Init(); Init_Timers(); Init_ADC(); TMR1 = 0; TMR2 = 0; TMR3 = 0; T1CONbits.TON = 1; T2CONbits.TON = 1; T3CONbits.TON = 1; while(!doFilterFlag); while (1) { if (doFilterFlag) {

i_Ptr =& i_Ptr_sig[0]; adc = Fract2Float(i_Ptr_sig[0]); nhan1=Fract2Float(i_Ptr_sig[0])*ref_input; nhan2=Fract2Float(i_Ptr_sig[0])*ref_input_s90; input_I_signal[0] = Float2Fract(nhan1); input_Q_signal[0] = Float2Fract(nhan2); FIR(NUMSAMP,&output_I_signal[0],&input_I_signal[0],&fir_oneFilter); FIRDecimate(NUMSAMP,&output_I_signal[10],&input_I_signal[10],&fir_oneFilter,10); FIR(NUMSAMP,&output_Q_signal[0],&input_Q_signal[0],&fir_oneFilter);

ÐH Công Ngh - ÐHQG Hà N i Khóa Lu n T t Nghi p FIRDecimate(NUMSAMP,&output_Q_signal[10],&input_Q_signal[10],&fir_oneFilter,1 0); FIR(NUMSAMP,&output_I_signal[0],&input_I_signal[0],&lowpassexample_psvFilter); FIRDecimate(NUMSAMP,&output_I_signal[8],&input_I_signal[8],&lowpassexample_p svFilter,8); FIR(NUMSAMP,&output_Q_signal[0],&input_Q_signal[0],&lowpassexample_psvFilter ); FIRDecimate(NUMSAMP,&output_Q_signal[8],&input_Q_signal[8],&lowpassexample_ psvFilter,8); FIRDecimate(NUMSAMP,&output_I_signal[0],&input_I_signal[0],&fir_baFilter,2); FIRDecimate(NUMSAMP,&output_Q_signal[0],&input_Q_signal[0],&fir_baFilter,2); FIR(NUMSAMP,&output_I_signal[0],&input_I_signal[0],&fir_cuoiFilter); FIR(NUMSAMP,&output_Q_signal[0],&input_Q_signal[0],&fir_cuoiFilter); fI = Fract2Float(output_I_signal[0]); fQ = Fract2Float(output_Q_signal[0]); ... Init_LCD(); // lcd_cmd(lcd_homeL1);

print_lcd(0x80,"TIN HIEU DO DUOC"); // sprintf(sBuff," PHI = %8.4f ",phi);

puts_lcd(sBuff,strlen(sBuff)); lcd_cmd(lcd_homeL2); (adsbygoogle = window.adsbygoogle || []).push({});

sprintf(sBuff," MAG = %8.5f ",mag); puts_lcd(sBuff,strlen(sBuff)); // RS232XMT(sBuff); doFilterFlag = 0; } } return 0;

ÐH Công Ngh - ÐHQG Hà N i Khóa Lu n T t Nghi p } //---Isr_Timers--- #include <p30f4011.h> #include "common.h" #include "dsp.h"

volatile unsigned char _sinTableIndex; extern unsigned int ref_input_s90; extern unsigned int ref_input;

static unsigned char sinTable[] = {5,6,7,8,9,9,10,10,10,10,10,9,9,8,7,6,5,4,3,2,1,1,0,0 ,0,0,0,1,1,2,3,4};

static unsigned char sinTable_s90[] = {10,10,10,9,9,8,7,6,5,4,3,2,1,1,0,0,0,0,0,1,1,2,3 ,4,5,6,7,8,9,9,10,10};

void __attribute__((__interrupt__,no_auto_psv)) _T2Interrupt( void ) { _sinTableIndex++; _sinTableIndex &= 0b00011111; LATE = (sinTable[_sinTableIndex]); ref_input = (sinTable[_sinTableIndex]); ref_input_s90 = (sinTable_s90[_sinTableIndex]); IFS0bits.T2IF = 0; // Xoa co ngat

}

//--lcd--

#include "p30f4011.h" #include "delay.h" #include "lcd8bit.h"

void print_LCD(char a,char *s); void Init_LCD( void );

void lcd_cmd( char cmd ); void lcd_data( char data ) ;

ÐH Công Ngh - ÐHQG Hà N i Khóa Lu n T t Nghi p

// cai dat lcd

void Init_LCD( void ) {

TRISB &= 0xFF00; // cai dat 8 bit (RB0...RB7) la out con lai la in RW_TRIS = 0; // cai dat RW la out

RS_TRIS = 0; // cai dat RS la out E_TRIS = 0; // cai dat E la out LATB &= 0xFF00;

RW = 0; // RW = low RS = 0; // RS = low E = 0; // E = low

lcd_cmd( lcd_8bit ); // che do giao tiep 8 bit

lcd_cmd( lcd_normal ); // che do nhap du lieu binh thuong lcd_cmd( lcd_on_crsr ); // bat mam hinh va con tro

Delay_ms(1); }

//Chuong trinh con xuat lenh o che do 8 bit void lcd_cmd( char cmd )

{

DATA &= 0xFF00; // chuan bi RB0 - RB7 DATA |= cmd; // gui lenh toi lcd

RW = 0; // RW = low RS = 0; E = 1; // E = hight Nop(); Nop(); Nop(); E = 0; RS = 0; Delay_ms(10);

ÐH Công Ngh - ÐHQG Hà N i Khóa Lu n T t Nghi p

}

//Chuong trinh con xuat du lieu o che do 8 bit void lcd_data( char data )

{

RW = 0; //

RS = 1; // (adsbygoogle = window.adsbygoogle || []).push({});

DATA &= 0xFF00; // chuan bi RE0 - RE7 DATA |= data; // gui du lieu toi lcd

E = 1; Nop(); Nop(); Nop(); E = 0; // RS = 0; //

Delay_ms(10); // 200uS delay }

void print_lcd(char a,char *s) // ham in ky tu tren LCD, in ky tu truc tiep {

lcd_cmd(a); while(*s != 0) lcd_data(*s++); }

void puts_lcd( unsigned char *data, unsigned char count ) { while ( count ) { lcd_data( *data++ ); count--; } }

ÐH Công Ngh - ÐHQG Hà N i Khóa Lu n T t Nghi p

ÐH Công Ngh - ÐHQG Hà N i Khóa Lu n T t Nghi p

Tài Li u Tham Kh o

[1] “Chip pak high volume presure sensor for disposable, backside pressure applications MPX2300D” – http://www.datasheetcatalog.com

[2] Bentham – “Lockin amplifers” – http://www.bentham.co.uk [3] “dsPIC Language Tool Libraries” – http://www.microchip.com [4] “dsPIC30F Family Reference Manual” – http://www.microchip.com

[5] “dsPIC30F’s Programmer Reference Manual” – http://www.microchip.com [6] “dsPic30F4011/4012” – http://alldatasheet.com

[7] “FilterPro MFB and Sallen– Key Low-Pass Filter Design Program” – John Bishop, Bruce Trump, R. Mark Stitt. – http://www.focus.ti.com

[8] “Implementing Digital Lock-In Amplifiers Using the dsPIC DSC” – http://microchip.com

[9] Jerry Seams – “R/2R LADDER NETWORKS” – http://www.irctt.com [10] “Low Cost, Low Power Instrumentation Amplifier” – http://www.analog.com [11] Microchip Inc website – http://www.microchip.com

[12] “Sallen-Key Low-Pass Filter” – http://www.ecircuitcenter.com [13] “The Analog Lock-in Amplifier” – http://www.signalrecovery.com [14] “The Digital Lock-in Amplifier” – http://www.signalrecovery.com [15] “What is a Lock-in Amplifier?” – http://www.signalrecovery.com

[16] “Wide Bandwidth Dual JFET Input Operational Amplifier” – www.national.com [17] www.docu-track.com

Một phần của tài liệu Tìm hiểu chung về vi điều khiển DsPic30F (Trang 52)