PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Bootloaders - Programmers - Debuggers - Emulators (http://www.picvietnam.com/forum/forumdisplay.php?f=9)
-   -   Hỏi về cách Nạp chương trình bằng ICSP (http://www.picvietnam.com/forum/showthread.php?t=429)

zero 12-05-2007 09:55 PM

tôi dùng ICprolog và dùng mạch Pic2 để nạp
Bạn có thể cho ví dụ một mạch cho con 877 dược ko?
Thank

namqn 12-05-2007 10:34 PM

Trích:

Nguyên văn bởi zero (Post 8631)
tôi dùng ICprolog và dùng mạch Pic2 để nạp
Bạn có thể cho ví dụ một mạch cho con 877 dược ko?
Thank

Bạn định nói IC-Prog và Falleaf PIC2 chăng?

Hình vẽ dưới đây trích từ tài liệu 'ICSP Guide' của Microchip.
http://www4.hcmut.edu.vn/~nqnam/PIC/...Connection.jpg
hoặc
http://namqn.byethost7.com/PIC/pictu...Connection.jpg

Theo đó, các chân Vpp, Vdd, PGD, PGC, và Vss được nối trực tiếp vào đầu nối ICSP, và cần được cách ly với các phần mạch khác của mạch đích.
Vpp (hay MCLR) được nối vào Vdd của mạch đích (để thực hiện reset khi bật nguồn mạch đích) thông qua diode (schottky), điện trở (khoảng 10k) và tụ điện (vài chục đến vài trăm nF). Vdd của mạch đích nối với Vdd của PIC thông qua điện trở hạn dòng (vài chục ohm, tùy theo dòng điện tiêu thụ của PIC). Các chân PGD và PGC cách ly với mạch đích thông qua các điện trở (vài trăm ohm đến vài k). Chân Vss nối thẳng với các chân Vss của mạch nạp và mạch đích.

Mạch trên vẫn có thể gặp trục trặc, nếu mạch đích của bạn có nhiều chip, và bạn dùng khá nhiều tụ điện lớn giữa các cặp chân Vdd, Vss (hay Vcc, GND) của các chip. Lý do là một số mạch nạp không thể cấp đủ dòng từ Vdd để nâng điện áp Vdd đủ nhanh, khi đó chip sẽ không đi vào chế độ lập trình. Hơn nữa, điện áp Vpp cũng cần phải được nâng lên mức Vpp đủ nhanh (từ giá trị Vdd). Chẳng hạn, PIC16F877A cần có thời gian tăng điện áp ở chân Vpp/MCLR < 1 us. Do đó, không nên có tụ điện gắn trực tiếp giữa chân MCLR và Vss.

Bạn kiểm tra lại mạch đích của bạn, xem có rơi vào một trong những tình huống trên hay không.

Thân,

minhtienbk 08-08-2007 07:30 PM

em xài GTP-USB ,nạp cho 18f2550 , khi tháo ra để nạp thì bt ,nếu xài ICSP (có 1 dây bus nối ) thì :
-detect dc
-Nạp dc 1 lúc thì báo lỗi

Hì ,hổng biết tại sao

abeo 07-09-2007 01:48 AM

Chào các bác,
Em là người mới học nên có mấy vấn đề cần hỏi:

-Khi nạp ICSP mà cấp nguồn ngoài thì chip có rơi vào tình trạng chạy luôn không? Tại vì em nạp (bằng mạch JDM) thì phải cắt nguồn ngoài đồng thời phải mắc một con diod từ VCC đến chân nguồn của pic thì nó mới nạp được (đã cách li PGD và PGC). Cái kiểu mắc diod như thế em không biết có hại không (để tránh nguồn mạch nạp cấp luôn cho mạch ngoài), nhưng em thử thì nạp ok.

-Nếu cấp nguồn ngoài mà nó không chạy luôn thì tại sao lại thế? (làm sao trước khi nạp nó lại biết được là nó đang chuẩn bị bị nạp nhỉ?).

Rất mong các vị trửong lão giải thích hộ.

Em cám ơn trước

namqn 07-09-2007 08:14 PM

Trích:

Nguyên văn bởi minhtienbk (Post 10610)
em xài GTP-USB ,nạp cho 18f2550 , khi tháo ra để nạp thì bt ,nếu xài ICSP (có 1 dây bus nối ) thì :
-detect dc
-Nạp dc 1 lúc thì báo lỗi

Hì ,hổng biết tại sao

Nạp bằng ICSP thì cần phải biết mạch nạp và mạch đích được thiết kế ra sao mới có thể nhận xét về các lỗi trên.

Thân,

namqn 07-09-2007 08:20 PM

Trích:

Nguyên văn bởi abeo (Post 11204)
Chào các bác,
Em là người mới học nên có mấy vấn đề cần hỏi:

-Khi nạp ICSP mà cấp nguồn ngoài thì chip có rơi vào tình trạng chạy luôn không? Tại vì em nạp (bằng mạch JDM) thì phải cắt nguồn ngoài đồng thời phải mắc một con diod từ VCC đến chân nguồn của pic thì nó mới nạp được (đã cách li PGD và PGC). Cái kiểu mắc diod như thế em không biết có hại không (để tránh nguồn mạch nạp cấp luôn cho mạch ngoài), nhưng em thử thì nạp ok.

-Nếu cấp nguồn ngoài mà nó không chạy luôn thì tại sao lại thế? (làm sao trước khi nạp nó lại biết được là nó đang chuẩn bị bị nạp nhỉ?).

Rất mong các vị trửong lão giải thích hộ.

Em cám ơn trước

Nếu dùng mạch JDM để cấp nguồn cho mạch đích thì khả năng dòng sẽ rất hạn chế, do vậy việc bạn mắc thêm một diode từ chân Vdd của PIC đến nguồn (cathode nối vào nguồn) sẽ giúp cách ly các phần mạch khác trên mạch đích, và JDM chỉ phải cấp nguồn cho PIC. Cách làm này có thể gặp trục trặc với các chip PIC lớn tiêu thụ nhiều dòng khi nạp chương trình.

Câu hỏi thứ hai của bạn quá chung chung. Cấp nguồn ngoài mà PIC không chạy thì có rất nhiều lý do.

Bạn xem lại các post đầu tiên của tôi trong luồng này để hiểu thêm về ICSP. Tôi không muốn lặp lại những gì đã nói.

Thân,

abeo 07-09-2007 10:23 PM

À em hiểu rồi, có phải thực ra khi cấp nguồn thì chip nó vẫn chạy, nhưng mạch nạp có khả năng reset chip và sau đó đưa nó vào trạng thái lập trình trong khoảng thời gian rất ngắn?
Còn về con diod gắn kiểu đó thì em nghĩ nó làm cho toàn bộ dòng từ mạch nạp chảy toàn bộ vào chip chứ sao lại hạn dòng được, em nghĩ thế không biết có đúng không?

namqn 07-09-2007 11:21 PM

Trích:

Nguyên văn bởi abeo (Post 11218)
À em hiểu rồi, có phải thực ra khi cấp nguồn thì chip nó vẫn chạy, nhưng mạch nạp có khả năng reset chip và sau đó đưa nó vào trạng thái lập trình trong khoảng thời gian rất ngắn?
Còn về con diod gắn kiểu đó thì em nghĩ nó làm cho toàn bộ dòng từ mạch nạp chảy toàn bộ vào chip chứ sao lại hạn dòng được, em nghĩ thế không biết có đúng không?

Câu thứ nhất, đúng vậy. Người ta dùng chân MCLR để reset chip (nếu ở mức thấp) sau đó đưa vào trạng thái lập trình (nâng lên Vpp).

Ý của tôi trong post trước là cách ly các phần mạch khác trên board mạch, chỉ cấp nguồn cho PIC (board phát triển/thử nghiệm của bạn thường có PIC và các linh kiện, IC khác, và JDM thường không cấp đủ dòng cho toàn bộ mạch phát triển/thử nghiệm, nhưng có thể đủ khả năng cấp dòng cho riêng PIC).

Thân,

8051topic 18-04-2009 04:47 PM

1 Attachment(s)
Các bạn cho mình hỏi về ICSP tí.
Mình làm mạch PG2C giống trên diễn đàn, đã chạy tốt (khi cắm chip vào), mình muốn dùng ICSP để nạp nhưng mà nó không chạy.
Mach đích đuợc thiết kế rất đơn giản, chỉ đưa ra các Port và jack ICSP thôi, mà nó vẫn không detect được PIC (qua ICSP). Mình đã thêm con tụ 100p vào chân RB6 và thêm diode 4148 vào chân MCLR rồi mà nó vẫn không chạy.
PG2C được cắm trực tiếp vào mainboard PC, dây ICSP dài khoảng 30 cm.
Mọi người chỉ giùm mình với.
cảm ơn mọi người.
Mình đính kèm sơ đồ mạch đích.
À em dùng phần mềm PICPgm programmer, IC là PIC 16F887.

namqn 18-04-2009 05:13 PM

Trích:

Nguyên văn bởi 8051topic (Post 24928)
Các bạn cho mình hỏi về ICSP tí.
Mình làm mạch PG2C giống trên diễn đàn, đã chạy tốt (khi cắm chip vào), mình muốn dùng ICSP để nạp nhưng mà nó không chạy.
Mach đích đuợc thiết kế rất đơn giản, chỉ đưa ra các Port và jack ICSP thôi, mà nó vẫn không detect được PIC (qua ICSP). Mình đã thêm con tụ 100p vào chân RB6 và thêm diode 4148 vào chân MCLR rồi mà nó vẫn không chạy.
PG2C được cắm trực tiếp vào mainboard PC, dây ICSP dài khoảng 30 cm.
Mọi người chỉ giùm mình với.
cảm ơn mọi người.
Mình đính kèm sơ đồ mạch đích.
À em dùng phần mềm PICPgm programmer, IC là PIC 16F887.

Bạn thử nối một điện trở 4.7 k từ chân RB3/PGM xuống GND xem (PIC mới tinh có chân PGM được kích hoạt để nạp chương trình ở điện áp thấp).

Thân,

8051topic 19-04-2009 04:01 PM

Chào anh Namqn, em đã hàn điện trở 4k7 từ chân PGM (chân 36 16F887) xuống mass nhưng vẫn không nạp ICSP được.
Mà em thấy trên mạch PG2C chân PGM và mass đã được nối với nhau rồi mà anh, em không hiểu kĩ về phần này, mong anh giúp em tiếp.

namqn 19-04-2009 04:58 PM

Trích:

Nguyên văn bởi 8051topic (Post 24949)
Chào anh Namqn, em đã hàn điện trở 4k7 từ chân PGM (chân 36 16F887) xuống mass nhưng vẫn không nạp ICSP được.
Mà em thấy trên mạch PG2C chân PGM và mass đã được nối với nhau rồi mà anh, em không hiểu kĩ về phần này, mong anh giúp em tiếp.

Bạn nói đúng, chân PGM trên mạch PG2C đã được nối với VSS. Khoảng 6 năm nay tôi không dùng PG2C nên không nhớ rõ (gần đây tôi chỉ dùng JDM Mod nếu cần dùng với cổng COM).

Mạch của bạn nạp được trên socket, nhưng không nạp được bằng ICSP, do đó vấn đề chỉ có thể nằm ở mạch đích hay cáp ICSP của bạn. Bạn xem kỹ lại những phần này (giữa mỗi cặp chân VDD và VSS nên có một tụ 100 nF, hiện thời bạn chỉ có 1 tụ này, và không rõ bạn đặt nó ở đâu trên mạch thực-nên đặt các tụ này ở càng gần các cặp chân VDD và VSS càng tốt).

Thân,

8051topic 19-04-2009 07:03 PM

Mạch đích của em khá đơn giản nên em đã thay sợi cáp ICSP khác và kết quả là phần mềm PICPgm programmer Detect được chip và nạp OK.
Em thấy sợi cáp chẳng có gì mà lỗi lại nằm ở đó, hic hic, mất nhiều thời gian với nó quá.
Con tụ mà anh thấy trên mạch em để nó sát jack ICSP và cũng gần chân 40 của chip.
Cảm ơn anh Nam một lần nữa.

pnchinh1 22-04-2010 07:40 PM

anh namqn cho hỏi khi nap chuong trinh bang icsp các chân PGD PGC MCLR VDD nhu the nao?

hoangdai 03-06-2011 02:02 PM

Các bác cho e hỏi là con PIC16F886 em chạy CT trong void main và trước vòng lặp while(true) thì ko thực hiện được, ấn reset thì ok. Mạch trang bị trở 5.6k lên Vcc, thêm hay bỏ tụ reset 100nF cũng ko ăn thua. E kiểm tra thì nó có vào đc while(true) nhưng ko hiểu sao cái hàm trước đó lại ko chạy đc. Mong các Pro chỉ bảo. Thanks!


Múi giờ GMT. Hiện tại là 12:15 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam