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)

tinhthanthep 16-05-2006 09:24 AM

Hỏi về cách Nạp chương trình bằng ICSP
 
1 Attachment(s)
Đây là sơ đồ mạch nạp chương trình cho PIC bằng ICSP:
Các bác cho em hỏi khi nạp bằng ICSP có nhất thiết phải cắt nguồn điện cấp cho vi điều khiển hay không?
Nhìn trên sơ đồ thì em hiểu là có thể nạp ICSP khi vẫn đang cắm nguồn điện cho PIC vì em thấy trên sơ đồ vẫn chỉ ra đầu nối đất và nối nguồn. Như vậy thì các bác có thể giải thích cho em tác dụng của con tụ và điốt được không?
Em vừa làm cái mạch điều khiển động cơ có thiết kế hàng jam nạp ICSP. Chân RB6, RB7 không dùng gì. Em nạp khi không cắm nguồn cho PIC. Vì vậy em thiết kế 5 chân của ICSP nối trực tiếp vào 5 chân : clock, data, Vdd, Vss, Vpp mà không có nối thêm một linh kiện nào nữa cả. Làm như vậy có được không các bác nhỉ? vì em vẫn chưa thử nạp. Chỉ sợ nó tèo mất con PIC.

namqn 16-05-2006 06:01 PM

Thông thường, chỉ cần một trong 2 phần mạch được cấp nguồn VDD, từ phía mạch nạp ICSP hay từ phía mạch target. Nếu bạn cấp nguồn cho cả 2 phần thì phải đảm bảo có điện trở hạn dòng hợp lý giữa hai chân VDD của mạch target và mạch nạp ICSP, vì trong thực tế không bao giờ có VDD của 2 mạch tuyệt đối bằng nhau.

Mạch R, C là mạch reset cho PIC khi cấp nguồn, diode để chặn điện áp VPP xuất hiện ở chân MCLR khi chip ở chế độ nạp cấp dòng ngược về VDD.

Cứ làm theo hướng dẫn của Microchip là ok, tôi hiện chỉ dùng mạch nạp ICSP và mạch target có đầu nối ICSP, chạy tốt và chưa từng đốt con PIC nào.

Thân,

tinhthanthep 17-05-2006 08:49 AM

Thanks namqn

bachelor1979 30-07-2006 11:25 AM

hỏi điều này có vẻ ngây ngô nhưng ko biết thì phải hỏi thôi :D Bác namqn hãy giải thích cho tôi biết nạp bằng ICSP là như thế nào vậy ? Ưu nhược điểm của cách nạp này so với cách nạp dùng mạch nạp ?
Thân !

namqn 01-08-2006 01:05 AM

Trích:

Nguyên văn bởi bachelor1979
hỏi điều này có vẻ ngây ngô nhưng ko biết thì phải hỏi thôi :D Bác namqn hãy giải thích cho tôi biết nạp bằng ICSP là như thế nào vậy ? Ưu nhược điểm của cách nạp này so với cách nạp dùng mạch nạp ?
Thân !

Với cách nạp ICSP (In-Circuit Serial Programming), chip được nạp sẽ nằm ngay trong mạch đích (nó là mạch thử nghiệm, mạch phát triển, hay là mạch mà bạn sẽ dùng trong thực tế), mạch đích cần đưa ra một đầu nối với các chân dùng để lập trình. Bắt buộc phải đưa ra PGC, PGD, MCLR, GND.

Mạch đích cấp nguồn VDD cho mạch nạp ICSP hay ngược lại, bạn cũng có thể cấp nguồn cho mạch nạp ICSP và mạch đích riêng biệt.

Chân MCLR sẽ được mạch nạp điều khiển và nâng áp lên đến mức Vpp (tùy theo chip, thông thường là 12-13V) khi đưa chip vào chế độ nạp, do đó mạch đích cần phải có các thiết kế thích hợp để tránh áp 13V này gây hư hỏng cho các phần khác (vì chân MCLR thường được nối lên VDD qua một điện trở đủ lớn để thực hiện chức năng reset).

Đối với các phần mềm dùng để nạp chip, không có sự phân biệt giữa mạch nạp độc lập hay mạch nạp ICSP.

Ưu điểm:
- Không cần phải nhổ chip ra và gắn chip vào mỗi lần nạp, do đó tăng tuổi thọ cơ học cho chip
- Cách duy nhất để có thể cập nhật chương trình cho các chip loại SMD
- Tiết kiệm được một cái socket cho mạch nạp :)

Khuyết điểm:
- Đòi hỏi một sự chú ý khi thiết kế mạch đích
- Đôi khi sử dụng nguồn nhiều hơn khi phải cấp nguồn cho cả mạch đích

