PIC Vietnam

Go Back   PIC Vietnam > Các Đề Tài > Luận văn tốt nghiệp

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Luận văn tốt nghiệp Nếu bạn thắc mắc vì sao chúng tôi muốn phổ biến các luận văn tốt nghiệp? Xin xem tại đây

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 07-04-2009, 11:03 PM   #7
mtuankct
Đệ tử 6 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 125
:
Em đã làm được cái động cơ này quay với con IR2103
con IR2110 thì chỉ khác con IR2103 là nó cả 2 đầu vào HI và LI đề là đầu vào tích cực cao, nó cũng không có bộ tạo deadtime bên trong, không có phần logic chống ngắt mạch do mở 2 van cùng lúc
Em post đoạn code config pwm lên đây các bác xem có đúng không hộ em
Code:
	
	_PTSIDL = 0; 	// pwm time base run in idle mode
	_PTOPS = 0;		// pwm time base postscale select bit 1:1
	_PTCKPS = 0;	// pwm time base input clock prescale select bit
											// 11 -> 1:64
											// 10 -> 1:16
											// 01 -> 1:4
											// 00 -> 1:1
	// PTMR config (PWM time base register)

	// PTPER config (PWM time base priod register)
	PTPER = (Fcy/Fpwm - 1);
	// SEVTCMP config (special event compare register)
	SEVTCMP = PTPER;
	// PWMCON1 config
	_PMOD3 = 0;		// PMODx = 1 pwm I/0 pin pair is in the independent ouput mode
					// PMODx = 0 pwm I/0 pin pair is in the complementary output mode
	_PMOD2 = 0;
	_PMOD1 = 0;
	
	_PEN3H = 1;		// =1 to enable for pwm output
	_PEN3L = 1;
	_PEN2H = 1;
	_PEN2L = 1;
	_PEN1H = 1;
	_PEN1L = 1;
	// PWMCON2 config
	
	// DTCON1 config (dead time control register)
	_DTAPS = 3;		// Dead time unit A prescale select bit
					// = 3 -> 1:8
					// = 2 -> 1:4
					// = 1 -> 1:2
					// = 0 -> 1:1
	_DTA = 63;		// Unsigned 6 bit Dead time value bits for dead time unit A
	// FLTACON config (Fault A control register)
	// FLTBCON config
	// OVDCON config (Override control register)
	OVDCON = 0x0000;	// all pwm pin are control by the value in the corresponding POUTxx bit
					// POUTxx = 0	
	PDC1 =(unsigned int) (PTPER *0.4);
	PDC2 =(unsigned int) (PTPER *0.4);
	PDC3 =(unsigned int) (PTPER *0.4);
	PWMCON2 = 0x0F00;		//Postscale = 1:16

	PTCON = 0x8000;			//Kich hoat module PWM
	Delay_ms(10);
	SD = 0;          // day la chan shutdown của IR
	Delay_ms(1);
	_POUT1L = 1;// bat may chan Lowside để nạp điện đầy cho tụ, sẵn sàng chạy
	_POUT2L = 1;
	_POUT3L = 1;
còn đây là chương trình em dùng để test cái động cơ nó quay
Code:
void BLDC_test_forward(void){

	if((HallA == 0) & (HallB == 1) & (HallC == 1)){ // CASE 1
		OVDCON = (1 << BL) + (1 << CH_P);	// BL & CH
		return;
	}
	if((HallA == 0) & (HallB == 0) & (HallC == 1)){ // CASE 2
		OVDCON = (1 << BL) + (1 << AH_P);	// BL & AH
		return;
	}
	if((HallA == 1) & (HallB == 0) & (HallC == 1)){ // CASE 3
		OVDCON = (1 << CL) + (1 << AH_P);	// CL & AH
		return;
	}
	if((HallA == 1) & (HallB == 0) & (HallC == 0)){ // CASE 4
		OVDCON = (1 << CL) + (1 << BH_P);	// CL & BH
		return;
	}
	if((HallA == 1) & (HallB == 1) & (HallC == 0)){ // CASE 5
		OVDCON = (1 << AL) + (1 << BH_P);	// AL & BH
		return;
	}
	if((HallA == 0) & (HallB == 1) & (HallC == 0)){ // CASE 6
		OVDCON = (1 << AL) + (1 << CH_P);	// AL &CH
		return;
	}
}
em xin giải thích một tẹo ở đây các hằng số được định nghĩa như sau:
Code:
#define AL 0
#define AH 1
#define BL 2
#define BH 3
#define CL 4
#define CH 5

#define AL_P 8
#define AH_P 9
#define BL_P 10
#define BH_P 11
#define CL_P 12
#define CH_P 13
có nghĩa là nếu muốn pha A dẫn phía L và pha C dẫn phía H thì em sẽ ghi giá trị 1 vào POUT1L và đặt 3H ở chế độ xung pwm
mtuankct vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 01:06 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam