|
Tài trợ cho PIC Vietnam |
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 |
|
Ðiều Chỉnh | Xếp Bài |
06-03-2010, 12:33 AM | #76 |
Nhập môn đệ tử
Tham gia ngày: Nov 2009
Bài gửi: 10
: |
Nhờ Anh Nam hướng dẫn giúp: Em muốn làm một bộ inverter từ DC-AC sử dụng nguyên lý điều biến sin độ rộng xung, trong đó tín hiệu điện áp ra được ổn định.
Nguyên tắc ổn định là dùng mạch hồi tiếp, bám điện áp ra: Khi có điện áp ra thay đổi lệch khỏi điện áp định mức thì mạch sẽ đo và đưa tín hiệu sai lệch để điều chỉnh sai lệch đó. A cho E hỏi: điều chế sin độ rộng xung trong DS pic muốn điều chỉnh điện áp như thế thì đưa tín hiệu sai lêch (tín hiệu điều khiển) vào chân nào và điều chỉnh như thế nào trong con dspic đó. E đã hỏi và A đã trả lời là lập một bảng sin khác trong Ram, nhưng như thể chỉ có thể thay đổi được điện áp ra, còn để điều chỉnh (Bám-trơn) thì E khồn biết làm thế nào. |
06-03-2010, 06:56 PM | #77 | |
Trưởng lão PIC bang
|
Trích:
Bảng sin trong RAM cho phép bạn tùy nghi thay đổi giá trị trung bình của chu kỳ chuyển mạch bất kỳ, như vậy thực sự cho phép bạn thực hiện điều trên. Bạn có thể đưa tín hiệu sai lệch vào một ngõ vào analog và đọc nó vào dsPIC, rồi từ đó tính toán để cập nhật bảng sin trong RAM. 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 |
|
03-08-2010, 12:46 PM | #78 |
Nhập môn đệ tử
Tham gia ngày: Nov 2008
Bài gửi: 2
: |
chào a Nam
E đang đọc đến phần module PWM, có phần độ phân giải PWM (= Tcy/2) e ko hiểu rõ ý nghĩa của nó lắm . Đọc tài liệu có phần trích dẫn là : "Though the clock to the time base timer is Tcy, the duty cycle resolution is Tcy/2; this feature can be utlized to obtain finer PWM resolution at lower device operating speeds, e.g., 11 bits of resolution at 19.5 Khz using a 20 MHz clock." Mong a cùng các bạn có thể giải thích rõ hơn cho e hiểu được ko ạ. |
23-12-2010, 05:26 PM | #79 |
Nhập môn đệ tử
Tham gia ngày: Mar 2010
Bài gửi: 3
: |
Chào mọi người!
Em đang dùng con Dspic 30f2020 để điều khiển đóng mở FET bằng cách điều chỉnh PWM. Em thay đổi PDC1 để thay đổi Duty nhưng khi thay đổi PDC1 thì Duty đo trên osiloscope luôn không đổi. thầy Nam và mọi người xem giúp em với ạ? #include <p30F2020.h> #include <adc10.h> // cau hinh cho chip _FOSC(CSW_FSCM_OFF) // tat che do du phong _FOSCSEL(FRC_PLL) //chon nguon xung trong _FWDT(FWDTEN_OFF) //tat bo dinh thoi giam sat _FPOR(PWRT_OFF) // dinh nghia cac dinh nghia cac nhan cua chuong trinh #define PWM_PORT PORTE // thanh ghi port E #define PWM_TRIS TRISE // thanh ghi tris E #define PWM_LAT LATE // thanh ghi lat E #define Fcy 925000000 // TAN SO THUC THI LENH #define Fpwm 50000 //tan so PWM = 50 kHz // cac prototype void Init_ADC0(void); // khoi tao adc void Init_PORT(void); // khoi tao port void Init_MCPWM(void); //khoi tao cac module PWM //int duty = 50; // CHUONG TRINH CHINH int main(void) { Init_PORT(); Init_ADC0(); Init_MCPWM(); // asm("nop"); // asm("nop"); // asm("nop"); while (1) ; // cho ngat return 0; } // chuong trinh khoitao cong void Init_PORT(void) { PWM_LAT = 0x0000; //Xoa thanh ghi chot tin hieu ra PWM PWM_TRIS = 0x0000; // port E la output TRISB = 0xFFFF; // port B la in put ADPCFG = 0x0000; // port B la dau vao tuong tu } //Chuong trinh con khoi tao PWM chung cho cac module void Init_MCPWM(void) { //PTCON = 0x0000; PTPER = Fcy/Fpwm - 1; //Dat thanh ghi chu ky voi tan so PWM = 40 kHz SEVTCMP = PTPER; //su kien dac biet duy nhat là khi bo dem bang PTPER PWMCON1 = 0x0080; // thanh ghi dieu khien pwm1, dung rieng PDCx,lo dead_time //PWMCON2 = 0x0080; // thanh ghi dieu khien pwm2, dung rieng PDCx,lo dead_time PHASE1 = 0x0000; PWMCON1 = 0x0001; FCLCON1 = 0x0003; //PHASE2 = Fcy/Fpwm - 1; // khoi tao period cho pwm2 PDC1 = 0.8*(PTPER + 1) ; // dat khoi tao duty cycle cho pwm1 //PDC2 = 0x00A0; // dat khoi tao duty cycle cho pwm2 IOCON1 = 0xC000; IOCON2 = 0xC000; PTCON = 0x8000; //Kich hoat module PWM } // chuong trinh khoi tao module ADC void Init_ADC0(void) { ADCON = 0x2003; // CHO PHEP ADC HOAT DONG O 4 CHAN B0, B1, B2, B3 ADCPC0 = 0xC3C3; // lien ket voi PWM// _ADIF = 0; //Xoa co ngat ADC _ADCP0IF = 0; //-------------- ADSTATbits.P0RDY = 0; //XOA co bao data is ready _ADCP1IF = 0; //-------------- ADSTATbits.P1RDY = 0; //XOA co bao data is ready _ADIE = 1; //Cho phep ngat ADC _ADON = 1; // cho phep ADC hoat dong } void _ISR _ADCInterrupt(void) //ham ngat cua adc { PDC1 = ADCBUF0*10; // gan ket qua adc ra pw1 (chan E0 va E1) PDC2 = ADCBUF2*10; // gan ket qua adc ra pw2 (chan E3 va E4) _ADIF = 0; // xoa co ngat _ADCP0IF = 0; //xoa co ngat ADSTATbits.P0RDY=0; //xoa bit bao du lieu _ADCP1IF = 0; //xoa co ngat ADSTATbits.P1RDY=0; //xoa bit bao du lieu |
04-10-2012, 07:18 PM | #80 |
Nhập môn đệ tử
Tham gia ngày: Sep 2012
Bài gửi: 4
: |
mình đang làm việc với dspic33fj32mc202,ai cho minh hỏi: mình ko thấy chân sử dụng Input Capture là pin nào?ai giúp mình với
thank nhiều! |
30-10-2012, 10:28 AM | #81 | |
Nhập môn đệ tử
Tham gia ngày: Oct 2012
Bài gửi: 1
: |
Trích:
em cảm ơn anh! |
|
11-12-2012, 05:58 PM | #82 |
Nhập môn đệ tử
Tham gia ngày: Nov 2012
Bài gửi: 2
: |
Mình nghĩ dừng động cơ đang chạy trong thời gian nhỏ nhất thì chỉ cần cho xung điều khiển động cơ đó về 0, hoặc dùng chương trình đảo chiều quay của động cơ rồi cấp xung hãm cho nó, hoặc dùng thuật toán điều khiển vận tốc động cơ kết hợp encoder. Nhưng câu hỏi của bạn chung chung quá, không biết ý của bạn chỉ là tắt động cơ đang chạy hay còn có ý nào khác không nhỉ?
|
11-12-2012, 06:17 PM | #83 |
Nhập môn đệ tử
Tham gia ngày: Nov 2012
Bài gửi: 2
: |
Mọi người có kinh nhiệm lập trình ADC cho dsPic33F cho em hỏi một chút xíu... Em đang lập trình ADC cho con dsPic33FJ32GS608. Nhưng em đọc trên datasheet của con này thì các thanh ghi ADC của nó khác hoàn toàn so với những con dsPic mà mọi người đang đang lấy ví dụ ở đây. Cụ thể là nó chỉ có thanh ghi ADCON mà không có các thanh ghi ADCON1, ADCON2, ADCON3. Em nghĩ là có thể datasheet không ghi hết nhưng khi em sử dụng các thanh ghi này trong MpLab IDE thì nó báo lỗi không hiểu các thanh ghi trên là gì. Em lên trên trang microchip để tìm code mẫu thì chỉ được các code dùng cho các con dsPic có các thanh ghi ADCON1, ADCON2, ADCON3 mà thôi. Trên datasheet của con chip này cũng có code mẫu nhưng em đã thử, nó biên dịch được nhưng chương trình không hoạt động. Em muốn hỏi mọi người có phải con dsPic33FJ32GS608 này có phải là dòng đặc biệt của microchip hay không mà thanh ghi ADC của nó lại khác học dsPic33F như vậy ạ? Mọi người đã từng làm với con này rồi có thể cho em một vài cao kiến hoặc chương trình khai báo sử sụng ADC của nó được không ạ? Em muốn sử dụng 8 chân ADC của nó để đọc tín hiệu sensor nhận vạch trắng.
|
12-09-2013, 10:33 PM | #84 |
Nhập môn đệ tử
Tham gia ngày: Sep 2013
Bài gửi: 1
: |
Ai có thư viện DSP30F trong protues không cho mình với!
|
Tags |
dspic30f adc, dspic30f pwm |
|
|
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 |