Step by Step
自己燒錄PIC16F84A
& 其他 PICs
JDM / P16Pro Programmer
10/2008 update
這裡介紹的燒錄方式只適合初學的或偶而玩 PIC 的人。
現在已有12F508A可完全取代12C508A,建議新手不要再使用 1xCxx 這種 OTP 產品。
想進一步玩 PIC 者,在此強力推薦 Microchip 的 ICD2 燒錄器,或自己做一個相容的 ICD2。最簡單的 ICD2 只需一顆 16F876A + MAX232A + 4顆電晶體,ICD2功能強大,可在 MPLab 裡直接操作,節省你的時間。強烈建議使用。
相關的資料、程式及電路圖都可在網路上找到。請自行搜索。恕不提供。
===============================================================
03/2005
MICROCHIP公司所生產之單晶片微電腦—PIC16F84A是一顆很容易上手的 IC,功能也相當強,可重復燒錄上千次,所以有很多非專業的玩家寫了很多的應用小品公佈在網路上。(不過由於相對於其他更強的IC如 16F628A、16F876A 還是貴多了。)
可惜非電子相關科系出身的人 (就像哦啦!!),有時望著英文的網頁,是有看沒有懂;興沖沖的動手卻一再失敗,實在輸給他。不用再擔心了,這篇花幾個月的作品 (一指神功),就一步一步陪你走過這一關。
首先去下載必要的東東 : ....( 尊重版權,這裡沒提供 ).......
------------------------------------------------------------------
P16PRO programmer for PIC16Cxx microcontrollers by Bojan Dobaj --- 這個燒錄器非常穩,OTP 如 12C508A,12C509A 也都能燒,flash更是沒問題。
JDM 燒錄器 的電路圖,非常簡單,適合燒有 flash 的 PIC 如 16F84A。
IC-Prog 1.06A 程式 PIC燒錄程式
MPASMWIN.exe 用來將ASM檔組譯成 .HEX 檔。
MPasmwin.exe 程式,現在包裝在 MPLab 裡,只要安裝MPLab任何一版,再到 c:\proram files\microchip\MPASM suite目錄下就可以找到。
==========================================================
JDM 的製作
把電路圖列印出來仔細看看,如果你看得懂,那就安心了,再來的都容易。買零件吧!!
JDM的零件如下:
電阻 1/8 ~ 1/4W | 1.5k 10k | 各1顆 |
電解電容 | 100uF/40V 22uF/16V | 各1顆 |
二極體 | 1N4148 | 4顆 |
穩壓二極體 (1W以上) | 8.2V 5.1V | 各1顆 |
NPN電晶體 | BC547B 或 2SC945 或 2N9013 | 2顆 |
9孔 RS232母座 | 插 PCB 型 | 1 |
9孔 RS232延長線 | 一公一母 | 1 |
萬用電路板 (約5*7cm) | 1 | |
18 腳 IC 插座 | 或 TEXTOOL | 1 |
如果真的不想焊接,用麵包板兜一兜也可以,但是萬一零件鬆動可能會把 PIC 燒毀。穩壓二極體8.2V及5.1V的電壓不可以其他值取代,真的找不到再改用 8.3 / 5.0 。電解電容的規格也不可以其他值取代。
PIC16F84A 只用5支腳就可以燒錄
PIN 4 -- VPP
PIN 5 -- VSS
PIN 12 -- Clock
PIN 13 -- Data ( In/Out )
PIN 14 -- VDD
零件排列及焊接就不多說,焊好後先離開座位,去抽根煙、喝杯水,再回來檢查一遍。
電路圖上的RS232是母座25孔,改用9孔比較方便。
25孔與 9孔 RS232母座對照表 :
25 PIN | 9 PIN |
2 | 3 |
7 | 5 |
5 | 8 |
20 | 4 |
4 | 7 |
============================================================
P16Pro的製作
P16Pro的零件: 請自行列表。我用的IC是 74LS05。
若不想做印刷電路板,用萬用板也不錯。
40Pin 大陸製的 TEXTool 活動腳座,一個不到100元,值得採用。
必需特別注意的是,不同腳數的IC放入TEXTool的位置不同。
28 Pin 的IC第一腳對 IC座的第一腳 (上緣對齊)。
20 Pin 的IC第20腳對 IC座的第20腳 (下緣對齊)。
18 Pin 的IC第18腳對 IC座的第20腳 (下緣對齊)。
8 Pin 的IC第一腳對 IC座的第三腳 。
測試 P16Pro 燒錄器要領與JDM一樣,請自行參考。
電路圖內 R9 680E的規格可以是680歐姆 ~ 10k歐姆,電路圖上方的電源供應G1 B80C800是橋式整流器,0.5A以上就可以。
如果把 Enable MCLR勾拿掉,這時Vpp 燒錄電壓 還有 3~5 V,而且電路沒有接錯,則是因BC55這顆電晶體的漏電較大,才會測到有電壓,但是實測後確定可用,不會燒毀IC。我的是以 CS9012 做的 (舊貨拆下的),測到只有0.03V。可以用 2SC945 或 2N9013 代替。
=======================================
IC-Prog 程式
使用Windows 98 Se的人選Direct I/O
Windows XP的人選 Windows API,並且將 I/O delay 適度調高,我的 CPU 是 1600+ 用 I/O delay(21)以上才能正常工作。
使用Windows 2K/XP 操作系统時,如 ic-prog 出現 "Privileged Instruction" 警訊,則需安裝驅動程式 icprog.sys。
方法如下:
Enable NT/2000/XP Driver
重新啟動 icprog.exe
========================================================
P16Pro的 IC-Prog 設定
IC-Prog的 "Hardware設定" 選 "Propic2",communication 有三個要勾取。
Interface則根據你的windows 選擇。Win98 選Direct I/O,XP選 Windows API。
選好後,進入Hardware Check,進行測試。(詳後敘)
============================================================
測試 JDM 燒錄器
用RS232延長線將 JDM 燒錄器與你的電腦連線,開啟IC-Prog程式。選 JDM programmer,再依你的連線選 COM1或 COM2,其他的不動。如不知道是 COM1或 COM2,就一個一個試吧。
OK後再選 Hardware Check,把 Enable MCLR打勾`,拿電錶量 (什麼 ? 你沒有!! 那...那... ) IC 插座第4腳對第5腳應有13.3V,把 Enable MCLR勾拿掉,應為 0.3V 以下 ,也有可能 負0.5V 左右。這是Vpp 燒錄電壓。
Enable Data Out 打勾則第 13,17 腳對第5腳都是5V,同時 Data in會自動打勾。勾拿掉,應為 0.3V 以下。
Enable Clock 打勾則第 12,16 腳對第5腳都是5V。勾拿掉,應為 0.3V 以下。
Enable VCC 打勾則第 1,3,10,14 腳對第5腳都是5V。勾拿掉 JDM可能還是5V,P16pro應為 0.3V 以下。
如果都對,那恭喜你,燒錄器做好了。否則...
Do (去抽根煙、喝杯水,再回來檢查一遍)"
Loop until OK
==============================================================
測試 P16pro 燒錄器 -- PIC12C508A
如果一切OK,那麼再來就..........
插上PIC12C508A...........燒.............?? 且慢ㄚ~~~ 刀下留人ㄚ......
有幾位網友就這樣不明不白的燒掉自己的信心,哇~哇~~
先把 IC 選為PIC12C508A,現在可以把PIC插上讀讀看,如果是空白IC就會全是 '3FFF' ,除了最後一組 (這裡是0C78,你的不一定一樣,前面的 0000 代表已燒光了),這是12c508的OSC校準位元,出廠時已燒好不可隨意改變。
如果讀不到,試試將 I/O Delay 再調多一點,或換 Win98SE試試 。
像這樣可讀到才算全部 OK
======================================================
測試 P16pro / JDM 燒錄器 -- PIC16F84A
先把 IC 選為PIC16F84A,現在可以把PIC16F84A插上讀讀看,如果是空白IC就會全是 '3FFF' 。不是的話可以按第三個清除圖示,全部清除。
去下載個現成的 16F84A的HEX檔來燒看看。將ZIP檔解開,存到桌面。Open file讀入RC_84A.HEX ,然後照下圖社設定WDT enable,PWRT enable,Oscillator XT。...........燒.............
數秒鐘後就知道了 !!
再次恭喜你,哦 ? 失敗 ? IC是好的嗎?
OK!!
=========================================================================
組譯程式 MPASMWIN
ASM檔寫好後,需組譯成 .HEX 檔才能燒錄。MPASMWIN的使用很簡單,下載 一個ASM檔來試試。
(安裝任一版的 MPLab 程式也就內含 mpasmwin.exe 程式)
依 PIC 的型號設定 Processor 即可,其他不動,用Default,按 Assemble 就會產生.HEX ,及.ERR檔 。
如果ASM檔內有引用其他 .INC檔,要確定這些 .INC檔與MPASMWIN在同一目錄裡。
如果 Processor型號設定為Default,則會依ASM程式第一行內 List指令,自動選取。
Case Sensitive也可以不勾選,大小寫不分。
如果ASM程式語法正確,最後會是這個綠色。
.ERR檔裡可能會有一行字,警告你得自己核對PIC編號,這不是程式錯誤,而是ASM程式第一行內 List指令所指定的PIC型號與你在Processor設定的不同。
===========================================================================
燒錄時應該注意的事項: (很重要 !!!)
自製型燒錄器可選的很多,簡單的如 JDM ,穩一點的如 P16pro。最好的是 ICD2。
PIC不同型號或不同程式,燒錄的設定也不完全相同。(本站09/2004以後的程式都會將設定寫入程式,不用再手動設定)
如 MIXer的製作 :
16F84A : OSC= XT, WDT= ENABLE, PWRT= ENABLE , CP= BLANK(DISABLE)
12C508A /509A : OSC= IntRC, WDT= SET, MCLR= BLANK, CP= BLANK
燒錄器需先插上所有接頭,並打開燒錄程式,才可放上IC,否則將可能造成IC損壞。最好使用TEXTool 活動腳座。
燒錄 IC腳位要對好,尤其是 P16Pro,有 8~40 腳。
使用其他自製燒錄器,在"Hardware Check"時,若與實際電錶量到的相反,可在 "Hardware Setting" 裡的 "Communication" 的 Invert打勾以修正。
JDM 燒錄器也可燒其他 IC,但常失敗。用 JDM 燒錄器燒 Flash type (編號都是1xFxxx) 還好 。不建議用 JDM 燒錄器燒 12C508A等OTP (one time program只能燒一次) PIC,不穩 。注意看!!! 別說老師沒告訴你 ??? 燒壞PIC還要老師賠 .............
OTP 的編號都是1xCxxx,如PIC12C508A。OTP不可以重複燒錄,但是可以覆蓋。譬如說你燒了一個92bytes的程式,如果失敗或不喜歡,可再燒其他程式,只要在 .ASM 的 ORG 0 之後加92個 NOP 指令而且總長度 (新程式與原先的92bytes) 不超過512Bytes,subroutine的起點不超過FFH。再重新組譯一次。找一本 12CXX /16CXX 的書看看,都會有寫的。
======================================================================================
歡迎拷貝、轉載、引用、修改或出售本網站資訊,請註明出處。
注意 : 因使用本網站所導致的任何傷害或損失,本人概不負責。
Philip Sun / TAIWAN
ilufa@yahoo.com
copy right 2004