PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Bootloaders - Programmers - Debuggers - Emulators > Những lỗi nạp và debug thường gặp

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

Những lỗi nạp và debug thường gặp Nên chú ý box này trước khi đặt câu hỏi

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 18-11-2011, 02:25 AM   #1
R2F_nAtAs
Nhập môn đệ tử
 
Tham gia ngày: Nov 2011
Bài gửi: 4
:
Cần giúp đỡ về PIC 16F877A và mạch nạp PICKIT2

Chào các bạn, mình mới học làm mạch khoảng 1 tháng nay thôi, trong khi làm mạch thì gặp khá nhiều vấn đề, hôm nay có 2 vấn đề mình ko tự giải quyết đc nên post lên nhờ các bạn và các đàn anh chỉ giáo. 2 vấn đề này mình phải nói đầu đuôi rõ ràng, nên hơi dài, các bạn chịu khó đọc giúp

- Mình sử dụng pic 16f877a, với mạch MAIN PIC là tự hàn, trong mạch mình có để 8 led đơn trực tiếp từ portB.

- Mình có dùng mạch nạp pickit2 (mua ở Thiên Minh - mình ở SG) và cũng có tự làm 1 mạch pickit2.

Vấn đề mà mình gặp là:

1. hôm trước khi đi học thì các a hướng dẫn mình viết code rồi cho chạy bằng MPLAB (nạp trực tiếp file hex cho PIC bằng MPLAB, ko sử dụng chương trình pickit2), nạp bằng mạch nạp mà mình mua. Thì xuất hiện lỗi => ko detect dc 16f877a. Từ lúc đó, mạch nạp pickit2 của mình ko detect được 16f877a được nữa.

Sau đó vài ngày, mình sử dụng mạch nạp BurnE, thì lại detect được 16f877a. Mình dùng burnE xóa hết dữ liệu trong pic. sau đó đã có thể dùng pickit2 nạp lại dc. Tuy nhiên, lúc thì nạp được, lúc thì ko, lúc thì program successful nhưng LED lại ko sáng (ko phải do code), có lúc mình nap xong lại bị lỗi ko detect 16f877a, rồi mình lại phải dùng burnE để xóa dữ liệu đi. Mà ko phải lúc nào dùng burnE cũng xóa dc (có lúc burnE cũng ko detect pic được)

Mình có đem ra Thiên Minh hỏi, họ nói mạch nạp pickit2 của mình bình thường, còn con pic 16f877a của mình hư rồi, vứt đi. Nhưng mà trước giờ mình chỉ có nạp và xóa thôi, ko làm j mà hư dc con pic.

Nói chung mình nghĩ con pic 16f877a của mình bị 1 lỗi j đó mà mình ko khắc phục được, mình nghĩ ko phải do mạch MAIN PIC, do mình có thử thay 1 con pic khác thì thấy cũng bt.

Mong các bạn júp mình. ah bên dưới có cái hình mà pickit2 không nhận được 16f877a



2. Còn vấn đề thứ 2 của mình là ở mạch nạp pickit2 mà mình tự làm.
Mình dùng con pic 18f2550, sau khi làm xong mạch và nạp chương trình cho 18f2550 thì: pickit2 của mình máy tính đã nhận đc, nhưng nó lại ko detect được con pic 16f877a trong mạch MAIN PIC (lúc này thì con pic chưa bị lỗi như ở trên đâu nha các bạn, nó vẫn nạp được bt).

Mình nghĩ cái mạch nạp này ko detect pic được có khả năng do transistor (trong mạch mình có dùng 3 con BC548 và 1 con BC557), do có 1 vài đứa làm mạch giống mình mà khác transistor thì mạch chạy đc. Không bik các bạn nghĩ sao về lỗi này???



Các bạn nếu chưa hiểu vấn đề, thì cứ hỏi, mình sẽ giải thích thêm. Mong được các bạn và các đàn anh giúp đỡ, 2 vấn đề này làm mình đau đầu mấy ngày nay
Hình Kèm Theo
File Type: jpg pic16f877a.jpg (285.5 KB, 362 lần tải)
File Type: jpg pickit2.jpg (384.6 KB, 256 lần tải)
File Type: jpg error.jpg (130.4 KB, 107 lần tải)

thay đổi nội dung bởi: R2F_nAtAs, 18-11-2011 lúc 03:31 AM. Lý do: Thêm sơ đồ nguyên lý
R2F_nAtAs vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-11-2011, 11:09 AM   #2
duy08091983
Đệ tử 6 túi
 
