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 Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc 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 27-03-2009, 09:24 PM   #1
silvadk2
Đệ tử 2 túi
 
Tham gia ngày: Nov 2008
Bài gửi: 42
:
Ha ha, được rồi bác ạ . Em bị lỗi tý phần cứng, giờ ngon rồi, ha ha! Thank cả nhà rất rất là nhiều.
silvadk2 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-03-2009, 11:26 PM   #2
conglong
Đệ tử 4 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 68
:
Thầy Nam cho em hỏi (hơi ngoài luồng) : em đang làm đồ án muôn học là dùng vi điều khiển (dsPIC) để PID tốc độ và vị trí động cơ, em dung động cơ DC secvo 24v/60w, và encoder 504xung/vòng; về thuật toán PID thì em được học rồi nhưng khi vào làm thực tế thì em không biết cách nào để xác định được Kpgh, Ki , Kd, ?!
Trên lí thuyết : xác định Kpgh bằng cách cho ki = 0,Kd = 0, sau đó tăng từ từ Kp cho tới khi có dao động (với chu kì là Tgh) ở ngõ ra, thì đây là Kpgh, và lúc này ta có Kp = 0.6*Kpgh
còn Ki = kp / Ti , Kd = Kp*Td, với Ti = 0.5*Tgh, Td = 0.125*Tgh

Thầy nói rõ cho em hơn chố này được không thầy , ý em là viết phần mềm như thế nào để tăng Kp mà ta có thể tìm được Kgh và Tgh?
Em cảm ơn thầy nhiều lắm !.
Trân trọng !.
__________________
Không có gì là Không thể, chỉ một điều Không thể khi bạn nghĩ nó Không thể !.
Bạn có thể nếu bạn tin bạn có thể !.
conglong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-03-2009, 12:11 AM   #3
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 (hơi ngoài luồng) : em đang làm đồ án muôn học là dùng vi điều khiển (dsPIC) để PID tốc độ và vị trí động cơ, em dung động cơ DC secvo 24v/60w, và encoder 504xung/vòng; về thuật toán PID thì em được học rồi nhưng khi vào làm thực tế thì em không biết cách nào để xác định được Kpgh, Ki , Kd, ?!
Trên lí thuyết : xác định Kpgh bằng cách cho ki = 0,Kd = 0, sau đó tăng từ từ Kp cho tới khi có dao động (với chu kì là Tgh) ở ngõ ra, thì đây là Kpgh, và lúc này ta có Kp = 0.6*Kpgh
còn Ki = kp / Ti , Kd = Kp*Td, với Ti = 0.5*Tgh, Td = 0.125*Tgh

Thầy nói rõ cho em hơn chố này được không thầy , ý em là viết phần mềm như thế nào để tăng Kp mà ta có thể tìm được Kgh và Tgh?
Em cảm ơn thầy nhiều lắm !.
Trân trọng !.
Với câu hỏi này, xin bạn hỏi thầy hướng dẫn của bạ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 29-03-2009, 12:06 AM   #4
conglong
Đệ tử 4 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 68
:
Trích:
Nguyên văn bởi namqn View Post
Với câu hỏi này, xin bạn hỏi thầy hướng dẫn của bạn.

Thân,
Tại vì Thầy em đang đi công tác , trước khi đi thầy có cho em địa chỉ mail để liên lạc nhưng em mail cho thầy mà chưa thấy Thầy reply nên em suốt ruột quá ! Đành lên diễn đàn để hỏi, đây là Tutorial liên quan tới PWM mà PID lại liên quan tới PWM, nên mong Thầy Nam giúp em với ,hoặc bạn nào trong diễn đàn đã tứng làm PID thì chỉ cho mình cái nhé, hết nửa học kì rồi mà chưa làm được gì cả ! SOS!
Cảm ơn tất cả !.
Trân trọng !.
__________________
Không có gì là Không thể, chỉ một điều Không thể khi bạn nghĩ nó Không thể !.
Bạn có thể nếu bạn tin bạn có thể !.
conglong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-04-2009, 11:40 AM   #5
anhtuan133
Nhập môn đệ tử
 
Tham gia ngày: Mar 2006
Bài gửi: 5
:
Một chú ý khi sử dụng ADC auto input scanning là buffer kết quả kô phải là tương ứng 1-1 với kênh ADC. Ví dụ bạn scan AN3,4,5 ở chế độ auto scanning
ADCON2bits.CSCNA = 1;
ADPCFGbits.PCFG3 = 0;
ADPCFGbits.PCFG4 = 0;
ADPCFGbits.PCFG5 = 0;