Thân,

bachelor1979 05-08-2006 11:05 AM

Thanks Namqn :D

leduy173 07-08-2006 02:40 AM

cho em hỏi em đang sử dụng mạch nạp kiểu JMD lúc nạp qua zip thì nó detech được pic nhưng khi nạp = icsp thi ko detech được nữa, em sử dụng chương trinh nạp winpic800,hổng bít tại sao như vậy lun!!!ah wen đang nạp cho con 16f84a

namqn 07-08-2006 09:40 PM

Trích:

Nguyên văn bởi leduy173
cho em hỏi em đang sử dụng mạch nạp kiểu JMD lúc nạp qua zip thì nó detech được pic nhưng khi nạp = icsp thi ko detech được nữa, em sử dụng chương trinh nạp winpic800,hổng bít tại sao như vậy lun!!!ah wen đang nạp cho con 16f84a

Rất có khả năng cáp nối từ mạch nạp JDM đến mạch đích quá dài (người ta khuyến cáo không nên dài quá 15 cm). Đôi khi cáp ngắn vẫn không khắc phục được hiện tượng nhiễu giữa các đường tín hiệu, khi đó bạn hàn thêm một tụ điện nhỏ khoảng 47-100 pF từ chân PGC(RB6) đến GND, đặt càng gần chip càng tốt (cái trò này không biết phải nói bao nhiêu lần nữa thì mới thôi!).

Thân,

hatuan296 09-04-2007 03:55 AM

Chào anh namqn . nhân tiện luồn này . anh có thể cho em hỏi .

mạch của em dùng chip 18f458 , toàn bộ POTRB kết nối với LCD , từ chân RB.4 đến RB.7 của PIC lần lượt kết nối từ D4 đến D7 của LCD . Chân Clear nối lên VCC 5v = 1 điện trở 10 k . mạch nạp là mạch Propic mua của Tme , phần mềm nạp là Winpic800 . Em cho detect pic ngay trên mạch nạp thì không sao , vẫn nhận ra pic và nạp bình thường . nhưng khi đưa vào mạch chạy và dùng ICSP để detect , nạp thì lại không được . mặc dù sợi cáp chắc chắn < 15 Cm và đã có tụ vào chân RB.6 như anh chỉ . điều lạ là lấy con pic 16f877a gắn vào mạch chạy và kiểm tra thì thấy ngon lành . Sau đó nối dài thêm cáp > 25 Cm , tháo tụ ra luôn . vẫn detect và nạp bình thường .

anh có cách nào giúp em được không ? vì mạch này thiết kế tương đối nhỏ ( không thể dùng socket gạt ), nên việc tháo Pic ra vô nhiều e không tiện .Cảm ơn anh rất nhiều .

namqn 09-04-2007 06:53 PM

Trích:

Nguyên văn bởi hatuan296 (Post 8152)
Chào anh namqn . nhân tiện luồng này . anh có thể cho em hỏi .

mạch của em dùng chip 18f458 , toàn bộ POTRB kết nối với LCD , từ chân RB.4 đến RB.7 của PIC lần lượt kết nối từ D4 đến D7 của LCD . Chân Clear nối lên VCC 5v = 1 điện trở 10 k . mạch nạp là mạch Propic mua của Tme , phần mềm nạp là Winpic800 . Em cho detect pic ngay trên mạch nạp thì không sao , vẫn nhận ra pic và nạp bình thường . nhưng khi đưa vào mạch chạy và dùng ICSP để detect , nạp thì lại không được . mặc dù sợi cáp chắc chắn < 15 Cm và đã có tụ vào chân RB.6 như anh chỉ . điều lạ là lấy con pic 16f877a gắn vào mạch chạy và kiểm tra thì thấy ngon lành . Sau đó nối dài thêm cáp > 25 Cm , tháo tụ ra luôn . vẫn detect và nạp bình thường .

anh có cách nào giúp em được không ? vì mạch này thiết kế tương đối nhỏ ( không thể dùng socket gạt ), nên việc tháo Pic ra vô nhiều e không tiện .Cảm ơn anh rất nhiều .

PIC16F877A và PIC18F458 phản ứng khác nhau là chuyện bình thường, không phải là chuyện lạ, vì ít nhất thì flash của PIC18F458 cũng gấp đôi flash của PIC16F877A, và giao thức ICSP của 2 chip không giống nhau.

Bạn chưa nói rõ LCD nối cứng vào mạch đích hay có thể tháo/lắp. Chip 74 trên mạch Propic là loại nào? (LS hay loại thường) Bạn có tham khảo Tme trước khi thiết kế mạch đích không? Bạn có thực hiện các biện pháp cách ly các chân RB7 và RB6 trong mạch đích không?