Tham gia ngày: Aug 2006
Bài gửi: 159
:
PIC16F877A em mua ở đâu, anh đề nghị nên ưu tiên mua tại cty RP.

Trích:
Nguyên văn bởi R2F_nAtAs View Post
Chào các bạn, mình mới học làm mạch khoảng 1 tháng nay thôi, trong khi làm mạch thì gặp khá nhiều vấn đề, hôm nay có 2 vấn đề mình ko tự giải quyết đc nên post lên nhờ các bạn và các đàn anh chỉ giáo. 2 vấn đề này mình phải nói đầu đuôi rõ ràng, nên hơi dài, các bạn chịu khó đọc giúp

- Mình sử dụng pic 16f877a, với mạch MAIN PIC là tự hàn, trong mạch mình có để 8 led đơn trực tiếp từ portB.

- Mình có dùng mạch nạp pickit2 (mua ở Thiên Minh - mình ở SG) và cũng có tự làm 1 mạch pickit2.

Vấn đề mà mình gặp là:

1. hôm trước khi đi học thì các a hướng dẫn mình viết code rồi cho chạy bằng MPLAB (nạp trực tiếp file hex cho PIC bằng MPLAB, ko sử dụng chương trình pickit2), nạp bằng mạch nạp mà mình mua. Thì xuất hiện lỗi => ko detect dc 16f877a. Từ lúc đó, mạch nạp pickit2 của mình ko detect được 16f877a được nữa.

Sau đó vài ngày, mình sử dụng mạch nạp BurnE, thì lại detect được 16f877a. Mình dùng burnE xóa hết dữ liệu trong pic. sau đó đã có thể dùng pickit2 nạp lại dc. Tuy nhiên, lúc thì nạp được, lúc thì ko, lúc thì program successful nhưng LED lại ko sáng (ko phải do code), có lúc mình nap xong lại bị lỗi ko detect 16f877a, rồi mình lại phải dùng burnE để xóa dữ liệu đi. Mà ko phải lúc nào dùng burnE cũng xóa dc (có lúc burnE cũng ko detect pic được)

Mình có đem ra Thiên Minh hỏi, họ nói mạch nạp pickit2 của mình bình thường, còn con pic 16f877a của mình hư rồi, vứt đi. Nhưng mà trước giờ mình chỉ có nạp và xóa thôi, ko làm j mà hư dc con pic.

Nói chung mình nghĩ con pic 16f877a của mình bị 1 lỗi j đó mà mình ko khắc phục được, mình nghĩ ko phải do mạch MAIN PIC, do mình có thử thay 1 con pic khác thì thấy cũng bt.

Mong các bạn júp mình. ah bên dưới có cái hình mà pickit2 không nhận được 16f877a



2. Còn vấn đề thứ 2 của mình là ở mạch nạp pickit2 mà mình tự làm.
Mình dùng con pic 18f2550, sau khi làm xong mạch và nạp chương trình cho 18f2550 thì: pickit2 của mình máy tính đã nhận đc, nhưng nó lại ko detect được con pic 16f877a trong mạch MAIN PIC (lúc này thì con pic chưa bị lỗi như ở trên đâu nha các bạn, nó vẫn nạp được bt).

Mình nghĩ cái mạch nạp này ko detect pic được có khả năng do transistor (trong mạch mình có dùng 3 con BC548 và 1 con BC557), do có 1 vài đứa làm mạch giống mình mà khác transistor thì mạch chạy đc. Không bik các bạn nghĩ sao về lỗi này???



Các bạn nếu chưa hiểu vấn đề, thì cứ hỏi, mình sẽ giải thích thêm. Mong được các bạn và các đàn anh giúp đỡ, 2 vấn đề này làm mình đau đầu mấy ngày nay
__________________
Homepage: www.pduytech.com
Email: oliver.duy@gmail.com
YM: duy08091983@yahoo.com
FB: Phuong Duy Technology
duy08091983 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-11-2011, 04:15 PM   #3
R2F_nAtAs
Nhập môn đệ tử
 
Tham gia ngày: Nov 2011
Bài gửi: 4
:
Trích:
Nguyên văn bởi duy08091983 View Post
PIC16F877A em mua ở đâu, anh đề nghị nên ưu tiên mua tại cty RP.
Mua ở Thiên Minh, lúc em mua là ngta vừa khui lô hàng mới luôn
R2F_nAtAs vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-11-2011, 08:30 PM   #4
duy08091983
Đệ tử 6 túi
 
Tham gia ngày: Aug 2006
Bài gửi: 159
:
Trích:
Nguyên văn bởi R2F_nAtAs View Post
Mua ở Thiên Minh, lúc em mua là ngta vừa khui lô hàng mới luôn
... hang moi, nhung ho tra loi em nhu the nao khi co phan hoi cua em !
__________________
Homepage: www.pduytech.com
Email: oliver.duy@gmail.com
YM: duy08091983@yahoo.com
FB: Phuong Duy Technology
duy08091983 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-11-2011, 11:20 PM   #5
R2F_nAtAs
Nhập môn đệ tử
 
Tham gia ngày: Nov 2011
Bài gửi: 4
:
dạ họ nói là con pic 16f877a của e hư rồi, ko làm j dc nữa, quăng đi
mà sau đó e thử gắn với burnE thì burnE lại detect dc con pic của e
R2F_nAtAs vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-11-2011, 10:15 AM   #6
duy08091983
Đệ tử 6 túi
 
Tham gia ngày: Aug 2006
Bài gửi: 159
:
Trích:
Nguyên văn bởi R2F_nAtAs View Post
dạ họ nói là con pic 16f877a của e hư rồi, ko làm j dc nữa, quăng đi
mà sau đó e thử gắn với burnE thì burnE lại detect dc con pic của e
Detect được rồi thế nạp được chưa ? Hay nạp thành công mà PIC chưa chạy, nhớ config sang dùng thạch anh ngoài.
__________________
Homepage: www.pduytech.com
Email: oliver.duy@gmail.com
YM: duy08091983@yahoo.com
FB: Phuong Duy Technology
duy08091983 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-11-2011, 03:03 AM   #7
R2F_nAtAs
Nhập môn đệ tử
 
Tham gia ngày: Nov 2011
Bài gửi: 4
:
up up. ai giúp e với hix
R2F_nAtAs vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-03-2012, 11:04 AM   #8
hoangclick
Nhập môn đệ tử
 
Tham gia ngày: Mar 2012
Bài gửi: 8
:
các bro cho em hỏi là :
E không tich vào ô check để cấp nguồn 5v từ cổng usb được

hay là chương trình Pickit2 của em bị lỗi
hoangclick vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-04-2012, 05:39 AM   #9
Aducbkfet
Nhập môn đệ tử
 
Tham gia ngày: Sep 2010
Bài gửi: 5
:
Lỗi No device detected

Chào mọi người! Mình mới sử dụng PIC lần đầu và mới mượn được cái mạch nạp PIC KIT 2SE của phanit, có chút vấn đề là em không detcted được chip như hình ảnh và không nạp được. Moị người biết lỗi thì chỉ mình với.
Cám ơn mọi người nhiều.
Hình Kèm Theo
File Type: png Loi khong nap duoc PIC.png (309.6 KB, 36 lần tải)
Aducbkfet vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-04-2012, 11:26 AM   #10
kiêt_le
Nhập môn đệ tử
 
Tham gia ngày: Oct 2011
Bài gửi: 1
:
chào các bạn, mình mới làm mạch nạp pickit2, mà mỗi lần mình nạp test nạp thì ok. nhưng sao em gắn vào board thi nó báo lỗi và làm mất chương trình của con pic 18f2550 phải nạp lại chương trình cho pic 18f2550 mới nạp được mà khi gắn lên board lại bĩ y như vậy
kiêt_le vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-08-2012, 11:26 AM   #11
imlanglavang102
Nhập môn đệ tử
 
Tham gia ngày: Oct 2011
Bài gửi: 7
:
hi mình có vấn đề này khó giải nhờ các bạn tí nha
#include "D:\A NHAP PHAM MEM\pic xoa\lcd.h"
#include <string.h>
#use delay(clock=1200000)
#fuses NOWDT,PUT,XT,NOPROTECT
#use fast_io(b)
#use fast_io(e)
#byte LCDdata=0x07// cong c trong c khong duoc dat ten du lieu vao cac tu khao ma tron gx da quy
// din khi do se lam sai het chuong trinh
// ma con lam cho chuong trinh phien dich sai
#define RS 72 // cong e1
#define RW 73// cong e2
#define E 74// cong e3
#define BF 63
void delay1(long time)
{ int i;
for(i=0;i<time;i++)
{// muc dich la tao ra ham tre cho lcd
}
}
void wait(void)
{
//int n=0;
output_high(E);//==1;// Dua chan cho fep len cao
output_low(RS);//==0;// Chon thanh ghi lenh
output_high(RW);//==1;// Doc tu LCD
LCDdata=0xFF;// Gia tri 0xFF
// while(BF){n++; if(n>100) break;}// Kiem tra co ban
// Neu ban dem n den 100 roi thoat khoi while
output_low(E);//==0;// Dua xung cao xuong thap de chot
output_low(RS);//W==0;// Doc tu LCD
}
// Hàm di?u khi?n LCD th?c hi?n 1 l?nh:
void LCDcontrol(unsigned char x)
{
output_high(E);//==1;// Dua chan cho fep len cao
output_low(RS);//==0;// Chon thanh ghi lenh
output_low(RW);//==0;// Ghi len LCD
LCDdata=x;// Gia tri x
output_low(E);//==0;// Xung cao xuong thap
wait();// Doi LCD san sang
}
//Hàm có 1 bi?n d?u vào là các giá tr? trong b?ng mã l?nh c?a LCD.
//* Hàm kh?i t?o LCD:
void LCDinit(void)
{
LCDcontrol(0x30);//Che do 8 bit.
LCDcontrol(0x30);
LCDcontrol(0x30);
LCDcontrol(0x38);// 2 dong va ma tran 5x7
LCDcontrol(0x0C);// Bat con tro
LCDcontrol(0x06);// Tang con tro xang fai
LCDcontrol(0x01);// Xoa man hinh
}
//* Hàm l?nh cho LCD hi?n th? 1 kí t? :
void LCDwrite(unsigned char c)
{
output_high(E);//==1;// Cho fep muc cao
output_high(RS);//==1;// Ghi du lieu
output_low(RW);//==0;// Ghi len LCD
LCDdata=c;// Gia tri C
output_low(E);//==0;// Xung cao xuong thap
}
//Hàm l?nh cho LCD hi?n th? 1 xâu kí t? ( dòng ch?):
void LCDputs(unsigned char *s,unsigned char row)
{
unsigned char len;
if(row==1) LCDcontrol(0x80);// Ep con tro ve dau dong 1
else LCDcontrol(0xC0);// Ep con tro ve dau dong 2
len==strlen(s);// Lay do dai bien duoc tro boi con tro
// khi khai bao ham strlen can co #include<string.h>
while(len!=0)// Khi do dai van con
{
LCDwrite(*s);// Ghi ra LCD gia tri duoc tro boi con tro
s++;// Tang con tro
len--;// Tru do dai
}
}
void LCDwritei(int d)
{
unsigned char i,j,k,l;
i=d%10;// Chia lay phan du, duoc chu so hang don vi
d=d/10;// Chia lay phan nguyen, duoc nhung chu so da bo hang don vi
j=d%10;// Duoc chu so hang chuc
d=d/10;// Nhung chu so da bo hang don vi va hang chuc
k=d%10;// Duoc hang tram
l=d/10;// Duoc hang nghin
LCDwrite(48+l);// Hien thi ki tu trong bang ascii
LCDwrite(48+k);// Trong bang ascii so 0 co co so thu tu la 48
LCDwrite(48+j);
LCDwrite(48+i);
}
void main()
{
//char x;
// setup_adc_ports(NO_ANALOGS);
//setup_adc(ADC_OFF);
//setup_psp(PSP_DISABLED);
//setup_spi(SPI_SS_DISABLED);
//setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
//setup_timer_1(T1_DISABLED);
//setup_timer_2(T2_DISABLED,0,1);
//setup_comparator(NC_NC_NC_NC);
//setup_vref(FALSE);

// TODO: USER CODE!!

LCDinit();
LCDwritei(48);
//LCDputs("dsadfasdfsa",1);
delay1(30000);
LCDcontrol(0xc5);LCDwrite('a');LCDwrite('n');LCDwr ite('#');LCDwrite('O');LCDwrite('K');LCDwrite('a') ;LCDwrite('n');LCDwrite('*');LCDwrite('H');LCDwrit e('U');LCDwrite('Y');
while(true)
{
//for(x=0;x<16;x++)// Dich 16 lan.
//{
//LCDputs("8052 MCU",1);
//LCDcontrol(0x18);// Dich hien thi sang trai.
//delay1(5000);// Tre
//}
}
}
sau bai nay to viet xong bien dich xong nhưng mà khi thử băng protues thì lai không cháy đuwocj
còn trong lập trình c trong keli thì đương nhiên chương trình này chạy đúng
hi
imlanglavang102 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lờ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à 10:21 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