PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > dsPIC - Bộ điều khiển tín hiệu số 16-bit

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

dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 05-03-2008, 02:12 AM   #1
bktb
Nhập môn đệ tử
 
Tham gia ngày: Mar 2008
Bài gửi: 4
:
ADC với 2 chân vào analog ?

Mình đang sử dụng Dspic để viết chương trình điều khiển dòng điện và tốc độ cho động cơ điện một chiều . Đê thực hiện chương trình ,tôi phải sử dụng ADC với 2 chân vào để nhận tín hiệu dòng điện và điện áp .

Chu kỳ trích mẫu của 2 tín hiệu là khác nhau ,trong khi đó trong khối ADC của DSpic nếu sử dụng Timer để xác định thời gian lấy mẫu thì chỉ cho phép ta xác định được một khoảng thời gian .
Bạn nào đã sử dụng ADC với 2 kênh chuyển đổi có chu kỳ lấy mẫu khác nhau thì chỉ giúp mình nhé .
bktb vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-03-2008, 04:05 AM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi bktb View Post
Mình đang sử dụng Dspic để viết chương trình điều khiển dòng điện và tốc độ cho động cơ điện một chiều . Đê thực hiện chương trình ,tôi phải sử dụng ADC với 2 chân vào để nhận tín hiệu dòng điện và điện áp .

Chu kỳ trích mẫu của 2 tín hiệu là khác nhau ,trong khi đó trong khối ADC của DSpic nếu sử dụng Timer để xác định thời gian lấy mẫu thì chỉ cho phép ta xác định được một khoảng thời gian .
Bạn nào đã sử dụng ADC với 2 kênh chuyển đổi có chu kỳ lấy mẫu khác nhau thì chỉ giúp mình nhé .
Chu kỳ lấy mẫu của dòng điện và điện áp có quan hệ với nhau ra sao (cứ 10 mẫu dòng điện thì có 1 mẫu điện áp, hoặc ngược lại, hay là thế nào)? Hay là bạn muốn lấy mẫu một cách ngẫu nhiên.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-03-2008, 11:23 AM   #3
bktb
Nhập môn đệ tử
 
Tham gia ngày: Mar 2008
Bài gửi: 4
:
Chu kỳ lấy mẫu của tốc độ lớn hơn của dòng điện khoảng 10 lần

Như vậy các bước thiết lập cho Module ADC, tôi phải thực hiện thế nào ??
Với 2 chân vào analog cho tín hiệu dòng điện và tốc độ.
Như trong datasheet ,thanh ghi ADCON1 = 0x0040 cho phép ta sử dụng Timer để xác định khoảng thời gian lấy mẫu cho một tín hiệu ( ví dụ dòng điện ) ,thế còn chu kỳ lấy mẫu của tốc độ thì thiết lập ?
bktb vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-03-2008, 05:17 PM   #4
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi bktb View Post
Chu kỳ lấy mẫu của tốc độ lớn hơn của dòng điện khoảng 10 lần

Như vậy các bước thiết lập cho Module ADC, tôi phải thực hiện thế nào ??
Với 2 chân vào analog cho tín hiệu dòng điện và tốc độ.
Như trong datasheet ,thanh ghi ADCON1 = 0x0040 cho phép ta sử dụng Timer để xác định khoảng thời gian lấy mẫu cho một tín hiệu ( ví dụ dòng điện ) ,thế còn chu kỳ lấy mẫu của tốc độ thì thiết lập ?
Xin lỗi bạn là tôi nhầm tốc độ thành điện áp.

Tôi sẽ gợi ý cách làm cho bạn, còn bạn sẽ viết thử code. Nếu code chạy không đúng yêu cầu, bạn có thể post lên diễn đàn để nhờ hướng dẫn. Xin lỗi là tôi không giải bài tập giúp bạn.

Bạn có thể giải quyết vấn đề bằng nhiều cách, tôi chỉ gợi ý 2 cách:

Cách 1 - Dùng ADC như bình thường để lấy mẫu 2 kênh analog ở tốc độ của tín hiệu cần lấy mẫu nhanh hơn. Cứ 10 mẫu tốc độ thì bạn tính trung bình 10 mẫu dòng điện, và coi đó là 1 mẫu dòng điện cần lấy.

Cách 2 - Dùng một timer để định thời gian lấy mẫu, cũng cho tín hiệu có tốc độ lấy mẫu cao hơn. Dùng thêm một biến đếm, chỉ lấy mẫu riêng tín hiệu tốc độ ở 9 lần đầu, lần thứ 10 thì lấy mẫu cả tốc độ lẫn dòng điện.

Nếu bạn chưa theo link trong chữ ký của tôi thì bạn có thể xem qua để có thể đặt các câu hỏi một cách hiệu quả hơn.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-03-2008, 11:14 PM   #5
bktb
Nhập môn đệ tử
 
Tham gia ngày: Mar 2008
Bài gửi: 4
:
Đây là đoạn chương trình lấy mẫu mình thực hiện theo cách 2 của bạn :

Code:
/* Chuong trinh con khai bao ADC */
void Init_ADC(void)	
{ 
	ADPCFG = 0xFFFC ;    // CHAN RB0;RB1; LA CHAN VAO ANALOG
	ADCON1 = 0x004C ;    // TIMER 3 CHAM DUT VIEC LAY MAU VA KICH HOAT CHUYEN DOI
	
	
        ADCON2 = 0x0500;
	ADCHS  = 0;           // KENH 0 DOC TIN HIEU GIUA AN0 VA AVSS
	ADCSSL = 3;
	ADCON3 = 0x0002;       //  TAD = 2*TCY
	
// chu ky lay mau cua dong dien	
        TMR3 = 0;
	PR3  = 0x007D;         // 1ms LAY MAU
	T3CON = 0x8010;        // Cho phep bat dau dem ,pres cale 1:64 
	
	_ADIF = 0;              // XOA CO NGAT
	_ADIE = 1;              // BAT CO CHO PHEP NGAT
	_ADON = 1;              // BAT MODULE ADC
	_ASAM = 1;              // CHE DO LAY MAU TU DONG
             
/* Thoi gian lay mau dong do T3 quy dinh;


}	




/* Chuong trinh con phuc vu ngat ADC */
void _ISR _ADCInterrupt(void)
{
	dong_dien_thuc = ADCBUF0 ;            // gia tri dong dien do duoc 
        n++ ;
while (n >= 10)
{
n = 0;
toc_do_thuc = ADCBUF1 ;                       // gia tri toc do do duoc      
}
 
    _ADIF = 0 ;

}

thay đổi nội dung bởi: bktb, 10-03-2008 lúc 04:08 PM.
bktb vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


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à 06:02 AM.


Đượ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