PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

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

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 12-04-2011, 01:09 AM   #1
UenX
Nhập môn đệ tử
 
Tham gia ngày: Nov 2008
Bài gửi: 8
:
Post [Hiện tượng lạ] Tần số của PIC18F4550 tăng lên khi chạm tay vào mặt bàn??

Chào các anh chị.
Học kì này em bắt đầu vào chuyên ngành, môn Hệ thống nhúng thầy yêu cầu làm cho thầy một cái "KIT", thế nên mới lọ mọ ra Nhật Tảo mua một mớ linh kiện về để thử nghiệm. Sau 1 ngày nghịch vơi con PIC18F4550, có lẽ do k có căn bản kiến thức về điện-điện tử, em gặp phải hiện tượng khó hiểu như sau :

http://www.youtube.com/watch?v=taLj4GfCNY4

• Vi điều khiển PIC18F4550, mạch tạo xung sử dụng thạch anh 12Mhz, tụ 33pf
• Mạch nạp PICKIT 2 SE.
• Lấy nguồn từ Gnd và Vdd của PICKIT 2 SE (5V) ( em có thử lấy nguồn từ một sợi cáp USB, nhưng k hiểu sao chỉ đạt được hiệu điện thế 5V trong 1, 2 giây lúc mới cắm vào, sau đó bị hạ xuống khoảng 2V ( cắm đèn led vào thì led chớp sáng 4,5 lần khi windows nhận dạng thiết bị, sau 2 giây thì báo lỗi k nhận ra thiết bị, led chỉ còn sáng mờ mờ )

• Sử dụng PORTB để điều khiển một led 7 đoạn chớp tắt liên tục, với code HT PIC C18 như sau:

#include <htc.h>

void init(void)
{
// port directions: 1=input, 0=output
TRISB = 0b00000000;
}
int counter=0;
void main(void)
{
init();
while(1)
{
counter = (counter==0)?1:0;
PORTB= (counter==0)?0b00000000:0b11111111;
_delay(25000);
}

}

==> K hiểu sao khi nạp xuống mạch và chạy thì led chớp tắt rất chậm ( tần số nhỏ, khoảng 3 giây một lần) Và khi chạm tay vào mặt bàn ( chân chạm đất ) thì LED bỗng chớp tắt nhanh hơn, bàn tay càng tiếp xúc nhiều thì LED chớp tắt càng nhanh ! ( PICKIT2SE và testboard đều không tiếp xúc trực tiếp với mặt bàn )

• Khi em thử thay nguồn bằng một pin sạc 3.9 Volt thì cũng xảy ra hiện tượng tương tự ( khi chạm tay vào phần mặt bàn gần chỗ đặt pin, hoặc chạm tay lên pin ( có bọc một lớp giấy cứng ).


Rất mong được mọi người giải thích và giúp em cách khắc phục trường hợp này !

(PS: Và cũng cho em xin vài lời khuyên để đảm bảo an toàn cho PIC, hôm qua em sơ ý cắm ngược chân nguồn, PIC rất nóng, hôm nay thì có dấu hiệu chân RB5 hi sinh, khi nối dây từ chân này tới 1 chân của led 7 đoạn thì mạch ở trên k hoạt động, rút dây ra thì mạch lại chạy bình thường ?? )

Lần đầu post bài nên còn dài dòng và lủng củng, mong mọi người bỏ qua. Em xin cảm ơn nhiều ạ.
UenX vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-04-2011, 11:41 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
Sơ đồ mạch thử nghiệm của bạn ra sao?

Hiện tượng bạn mô tả giống với các triệu chứng của một mạch bị thả nổi chân MCLR.

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 12-04-2011, 12:23 PM   #3
UenX
Nhập môn đệ tử
 
Tham gia ngày: Nov 2008
Bài gửi: 8
:
Trích:
Nguyên văn bởi namqn View Post
Sơ đồ mạch thử nghiệm của bạn ra sao?
Hiện tượng bạn mô tả giống với các triệu chứng của một mạch bị thả nổi chân MCLR.
Thân,
Cảm ơn anh.
chân MCLR em có nối với Vdd qua một điện trở 10k, sơ đồ mạch thì rất đơn giản như sau :

http://www.picvietnam.com/forum/atta...1&d=1302581264

Tối qua em sử dụng file hex của bạn em dịch từ code CCS này (có phần configuration bits) thì k còn hiện tượng nhiễu như trên nữa (code HTPIC của em thì k có bit cấu hình nào cả )

#include <18f4550.h>
#device *=16 adc=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT
#use delay(clock=12000000)
#byte TRISD = 0xf95
#byte PORTD = 0xf83
int16 count1;

void main()
{
while(1)
{
Output_B(0);
delay_ms(1000);
Output_B(255);
delay_ms(1000);
}
}

Tuy nhiên delay tạo ra là 4s chứ k phải 1s như trong code.
Hình Kèm Theo
File Type: jpg pic18f4550.jpg (47.3 KB, 19 lần tải)
UenX vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-04-2011, 03:04 PM   #4
UenX
Nhập môn đệ tử
 
Tham gia ngày: Nov 2008
Bài gửi: 8
:
Em vừa tìm kiếm với từ khóa "PIC18f4550 MCLR float" và tình cờ tìm được một trường hợp tương tự với hiện tượng em đang gặp phải :
Strange behavior of circuit [PIC18f4550]

Họ đưa ra giải pháp như sau :

Let's assume that you are using the 40 pin version of PIC18F4550 and a +5V supply:

(1) Connect a 10K resistor from MCLR to +5v
(2) Disable LVP (low voltage programming) configuration bit IN YOUR CODE

3) Connect a 0.1uF ceramic capacitor across each VDD / VSS pair.
4) Ensure that BOTH VDD pins are connected to +5V and BOTH VSS pins are connected to 0V
5) Connect 0.22uF ceramic capacitor from Vusb to 0v

Em đã thử tắt bit LVP trong phần config của PICKIT 2 Programmer và mạch k còn hiện tượng nhiễu như trên nữa ! Đồng thời chân RB5 trở lại hoạt động bình thường, k còn hiện tượng "khi nối dây từ RB5 tới 1 led trong LED 7 đoạn thì LED 7 đoạn bị tắt, khi rút dây này ra thì các led khác mới sáng lại" nữa )

Vẫn còn vài vấn đề với HTPIC, việc set Configuration Bits, tốc độ delay, em sẽ tiếp tục tìm hiểu và giải quyết.

Tạm thời kết luận : Hiện tượng nhiễu do cơ thể người và các chân của PIC hoạt động k bình thường có thể do chân MCLR bị thả nổi ( k được nối vào VDD qua 1 trở 10K-33K) hoặc cấu hình cho PIC chưa phù hợp ( cụ thể ở đây là bit LVP - Low Voltage Programming )

Cảm ơn anh namqn và mọi người !
UenX vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ð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


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