![]() |
|
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 |
![]() |
#61 | |
Trưởng lão PIC bang
|
Trích:
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. |
|
![]() |
![]() |
![]() |
#62 | |
Đệ tử 4 túi
Tham gia ngày: Jan 2008
Bài gửi: 68
: |
Trích:
Đá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. |
|
![]() |
![]() |
![]() |
#63 |
Đệ tử 1 túi
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, |
![]() |
![]() |
![]() |
#64 |
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 |
![]() |
![]() |
![]() |
#65 |
Nhập môn đệ tử
Tham gia ngày: Sep 2009
Bài gửi: 2
: |
dieu khien dc dung pic16
cho em hoi neu mach cau H co phan hoi dong dien qua Rshun thi tin hieu ve noi vao chan nao cua pic vay?
|
![]() |
![]() |
![]() |
#66 |
Đệ tử 2 túi
Tham gia ngày: Sep 2008
Nơi Cư Ngụ: Tp. HCM
Bài gửi: 38
: |
|
![]() |
![]() |
![]() |
#67 |
Đệ tử 2 túi
Tham gia ngày: Sep 2008
Nơi Cư Ngụ: Tp. HCM
Bài gửi: 38
: |
Áp vào chân ADC của dspic30F6014A
Em thiết kế mạch khuyếch đại từ micro, sao cho áp ra dao động với biên độ +- 2.5V, sau đó qua mạch lọc, xong qua mạch cộng thêm 2.5v để được áp dao động từ 0-5v. Xong phần này tín hiệu do bằng dao động ký rất tốt (em sử dụng mạch khuyếch đại và lọc dụng Opamp OP07).
Sau đó đưa áp này vào chân ADC của dspic30F6014A, quan sát áp trên dao động ký thì thấy nó bị xén mất một phần ,chỉ còn lại phần từ 0- khoảng 1v (em nhấn mạnh là xén mất chứ ko phải sụt áp). Em ko hiểu tại sao lại như vậy, em đã thử thêm một tần đệm trước khi đưa vào ADC, nhưng kết quả vẫn như vậy. Em xin đính kèm sơ đồ mạch, ai có kinh nghiệm xem xét giúp em với, em cám ơn rất nhiều. Sơ đồ mạch em đã post thêm file pdf, phần mạch khuyếch đại và lọc em vẽ ở phía dưới cùng, tín hiệu sau xử lý đưa vào chân AN15 (nối bằng jumper giữa J11 và J3). thay đổi nội dung bởi: npbaoduy, 28-11-2009 lúc 12:41 AM. |
![]() |
![]() |
![]() |
#68 | |
Trưởng lão PIC bang
|
Trích:
Nếu đưa dạng sóng đã kiểm tra tốt vào PIC/dsPIC mà dạng sóng bị xén mất thì phải xem lại mức đỉnh của tín hiệu có tương thích với áp nguồn của PIC/dsPIC hay không. Các chân vào/ra của PIC/dsPIC thường có 2 diode bảo 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 |
|
![]() |
![]() |
![]() |
#69 |
Đệ tử 2 túi
Tham gia ngày: Sep 2008
Nơi Cư Ngụ: Tp. HCM
Bài gửi: 38
: |
Em vẫn ko hiểu được anh à, nếu như ngõ vào ADC nối vô con biến trở rồi vặn biến trở thì áp bình thường ko bị sụt (0-5V), chỉ có tín hiệu từ sau bộ khuyếch đại đưa vào mới bị xén. Giả thiết bị sụt áp do dòng bé cũng ko thuyết phục lắm, vì nếu dòng nhỏ thì bị sụt áp chứ ko phải xén, hơn nữa em đã thêm mạch khuyếch đại đệm vào kết quả vẫn vậy, tín hiệu bị xén hết chỉ còn phần nằm trong khoảng 0-1V thôi
![]() |
![]() |
![]() |
![]() |
#70 | |
Trưởng lão PIC bang
|
Trích:
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 |
|
![]() |
![]() |
![]() |
#71 |
Đệ tử 2 túi
Tham gia ngày: Sep 2008
Nơi Cư Ngụ: Tp. HCM
Bài gửi: 38
: |
Tất nhiên là em có cấp nguồn
![]() code em làm tương tự như code mẫu trên trang của microchip Code:
void Init_ADC12(void) { //ADCON1 Register //Set up A/D for Automatic Sampling //Use Timer3 to provide sampling time //Set up A/D conversrion results to be read in fractional //number format. //All other bits to their default state ADCON1bits.FORM = 3; // luu du lieu dinh dang signed fractional 1.15 ADCON1bits.SSRC = 2; // dung timer3 de kich chuyen doi ADC ADCON1bits.ASAM = 1; // cai dat che do tu dong lay mau //ADCON2 Register //Set up A/D for interrupting after 16 samples get filled in the buffer //All other bits to their default state ADCON2bits.SMPI = 15; // cai da che do ngat ADC sau khi day 16 mau trong bo dem du lieu //ADCON3 Register //We would like to set up a sampling rate of 8KHz //Total Conversion Time= 1/Sampling Rate = 125 microseconds //At 29.4 MIPS, Tcy = 33.9 ns = Instruction Cycle Time //Tad > 667ns (for -40C to 125C temperature range) //We will set up Sampling Time using Timer3 & Tad using ADCS<5:0> bits //All other bits to their default state //Let's set up ADCS arbitrarily to the maximum possible amount = 63 //So Tad = Tcy*(ADCS+1)/2 = 1.085 microseconds //So, the A/D converter will take 14*Tad periods to convert each sample ADCON3bits.ADCS = 63; //Next, we will to set up Timer 3 to time-out every 125 microseconds //As a result, the module will stop sampling and trigger a conversion //on every Timer3 time-out, i.e., 125 microseconds. At that time, //the conversion process starts and completes 14*Tad periods later. //When the conversion completes, the module starts sampling again //However, since Timer3 is already on and counting, about 110 //microseconds later (=125 microseconds - 14*Tad), Timer3 will expire //again. Effectively, the module samples for 110 microseconds and //converts for 15 microseconds //NOTE: The actual sampling rate realized may be 7998.698 Hz // due to a small round off error. Ensure you provide the // true sampling rate to dsPICworks if you are trying to plot // the sampled or filtered signal. TMR3 = 0x0000; PR3 = 0X0E65; IFS0bits.T3IF = 0; // cho co ngat timer3=0 IEC0bits.T3IE = 0; // khong cho phep ngat timer3 //ADCHS Register //Set up A/D Channel Select Register to convert AN7 on Mux A input ADCHS = 0x000F; // chon AN15 la kenh thu du lieu analog //ADCSSL Register //Channel Scanning is disabled. All bits left to their default state ADCSSL = 0x0000; // tat che do quet cac kenh. Cac n=bit con lai de che do mac dinh //ADPCFG Register //Set up channels AN15 as analog input and configure rest as digital //Recall that we configured all A/D pins as digital when code execution //entered main() out of reset ADPCFG = 0xFFFF; ADPCFGbits.PCFG15 = 0; //ngo AN15 la ngo vao analog //Clear the A/D interrupt flag bit IFS0bits.ADIF = 0; // xoa co ngat chuyen doi ADC //Set the A/D interrupt enable bit IEC0bits.ADIE = 1; // cho phep ngat ADC //Turn on the A/D converter //This is typically done after configuring other registers ADCON1bits.ADON = 1; // bat dau cho do ADC hoat dong //Start Timer 3 T3CONbits.TON = 1; // cho timer3 bat dau chay } void __attribute__((interrupt, no_auto_psv)) _ADCInterrupt(void) { IFS0bits.T3IF = 0; //Xoa co ngat timer3 unsigned int i = 0; IFS0bits.ADIF = 0; //Xoa co ngat ADC adcPtr=&ADCBUF0; // lay dia chi thanh ghi ADCBUF0 ghi vao thanh ghi adcPtr for(i=0;i<=15;i++) { *iPtr++=*adcPtr++; //lay noi dung cua cac thanh ghi Buffer lan luot ghi vao cac bien // inputsignal[] } if (iPtr>&inputsignal[159]) doFilterFlag=1; // thu duoc 160 mau thi vao xu ly } Code:
.... while(1) { while(!doFilterFlag){}; //Vong lap cho day 160 mau trong bo dem ADC doFilterFlag=0; //chuan bi vong lap sau (.....tính toán xử lý .........................) |
![]() |
![]() |
![]() |
#72 |
Đệ tử 2 túi
Tham gia ngày: Sep 2008
Nơi Cư Ngụ: Tp. HCM
Bài gửi: 38
: |
Luôn tiện a cho em hỏi luôn là nếu đưa áp vào chân ADC mà vuợt ngoài tầm 0-5v (áp âm hoặc lớn hơn 5v) thì có thể làm hư chân ADC đó ko ?
|
![]() |
![]() |
![]() |
#73 |
Đệ tử 2 túi
Tham gia ngày: Mar 2007
Bài gửi: 29
: |
anh Nam ơi cho em hỏi thanh ghi SEVTCMP có tác dụng gì vậy ạ
|
![]() |
![]() |
![]() |
#74 |
Nhập môn đệ tử
Tham gia ngày: Nov 2009
Bài gửi: 10
: |
Anh Nam và các bạn cho hỏi ở phần giới thiệu trong tutorial 5 có nói: "Ví dụ 5-1 sẽ giới thiệu cách điều chỉnh độ rộng xung theo một giá trị tương tự được đọc về thông qua một ngõ vào analog". Vậy ở đây giá trị tương tự là tín hiệu gì và tín hiệu xung điều chỉnh theo tham số nào của tín hiệu tương tự đó. Thank!
|
![]() |
![]() |
![]() |
#75 | |
Trưởng lão PIC bang
|
Trích:
Với cách thiết lập tham số cho module MCPWM trong ví dụ 5-1, duty cycle = 100% sẽ ứng với giá trị 400 (đọc kỹ tutorial nếu chưa rõ). Với cách đọc tín hiệu ADC đã dùng trong ví dụ 5-1, khi điện áp ngõ vào analog thay đổi từ 0 V đến VDD thì sẽ có được giá trị 0 - 511 trong biến ADCValue, và giá trị này được ghi thẳng vào các thanh ghi PDCx để thiết lập duty cycle. Như vậy, khi ngõ vào analog thay đổi từ 0 V đến khoảng 80% giá trị của VDD (chính xác là 400*VDD/512) thì duty cycle của tín hiệu ra sẽ thay đổi từ 0% đến 100%. Có vẻ như bạn chưa đọc kỹ tutorial và code đi kèm. 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 |
|
![]() |
![]() |
![]() |
Tags |
dspic30f adc, dspic30f pwm |
|
|
![]() |
||||
Ðề 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 |