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 17-12-2008, 09:25 PM   #16
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 han_nang_008 View Post
bác namqn giúp em thêm cái này nữa, em viết đoặn chtr điều khiển tốc độ động cơ dùng triết áp, điểm đầu và chuối mắc vào 0 và 5V, điểm giữa đưa vào AN0 của 30F4011, dùng L298,
với động cơ chưa có tải, và em để PWM là kich chuyển đổi ADC thì em chỉnh chiết áp thì tốc độ thay đổi rất trươn ko có vấn đề j cả, nhung em cho thêm cái tải là em dùng dây cô doa nối sang 1 động cơ khác thôi, là tụ nhiên 2 chạy rất giật, điều chỉnh tốc độ cũng bị giật mà để em 1 vị trí tốc độ thì nó chạy dc vài vông lại giật 1 cái, ở dải tốc độ thấp cả 2 con đều ko chay, em có chuyển sang dùng timer3 kích chuyển đổi thì có vẻ chạy ko bị giật hơn và ở giải tốc đọ thấp vẫn điều khiển dc, nhung chỉ cần hơi vặn nhanh triết áp 1 tí là vdk bị đơ và dc đứng yên. anh xem hộ em vơi
đây là code của em
...
Bạn cho biết sơ đồ nguyên lý của mạch động lực sử dụng L298 mà bạn đang dùng. Đôi khi mạch nguyên lý không có vấn đề nhưng mạch thực của bạn có thể dẫn đến nhiễu mạnh đối với vi điều khiể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 19-12-2008, 08:44 AM   #17
han_nang_008
Đệ tử 1 túi
 
Tham gia ngày: Nov 2008
Bài gửi: 19
:
mạch của em mắc như này, bỏ cái phần mắc cho vui, ko dùng con uc3611 mà dùng 4 con diode schotky, vấn đề củ em là ở phần mềm hay ở phần cứng hả anh
Hình Kèm Theo
File Type: jpg L298N.jpg (52.1 KB, 26 lần tải)
han_nang_008 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-12-2008, 08:16 PM   #18
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 han_nang_008 View Post
mạch của em mắc như này, bỏ cái phần mắc cho vui, ko dùng con uc3611 mà dùng 4 con diode schotky, vấn đề củ em là ở phần mềm hay ở phần cứng hả anh
Đề nghị bạn dùng sơ đồ ứng dụng đã giới thiệu trong datasheet của L298.

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 20-12-2008, 10:23 PM   #19
han_nang_008
Đệ tử 1 túi
 
Tham gia ngày: Nov 2008
Bài gửi: 19
:
vấn đề nhiếu ở trên em đã giải quyết dc rồi, do em dùng bộ dao động nội của chíp, em chuyển sang dùng thạch anh thì ko còn hiện tượng đó,
Còn về vấn đê đọc 2 đầu vào analog em em làm được rồi nhưng có 1 vấn đề thế này, em set các thanh ghi giống như bác ở trên, và bit SIMSAM = 1 để chuyển đôi dồng thời, em chon chế độ tự động chuyển đổi, và ngắt sau 1 chu kid lấy mẫu/chuyển đổi, kết quả ở chân AN6 là CH0 thì ở ADCBUF0, con AN1 là CH1 thì ở ADCBUF1, em vặn biến trở thì cũng điều chỉnh tốc độ động cơ đc, em dùng hàm ngắt timer2 mỗi 100ms để xuất ra trị của đầu vào AN6 là giá trị dòng điện ra LCD, thì em quan sát thấy giá trị này cứ dao động liên tục, ngay cả khi em chưa cho động cơ chạy và lúc động cơ chạy ở tốc độ ổn định, em dùng đồng hồ đo thì thấy giá trị ở chân này ko thay đổi, bác xem hộ em nguyên nhân tại sao nó giao động thế
han_nang_008 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-01-2009, 05:02 PM   #20
honinh_spkt
Nhập môn đệ tử
 
Tham gia ngày: Jun 2007
Bài gửi: 1
:
Độ phân giải của chu kỳ nhiệm vụ?

''Chú ý là độ phân giải của chu kỳ nhiệm vụ là TCY/2, còn độ phân giải của chu kỳ xung là TCY. Do đó, chẳng hạn PTPER = 0x7F thì PDCx = 0xFF mới là chu kỳ nhiệm vụ = 100%.''
Anh namqn cho em hỏi là chu kỳ nhiệm vụ là như thế nào? thank's
honinh_spkt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-01-2009, 06:25 PM   #21
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 honinh_spkt View Post
''Chú ý là độ phân giải của chu kỳ nhiệm vụ là TCY/2, còn độ phân giải của chu kỳ xung là TCY. Do đó, chẳng hạn PTPER = 0x7F thì PDCx = 0xFF mới là chu kỳ nhiệm vụ = 100%.''
Anh namqn cho em hỏi là chu kỳ nhiệm vụ là như thế nào? thank's
Bạn nên đọc các tài liệu cơ bản về PWM (Pulse Width Modulation). Chu kỳ nhiệm vụ (duty cycle) là một khái niệm cơ bản trong PWM. Ví dụ, bạn có một tín hiệu điều khiển với chu kỳ là 10 ms. Trong khoảng thời gian 10 ms đó, có 4 ms tín hiệu ở trạng thái tích cực, còn 6 ms tín hiệu ở trạng thái không tích cực, chúng ta nói tín hiệu có duty cycle = 40% (tức là bằng thời gian tích cực/thời gian chu kỳ).

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 22-01-2009, 11:24 PM   #22
ham_hoc_hoi
Đệ tử 1 túi
 
Tham gia ngày: Dec 2008
Bài gửi: 25
:
bác nam ơi, em đọc 1 lúc 5 chân ADC là AN0,1,2,3,6
các chân này em nối với chân giữa của biến trở 100k, 2 chân còn lại của btr dc nối vào nguồn 5V, em đã đọc dc 5 giá tri ADC và hiển thị len LCD, nhưng mà các giá trị này toàn bị dao động thôi bác ah, ngoại trừ em vặn về 0 và 5V thì giá trị ADC đứng yên, em vặn 1 giá trị bất kì chẳng hạn thì nó dao đọng ví dụ từ 231 đến 243, nó cứ chạy lên chạy xuống.
Làm sao để đọc dc giá trị ko bị dao động hả bác
ham_hoc_hoi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-01-2009, 11:56 PM   #23
Mr.Bi
Đệ tử 7 túi
 
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
:
Trích:
Nguyên văn bởi ham_hoc_hoi View Post
bác nam ơi, em đọc 1 lúc 5 chân ADC là AN0,1,2,3,6
các chân này em nối với chân giữa của biến trở 100k, 2 chân còn lại của btr dc nối vào nguồn 5V, em đã đọc dc 5 giá tri ADC và hiển thị len LCD, nhưng mà các giá trị này toàn bị dao động thôi bác ah, ngoại trừ em vặn về 0 và 5V thì giá trị ADC đứng yên, em vặn 1 giá trị bất kì chẳng hạn thì nó dao đọng ví dụ từ 231 đến 243, nó cứ chạy lên chạy xuống.
Làm sao để đọc dc giá trị ko bị dao động hả bác
làm sao ko dao động đc u ?!! nguyên nhân í là do biến trở than của chúng ta . Cách khắc phục : adc = read_adc(AN0) , nếu (231<= adc <=243) thì ta làm công việc j đóa . Dễ ẹt thui mà ! động não chút là ta có thể dùng software khắc phục nhược điểm của hareware.
Mr.Bi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-01-2009, 12:15 AM   #24
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 ham_hoc_hoi View Post
bác nam ơi, em đọc 1 lúc 5 chân ADC là AN0,1,2,3,6
các chân này em nối với chân giữa của biến trở 100k, 2 chân còn lại của btr dc nối vào nguồn 5V, em đã đọc dc 5 giá tri ADC và hiển thị len LCD, nhưng mà các giá trị này toàn bị dao động thôi bác ah, ngoại trừ em vặn về 0 và 5V thì giá trị ADC đứng yên, em vặn 1 giá trị bất kì chẳng hạn thì nó dao đọng ví dụ từ 231 đến 243, nó cứ chạy lên chạy xuống.
Làm sao để đọc dc giá trị ko bị dao động hả bác
Biến trở của bạn có giá trị lớn quá, làm cho nội trở tương đương của nguồn tín hiệu cũng lớn. Bạn thử dùng biến trở 5 k hay 1 k xem.

Với ADC 10-bit, hai bit cuối cùng thường dao động với mạch thử nghiệm thông thường của bạn. Cần thiết kế phù hợp để đạt được đầy đủ độ phân giải 10-bit.

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 24-01-2009, 11:20 AM   #25
ham_hoc_hoi
Đệ tử 1 túi
 
Tham gia ngày: Dec 2008
Bài gửi: 25
:
Unhappy

Trích:
Nguyên văn bởi namqn View Post
Biến trở của bạn có giá trị lớn quá, làm cho nội trở tương đương của nguồn tín hiệu cũng lớn. Bạn thử dùng biến trở 5 k hay 1 k xem.

Với ADC 10-bit, hai bit cuối cùng thường dao động với mạch thử nghiệm thông thường của bạn. Cần thiết kế phù hợp để đạt được đầy đủ độ phân giải 10-bit.

Thân,
em đã thử thay biến trở nhỏ trở nhỏ, thậm chí dịch phải 2 bit thì tình hình cũng không khá nê lên là máy, nóc vẫn dao động lên xuống bác ah, Thiết kế phù hợp như nào hả bác, bác chỉ cho em dc ko, em dùng biến trở thay đổi tốc đọ mà nó cứ dao đọng thế này thì tốc đọ cũng dao động theo
ham_hoc_hoi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-01-2009, 05:02 PM   #26
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 ham_hoc_hoi View Post
em đã thử thay biến trở nhỏ trở nhỏ, thậm chí dịch phải 2 bit thì tình hình cũng không khá nê lên là máy, nóc vẫn dao động lên xuống bác ah, Thiết kế phù hợp như nào hả bác, bác chỉ cho em dc ko, em dùng biến trở thay đổi tốc đọ mà nó cứ dao đọng thế này thì tốc đọ cũng dao động theo
Bạn đọc app. note sau của Microchip để hình dung những vấn đề gặp phải khi thiết kế với các bộ ADC có độ phân giải từ 10-bit trở lên: http://ww1.microchip.com/downloads/e...tes/00688b.pdf.

Ngay cả những hướng dẫn của họ cũng vẫn mang tính lý thuyết, và bạn vẫn cần kinh nghiệm thực tế để thực hiện tốt những dẫn hướng đó.

Các nhà sản xuất ADC hàng đầu như Maxim, Analog Devices, hay Linear Technology đều có các app. note hướng dẫn thiết kế mạch giao tiếp với ADC để đạt độ phân giải danh định của vi mạch. Chẳng hạn:
http://www.linear.com/pc/downloadDoc...58,P1037,D4160
http://pdfserv.maxim-ic.com/en/an/AN1948.pdf

Rất tiếc là tôi không có điều kiện để tìm hết các tài liệu này cho bạn, hơn nữa, kinh nghiệm thiết kế kiểu này khó có thể truyền đạt qua diễn đà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 07-02-2009, 08:37 PM   #27
ham_hoc_hoi
Đệ tử 1 túi
 
Tham gia ngày: Dec 2008
Bài gửi: 25
:
Bác namqn ơi cho em hỏi, có lẽ nào bộ ADC của con 30F4011 chết được ko hả bác, bo mạch em vân dùng bình thg ko đọng j đến cả, tự nhiên em bật nên thì tất cả các bộ đệm của ADC đều ở giá trị max là 1023, em đã kiểm tra hết tất cả đầu vào xoay biến trở thì vẫn chạy từ 0 đến 5V, em thử nạp lại mấy ch trình ADC đã chạy ngon thì vẫn thế, con chip này làm việc với LCD, PWM, UART vẫn ngon bác ah. Không nhẽ nó chỉ hỏng mỗi bộ ADC10 bit
ham_hoc_hoi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-03-2009, 12:43 AM   #28
conglong
Đệ tử 4 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 68
:
Thầy Nam cho em hỏi là trong file p30f2010.h của phần mềm mplap C30 có đoạn họ định nghĩa về 16 buffer chứa kết quả tạm thời của ADC là :
" extern volatile unsigned int ADCBUF0 __attribute__((__sfr__));
extern volatile unsigned int ADCBUF1 __attribute__((__sfr__));
extern volatile unsigned int ADCBUF2 __attribute__((__sfr__));
extern volatile unsigned int ADCBUF3 __attribute__((__sfr__));
.........."
vậy ở đây __attribute__((__sfr__)) có nghĩa là gì hả thầy?

Cho em hỏi câu nữa là em muốn cùng một lúc 6 ngõ vào AD là AN0 ... AN5 , thì em phải làm thiết lập sao? bởi vì em thấy trong Farmily rerence .... chỉ thấy có 4 chanels chuyển đổi nên khi dung 6 ngõ vào AD có vấn đề ? chắc em hiểu chưa cặn kẽ về AD module mong thầy chỉ rõ dùm em.
Em cảm ơn.
Trân trọng !.
conglong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-03-2009, 01:53 AM   #29
conglong
Đệ tử 4 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 68
:
Ở ví dụ 5.1 thầy có viết trong hàm : void Init_MCPWM(void) là

" PWMCON2 = 0x0F00; //Postscale = 1:16 "

em đọc trong farmily reference ... về PWMCON2 register mà không hiểu ý nghĩa của postscale ? và trong TUTO này thầy thiết lập Postscale ảnh hưởng như thế nào ?

Khi dùng pin PWML mà không dùng PWMH thi Duty cycle đó chính là khoảng thời gian LOW hay là HIGHT trong 1 cycle hả thầy. Tại em không có dao động kí nên không trả lờ câu hỏi này được>
Em cảm ơn.
Trân trong !.

thay đổi nội dung bởi: conglong, 20-03-2009 lúc 06:05 PM.
conglong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-03-2009, 02:50 AM   #30
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 conglong View Post
Thầy Nam cho em hỏi là trong file p30f2010.h của phần mềm mplap C30 có đoạn họ định nghĩa về 16 buffer chứa kết quả tạm thời của ADC là :
" extern volatile unsigned int ADCBUF0 __attribute__((__sfr__));
extern volatile unsigned int ADCBUF1 __attribute__((__sfr__));
extern volatile unsigned int ADCBUF2 __attribute__((__sfr__));
extern volatile unsigned int ADCBUF3 __attribute__((__sfr__));
.........."
vậy ở đây __attribute__((__sfr__)) có nghĩa là gì hả thầy?

Cho em hỏi câu nữa là em muốn cùng một lúc 6 ngõ vào AD là AN0 ... AN5 , thì em phải làm thiết lập sao? bởi vì em thấy trong Farmily rerence .... chỉ thấy có 4 chanels chuyển đổi nên khi dung 6 ngõ vào AD có vấn đề ? chắc em hiểu chưa cặn kẽ về AD module mong thầy chỉ rõ dùm em.
Em cảm ơn.
Trân trọng !.
__attribute__((__sfr__)) thể hiện rằng các thanh ghi này là các thanh ghi SFR (Special File Register) của dsPIC.

dsPIC30F2010 chỉ có một bộ chuyển đổi A/D (là phần tử ADC trong sơ đồ ở hình 18-1 của datasheet). dsPIC30F2010 có thể lấy mẫu (sample) mỗi lần 1 ngõ vào, 2 ngõ vào, hay 4 ngõ vào, tùy theo sự thiết lập của các bit CHPS trong thanh ghi ADCON2. dsPIC30F2010 có thể lấy mẫu cả 4 kênh một lần nhờ vào sự hiện diện của 4 bộ S/H (Sample and Hold), được ký hiệu là CH0 đến CH3 trong sơ đồ nêu trên. Dù bạn lấy mẫu kiểu nào đi nữa, mỗi tín hiệu được lấy mẫu đều được xử lý bởi cùng một bộ chuyển đổi A/D.

Để chuyển đổi 6 ngõ vào AN0 đến AN5, bạn sẽ phải lấy mẫu 6 ngõ vào đó theo một thứ tự nào đó (phù hợp với sự bố trí các chân analog đến các bộ S/H), và lần lượt chuyển đổi các tín hiệu đã được lấy mẫu đó. Ví dụ, bạn có thể chỉ dùng một bộ S/H CH0 và lần lượt lấy mẫu, sau đó chuyển đổi các ngõ vào AN0 đến AN5. Hoặc bạn có thể dùng 2 bộ S/H CH0 và CH1, để cùng lúc lẫy mẫu AN0 và AN1, sau đó lần lượt chuyển đổi các ngõ vào này, rồi sau đó thiết lập để dùng 4 bộ S/H từ CH0 đến CH3, để cùng lúc lấy mẫu AN2 đến AN5, và sau đó lần lượt chuyển đổi các ngõ vào này.

Với mỗi cách thực hiện, code để hiện thực sẽ có sự thay đổi tương ứng. Đề nghị bạn đọc thêm về bộ ADC 10-bit trong tài liệu "dsPIC30F Family Reference Manual" (mã của tài liệu là DS70046) trước khi đặt tiếp câu hỏi (điều này sẽ giúp bạn hiểu được những câu trả lời).

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

thay đổi nội dung bởi: namqn, 24-03-2009 lúc 12:40 AM. Lý do: thiếu 2 từ
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Tags
dspic30f adc, dspic30f pwm


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

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
dsPIC Tutorial 3-Đọc ngõ vào và giao tiếp LCD namqn dsPIC - Bộ điều khiển tín hiệu số 16-bit 92 19-02-2017 11:15 PM
dsPIC Tutorial 2-Các kỹ thuật cơ bản namqn dsPIC - Bộ điều khiển tín hiệu số 16-bit 33 17-10-2013 11:09 PM
dsPIC Tutorial 1-Tạo và biên dịch một project (ASM30) namqn dsPIC - Bộ điều khiển tín hiệu số 16-bit 16 22-08-2012 12:35 AM
dsPIC Tutorial 4-Module UART và I2C namqn dsPIC - Bộ điều khiển tín hiệu số 16-bit 76 09-05-2012 10:55 AM
RF module khanh_pic Tìm mua sản phẩm 22 20-08-2007 11:25 AM


Múi giờ GMT. Hiện tại là 03:38 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