Thân,

hatuan296 11-04-2007 10:36 PM

Trích:

Nguyên văn bởi namqn
Bạn chưa nói rõ LCD nối cứng vào mạch đích hay có thể tháo/lắp. Chip 74 trên mạch Propic là loại nào? (LS hay loại thường) Bạn có tham khảo Tme trước khi thiết kế mạch đích không? Bạn có thực hiện các biện pháp cách ly các chân RB7 và RB6 trong mạch đích không?

LCD có thể tháo lắp được dễ dàng . còn con 74 thì em chưa được biết . vì IC trên board Propic đã bị xoá tên ( chắc để không bị sao chép ;) ) . Còn anh nói các biện pháp cách ly giữa chân RB6 và RB7 thì em chưa được biết , mới đây em có hàn thêm trên các chân từ RB4 đến RB7 , mỗi chân là 1 tụ 47p xuống Mass . nếu được . mong anh chỉ giúp em vài chiêu .

à , có một điều lạ là khi tháo LCD ra thì không bao giờ nạp , cũng như detect được chip . nhưng khi gắn LCD vào , và chạm tay lên các chân LCD trong khoản chân từ D4 đến D7 thì lại nạp bình thường :confused: . ( PIC và LCD kết nối chỉ có 4 chân data mà thôi , thứ tự : từ RB4 đến RB7 lần lượt nối từ D4 đến D7 của LCD . )
cảm ơn anh đã trả lời tin .

giaosucan 12-04-2007 12:56 AM

tôi thường nạp ICSP nhưng ko cắt nguồn

namqn 12-04-2007 01:16 AM

Trích:

Nguyên văn bởi hatuan296 (Post 8201)
LCD có thể tháo lắp được dễ dàng . còn con 74 thì em chưa được biết . vì IC trên board Propic đã bị xoá tên ( chắc để không bị sao chép ;) ) . Còn anh nói các biện pháp cách ly giữa chân RB6 và RB7 thì em chưa được biết , mới đây em có hàn thêm trên các chân từ RB4 đến RB7 , mỗi chân là 1 tụ 47p xuống Mass . nếu được . mong anh chỉ giúp em vài chiêu .

à , có một điều lạ là khi tháo LCD ra thì không bao giờ nạp , cũng như detect được chip . nhưng khi gắn LCD vào , và chạm tay lên các chân LCD trong khoản chân từ D4 đến D7 thì lại nạp bình thường :confused: . ( PIC và LCD kết nối chỉ có 4 chân data mà thôi , thứ tự : từ RB4 đến RB7 lần lượt nối từ D4 đến D7 của LCD . )
cảm ơn anh đã trả lời tin .

Sơ đồ nguyên lý của ProPic 2 được phổ biến trên mạng, do đó tôi nghĩ không có vấn đề sợ sao chép ở đây. Bạn hàn các tụ 47p một cách vô tội vạ thì đâu có giúp được gì.

Tôi cho là phần mạch ICSP trên mạch ProPic của bạn có vấn đề, theo triệu chứng mà bạn mô tả thì có thể các chân để nối vào RB7 và RB6 đang thiếu các điện trở kéo lên (vài kiloohm giữa các chân này và Vdd).

Thân,

zero 11-05-2007 11:57 PM

nhân tiện về icsp các bạn có thể cho toi hỏi chút được ko?
Thiết kế mạch đích thế nào để có thể sử dụng được ICSP (cho một VD thì càng tốt)
Trước đây tôi làm với con 16F877 có nút ngắt nguồn VDD của VĐK ra tuy nhiên sảy ra trường hợp thế này
+ Nếu để nguyên mạch thì ko nạp được (Mạch Robot nên có các IC đệm, led báo và bộ phận thu phát cảm biến)
+Nếu ngắt nguồn các IC này ra (tháo cap hoặc IC)thì nạp bình thường

Vậy lý do là sao? các bạn ai có kinh nghiệm làm ICSP rồi thì cho biết ý kiến được ko?
Khi thiết kế mạch để nạp ICSP thì cần quan tâm đến vấn đề gì?
Rất mong trả lời

namqn 12-05-2007 12:39 AM

Bạn cho biết thêm bạn đang dùng mạch nạp gì.

Nếu bạn không ngại đọc tiếng Anh, bạn có thể tìm trên trang web của Microchip tài liệu In-Circuit Serial Programming (ICSP) Guide'. Còn giải thích bằng tiếng Việt thì bạn nên cung cấp thêm thông tin.

Những vấn đề cần quan tâm khi thiết kế mạch để nạp ICSP thì cũng chỉ từ hướng dẫn của Microchip mà ra.

Thân,


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