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
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
Ð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);
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; //
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