ADCSSLbits.CSSL3 = 1;
ADCSSLbits.CSSL4 = 1;
ADCSSLbits.CSSL5 = 1;
thì kết quả ADCBUF0 sẽ là của AN3, ADCBUF1 là của AN4....
anhtuan133 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-04-2009, 04:41 PM   #6
khuenguyen
Nhập môn đệ tử
 
Tham gia ngày: Feb 2009
Bài gửi: 1
:
Help me!

Trích:
Nguyên văn bởi namqn View Post
Đây là tutorial 5 cho dsPIC, giới thiệu các module ADC và MCPWM. Mã nguồn được viết trong ASM30 (tập tin "Vidu5.zip") và C30 (tập tin "Vidu5C30.zip"). Các tập tin .hex đã được đính kèm.

Một ví dụ đọc ngõ vào ADC và điều chỉnh độ rộng xung một cách tương ứng, ví dụ còn lại đọc ngõ vào analog và gửi các ký tự biểu diễn giá trị đọc được(hexadecimal) ra cổng RS-232.

Chúc các bạn thành công!

Thân,
Mình muốn phát xung PWM có tần số từ 200kHz trở lên thì mình cần cấu hình mạch như thế nào? Code của chương trình thay đổi như thế nào trong tutorial 5 của anh Nam? thanks!
khuenguyen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-04-2009, 02:13 AM   #7
conglong
Đệ tử 4 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 68
:
Trích:
Nguyên văn bởi khuenguyen View Post
Mình muốn phát xung PWM có tần số từ 200kHz trở lên thì mình cần cấu hình mạch như thế nào? Code của chương trình thay đổi như thế nào trong tutorial 5 của anh Nam? thanks!
Vẫn vậy thôi, bạn thay đổi dòng :
#define Fpwm 40000 //Tan so PWM = 40 kHz
Thành :
#define Fpwm 200000 //Tan so PWM = 200 kHz

Trân trọng !.
__________________
Không có gì là Không thể, chỉ một điều Không thể khi bạn nghĩ nó Không thể !.
Bạn có thể nếu bạn tin bạn có thể !.
conglong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-09-2009, 11:01 AM   #8
conglong
Đệ tử 4 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 68
:
Giúp em về dead time của dsPIC.

Thầy Nam và các anh chị trong diễn đàn cho em hỏi về dead time của dsPIC cái ah.
Ở hình 15-16 trang 360 mục Motor control PWM của tài liêu dsPIC Family Reference , họ có nói là trong lúc dead time thì mức tín hiệu ở hai chân PWMxH và PWMxL đều ở mức thấp (LOW), do mạch công suất của em (đã đặt và thi công mất rồi) nếu cả hai chân này đều ở mức thấp thì sẽ kích cả 2 nửa cầu H cùng lúc và xảy ra trùng dẫn, vậy trong dsPIC có cung cấp cho mình lựa chọn mức tín hiệu của 2 chân PWMxH và PWMxL trong lúc dead time không ah ?. cụ thể là em muốn mức tín hiệu của 2 chân PWM lúc dead time là mức cao (High).

Do sự cố trên nên trước mắt , em đang điều khiển động cơ mà không set dead time (dead time = 0 ) , nó vẫn chạy được nhưng FET rất nóng (do quá trình chuyển trạng thái của 2 mức tín hiệu trên cặp chân PWM không lý tưởng) nên sau đó một lúc (hơn 3 phút) bị chết FET.

Thầy và anh chị cho em hỏi câu nữa là trong thanh ghi FBORPOR ( BOR and POR Configuration Register) mục Device Configuration trang 710 của tài liêu dsPIC Family Reference có 2 bit là HPOL và LPOL, họ có giải thích nhưng em chưa hiểu rõ lắm về mục đích của 2 bit này, liệu có phải 2 bit này dùng để set trạng thái của chân PWM khi dead time không ah ?

Em xin chân thành cảm ơn !.
Trân trọng !.
__________________
Không có gì là Không thể, chỉ một điều Không thể khi bạn nghĩ nó Không thể !.
Bạn có thể nếu bạn tin bạn có thể !.
conglong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-09-2009, 12:00 AM   #9
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 và các anh chị trong diễn đàn cho em hỏi về dead time của dsPIC cái ah.
Ở hình 15-16 trang 360 mục Motor control PWM của tài liêu dsPIC Family Reference , họ có nói là trong lúc dead time thì mức tín hiệu ở hai chân PWMxH và PWMxL đều ở mức thấp (LOW), do mạch công suất của em (đã đặt và thi công mất rồi) nếu cả hai chân này đều ở mức thấp thì sẽ kích cả 2 nửa cầu H cùng lúc và xảy ra trùng dẫn, vậy trong dsPIC có cung cấp cho mình lựa chọn mức tín hiệu của 2 chân PWMxH và PWMxL trong lúc dead time không ah ?. cụ thể là em muốn mức tín hiệu của 2 chân PWM lúc dead time là mức cao (High).

Do sự cố trên nên trước mắt , em đang điều khiển động cơ mà không set dead time (dead time = 0 ) , nó vẫn chạy được nhưng FET rất nóng (do quá trình chuyển trạng thái của 2 mức tín hiệu trên cặp chân PWM không lý tưởng) nên sau đó một lúc (hơn 3 phút) bị chết FET.

Thầy và anh chị cho em hỏi câu nữa là trong thanh ghi FBORPOR ( BOR and POR Configuration Register) mục Device Configuration trang 710 của tài liêu dsPIC Family Reference có 2 bit là HPOL và LPOL, họ có giải thích nhưng em chưa hiểu rõ lắm về mục đích của 2 bit này, liệu có phải 2 bit này dùng để set trạng thái của chân PWM khi dead time không ah ?

Em xin chân thành cảm ơn !.
Trân trọng !.
Tài liệu vẽ minh họa cho trường hợp cả hai chân PWMxH và PWMxL là active-high (tích cực mức cao), do đó trong thời gian dead-time, cả hai chân này sẽ ở mức low (tức là ở trạng thái inactive).

Các bit HPOL và LPOL trong thanh ghi cấu hình FBORPOR cho phép chọn trạng thái tích cực của các chân PWMxH và PWMxL một cách tương ứng (nếu bạn không mô tả chúng thì mặc định là các bit này ở mức cao, tương ứng với các chân PWMxH và PWMxL là active-high). Bạn có thể thiết lập xóa các bit cấu hình này để các chân PWMxH và PWMxL là tích cực mức thấp (active-low), khi đó trong khoảng deadtime các chân PWMxH và PWMxL sẽ ở mức cao. Và kiểu logic này mới tương thích với mạch công suất của bạ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 04-09-2009, 08:27 PM   #10
conglong
Đệ tử 4 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 68
:
Trích:
Nguyên văn bởi namqn View Post
Tài liệu vẽ minh họa cho trường hợp cả hai chân PWMxH và PWMxL là active-high (tích cực mức cao), do đó trong thời gian dead-time, cả hai chân này sẽ ở mức low (tức là ở trạng thái inactive).

Các bit HPOL và LPOL trong thanh ghi cấu hình FBORPOR cho phép chọn trạng thái tích cực của các chân PWMxH và PWMxL một cách tương ứng (nếu bạn không mô tả chúng thì mặc định là các bit này ở mức cao, tương ứng với các chân PWMxH và PWMxL là active-high). Bạn có thể thiết lập xóa các bit cấu hình này để các chân PWMxH và PWMxL là tích cực mức thấp (active-low), khi đó trong khoảng deadtime các chân PWMxH và PWMxL sẽ ở mức cao. Và kiểu logic này mới tương thích với mạch công suất của bạn.

Thân,
Em Xin chân thành cảm ơn thầy về câu trả lời này,
Đáng lẽ em phải thử để khỏi làm phiền thầy , nhưng em không có ossilo nên không quan sát được tín hiệu ở 2 chân PWMxH , PWMxL. em định thử set up 2 bit HPOL và LPOL để biết trước khi hỏi thầy nhưng em không chắc nên quyết định hỏi cho chắc !, làm việc với phần công suất (PWM) mà không chắc là em sợ lắm rùi, vì nó chết FET (Đôi khi nổ cái "đùng") hoặc chết IR2102 (mỗi con 17 ngàn) !
Nên em xin chân thành cảm ơn thầy !.
Trân trọng !.
__________________
Không có gì là Không thể, chỉ một điều Không thể khi bạn nghĩ nó Không thể !.
Bạn có thể nếu bạn tin bạn có thể !.

thay đổi nội dung bởi: conglong, 04-09-2009 lúc 08:57 PM.
conglong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-09-2009, 08:52 PM   #11
JohnnyNguyen
Đệ tử 3 túi
 
Tham gia ngày: Jul 2009
Bài gửi: 46
:
hỏi về tutorial của thầy Nam.thầy cho em hỏi,cái câu lệnh:
ADCValue = ADCBUF0 >>1 //chi lay 9 bit cao nhat
tại sao chỉ lấy 9 bit cao nhất.em chưa hiểu rõ chỗ này.em mới đang tiếp cận ADC,mong thầy chỉ rõ cho.
cho em hỏi thêm về sơ đồ mạch,cái con MAX232 có tác dụng gì a.
JohnnyNguyen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-09-2009, 11:12 PM   #12
conglong
Đệ tử 4 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 68
:
Trích:
Nguyên văn bởi JohnnyNguyen View Post
hỏi về tutorial của thầy Nam.thầy cho em hỏi,cái câu lệnh:
ADCValue = ADCBUF0 >>1 //chi lay 9 bit cao nhat
tại sao chỉ lấy 9 bit cao nhất.em chưa hiểu rõ chỗ này.em mới đang tiếp cận ADC,mong thầy chỉ rõ cho.
cho em hỏi thêm về sơ đồ mạch,cái con MAX232 có tác dụng gì a.
Để loại bỏ sai số do nhiễu thôi bạn ah.
__________________
Không có gì là Không thể, chỉ một điều Không thể khi bạn nghĩ nó Không thể !.
Bạn có thể nếu bạn tin bạn có thể !.
conglong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-09-2009, 12:07 AM   #13
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 JohnnyNguyen View Post
hỏi về tutorial của thầy Nam.thầy cho em hỏi,cái câu lệnh:
ADCValue = ADCBUF0 >>1 //chi lay 9 bit cao nhat
tại sao chỉ lấy 9 bit cao nhất.em chưa hiểu rõ chỗ này.em mới đang tiếp cận ADC,mong thầy chỉ rõ cho.
cho em hỏi thêm về sơ đồ mạch,cái con MAX232 có tác dụng gì a.
Vì trong ví dụ đó tôi thiết lập tần số PWM là 40 kHz, ứng với tần số thực thi lệnh là 8 MHz, nên phạm vi duty cycle chỉ là 0 .. 400, tức là có thể mã hóa bằng 9 bit. Để tận dụng gần như toàn bộ dải điện áp ở ngõ vào ADC (phạm vi điều chỉnh biến trở rộng nhất có thể có), chỉ có 9 bit cao nhất của kết quả chuyển đổi A/D được sử dụng để thiết lập duty cycle. Điều này tương ứng với việc bạn vặn biến trở từ 0 đến khoảng 80% để chỉnh duty cycle từ 0 đến 100%.

MAX232 là vi mạch dịch mức, để chuyển logic TTL/CMOS 5 V sang dạng tương thích với chuẩn RS-232 (mức điện áp thể hiện logic là khoảng +/- 12 V).

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, 04-09-2009 lúc 12:29 AM.
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-09-2009, 10:39 AM   #14
Hiepnv101
Đệ tử 1 túi
 
Hiepnv101's Avatar
 
Tham gia ngày: Apr 2009
Nơi Cư Ngụ: Viet Nam
Bài gửi: 12
:
Anh Nam cho em hỏi, trong chế độ quét nhiều kênh ADC, dùng Timer3 kết thúc lấy mẫu và bắt đầu chuyển đổi thì việc xác định giá trị PR3 có giông như trong chế độ quét 1kênh ADC không? Em thấy khi quét nhiều kênh thì khi đó thời gian ngắt của Timer3 là không đều và không như ý của mình, giá trị hiển thị về thỉnh thoảng lại là 0, em hiển thị lên led 7 thanh.

Thanks,
Hiepnv101 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-10-2009, 05:42 PM   #15
diepvu1805
Nhập môn đệ tử
 
Tham gia ngày: Oct 2009
Bài gửi: 1
:
Em đang dung DSpic30f4013. Nhưng em không biết là ADC của nó có đo được điện áp +/- không. Bác nào biết chỉ dùm em.
Thank các bac
diepvu1805 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

Ðiều Chỉnh
Xếp Bà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

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à 10:57 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