View Single Post
Old 16-02-2006, 09:40 PM   #4
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
Trước tiên tôi muốn nhấn mạnh là tôi sẽ không đề cập đến các mạch phần cứng cao cấp, sử dụng một chip vi điều khiển giao tiếp với máy tính thông qua các kết nối như RS-232 hay USB (một số mạch còn có khả năng tự cập nhật firmware).

Phần cứng của các mạch nạp PIC nhìn chung kết nối với máy tính thông qua cổng nối tiếp (cổng COM, sử dụng giao tiếp RS-232) hay cổng song song (cổng máy in).

Các mạch nạp qua cổng nối tiếp phổ biến hiện nay dựa trên mạch JDM Programmer của Jens Dyekjær Madsen, chẳng hạn như PIC-PG1, PIC-PG2C của Olimex, PG5V1, PG5V2 của FENG3, hay SI-Prog của Claudio Lanconelli, ... Đây là các mạch nạp khá đơn giản, sử một vài transistor, điện trở, diode thường và zener, cùng một số tụ điện. Mạch nạp JDM và các biến thể sử dụng nguồn từ cổng nối tiếp, do đó có khả năng sẽ không làm việc trên một số máy tính có cổng nối tiếp tiết kiệm điện bằng cách sử dụng mức điện áp giao tiếp thấp hơn mức được yêu cầu đối với JDM (theo tôi thì ngưỡng đó khoảng 6-7V, và đương nhiên là mức điện áp được sử dụng vẫn không vi phạm chuẩn RS-232). Nhiều người cho rằng mạch JDM không thể thực hiện được việc nâng điện áp Vpp (đặt vào chân MCLR của PIC) trước điện áp Vdd (hay Vcc-điện áp nguồn cấp cho PIC). Tuy nhiên, tôi đã thử mô phỏng mạch PG2C và nhận thấy việc đó có thể thực hiện được, nhưng về phần mềm thì có vẻ chỉ có IC-Prog là có thể thực hiện điều này bằng cách chọn option 'Enable Vcc control for JDM' trong menu con Options của menu Settings. Tôi có sửa đổi một ít trên mạch SI-Prog để có được một mạch nạp tương thích JDM dùng điện áp ngoài (do đó không phụ thuộc vào điện áp của cổng nối tiếp).

Nhận xét sau cùng của tôi với các mạch nạp qua cổng nối tiếp tương thích JDM: có khả năng điều khiển Vdd nhưng không được nhiều phần mềm hỗ trợ (làm giới hạn số chip được hỗ trợ), có thể không sử dụng được với một số máy tính. Tuy nhiên, nếu yêu cầu của bạn là nạp các chip PIC18 hay dsPIC thì không thành vấn đề (vì các chip này không cần thực hiện nâng điện áp Vpp trước điện áp Vdd-dựa trên những chip mà tôi đang sử dụng).

Các mạch nạp qua cổng song song phổ biến hiện nay dựa trên mạch Tait classic của David Tait (cách đây khoảng 10 năm!), chẳng hạn như PIC-PG3B của Olimex, P16PRO, P16PRO40 của Bojan Dobaj, ProPic 2, ProPic Gold của Octavio Nogueira, PicProg của Martin Clausen, hay Schaer của Henk Schaer, ... Đa số các mạch này đã loại bỏ việc sử dụng khóa 2 chiều (vi mạch 4066) của mạch Tait classic. Các mạch này dùng nguồn ngoài, sử dụng các chân độc lập cho từng tín hiệu, do đó có khả năng thực hiện tất cả các thứ tự giữa Vpp và Vdd như Microchip yêu cầu. Linh kiện được sử dụng cũng không quá nhiều, một vi mạch đệm dạng cực thu hở, 2 bộ ổn áp, một số transistor, điện trở, và tụ điện.

Nhận xét sau cùng của tôi với các mạch nạp qua cổng song song: không bị giới hạn gì về khả năng làm việc với máy tính, vấn đề là làm thế nào để điều khiển các bit của cổng từ máy tính, vì truy cập trực tiếp cổng song song sẽ khó khăn hơn so với cổng nối tiếp trên các hệ điều hành dùng công nghệ NT như Windows NT, Windows 2000, Windows XP, ...

Bây giờ đến phần mềm đây. Thử google với các từ khóa 'PIC' , 'programmer', và 'software', bạn sẽ tìm được rất nhiều các phần mềm dùng để nạp PIC, đa số đều hỗ trợ các mạch nạp kinh điển đã được liệt kê ở trên. Vậy thì nên dùng cái nào?

Tôi giới thiệu với các bạn các phần mềm tôi đang dùng:

- OshonSoft Parallel Port Programmer của OshonSoft (http://www.oshonsoft.com): chỉ nạp cho PIC16, giao tiếp với cổng song song
- WinPic800 của Sisco Benach Font (http://perso.wanadoo.es/siscobf/winpic800.htm): như các bạn đã biết, nạp được rất nhiều loại chip từ PIC10F đến dsPIC, tuy nhiên phải chờ tác giả hỗ trợ các chip chưa được thực hiện
- PICPgm Develop. Programmer của Christian Stadler (http://members.aon.at/electronics/pic/picpgm/index.html): hiện đang hỗ trợ một số PIC12F, hầu hết PIC16F và PIC18F, tác giả theo hướng lập trình ở điện áp thấp (chỉ dùng Vdd để kích hoạt chế độ lập trình điện áp thấp ở chân PGM) đối với các chip có hỗ trợ chế độ này
- WIN PIC Programmer của Wolfgang Buescher, DL4YHF (http://people.freenet.de/dl4yhf/winpicpr.html): hỗ trợ rất nhiều loại chip từ PIC10F đến dsPIC, ưu điểm đặc biệt của phần mềm này là khả năng tùy biến rất cao, người dùng có thể chọn các driver cũng như tốc độ khác nhau (nếu phần cứng không được tốt), có thể mô tả phần cứng của mạch nạp, và có thể tự mô tả các chip mới có thuật toán lập trình tương tự với một chip nào đó đã được hỗ trợ

Ngoại trừ OshonSoft Parallel Port Programmer, các phần mềm còn lại đều hỗ trợ các mạch nạp dùng cổng nối tiếp (JDM) hay cổng song song (Tait classic).

Đó là thông tin của tôi cho các bạn. Còn tôi, tôi đang dùng những gì? Tôi đang dùng một phiên bản sửa đổi của SI-Prog (tương thích JDM) và Schaer+ (cổng song song, là một phiên bản sửa đổi của Schaer đã được nói ở trên). Tôi thường xuyên dùng WIN PIC của Wolfgang Buescher, DL4YHF, và WinPic800.

Tôi thường thiết kế một kit để chạy thử, có sẵn đầu nối ICSP, và mạch nạp của tôi chỉ có đầu nối ICSP mà không có đế cắm (như vậy tôi tiết kiệm được một cái đế cắm!). Một điều đã được David Tait ghi chú khi thiết kế Tait classic, nhưng đến nay vẫn gây khó khăn cho nhiều người là các tín hiệu Clock và Data có thể cần được lọc bằng một tụ nhỏ (khoảng 47 pF) nối giữa chân đó và ground, đặt càng gần chip càng tốt.

Tôi sẽ post mạch phần cứng cho cổng nối tiếp mà tôi đã sửa vào lần sau, vì cần phải chú thích các đường tín hiệu. Các phần mềm WinPic800 và PICPgm thì khá trực quan, có lẽ tôi sẽ không nói thêm về chúng, còn các phần mềm OshonSoft và WIN PIC Programmer thì tôi xin khất đến bài sau, vì tôi đang khá bận. Cần nói thêm một điều là WIN PIC hiện nay đang có một lỗi nhỏ khi verify phần bộ nhớ cấu hình, tôi đã thông báo cho tác giả về điều này), trong thời gian chờ đợi, chúng ta có thể dùng một mẹo nhỏ mà tôi sẽ đề cập trong bài sau để khắc phục.

Mạch PG2C và PG3B thì chúng ta đã có sẵn tại PICVIETNAM, các bạn không có điều kiện làm mạch thì có thể liên hệ picvendor để mua.

Hy vọng đã cung cấp đủ thông tin cho các bạn.

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, 30-11-2007 lúc 05:43 PM.
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn