自製PIC12F629單晶片處理器的燒錄器
文∕趙英傑
最近想要製作一些小玩意,需要用到PICmicro(簡稱PIC)的12F629單晶片處理器,所以著手製作了一個簡易型的燒錄器。
PIC單晶片處理器最早是為了應用在套裝軟體的硬體鎖(dongle)而誕生的;數年前,因為開放原始碼的WiiFree改機專案(此專案已經停止了)採用了PIC的12F629處理器,讓它在DIY改造Wii遊戲機的玩家圈中聲名大噪。
由於PIC系列處理器使用便利的實體電路串列燒錄(In Circuit Serial Programming,簡稱ICSP) 協定,支援在電路板上直接燒錄軔體,而且燒錄器本身的電路很簡單,採用的介面也是一般的並列埠(印表機埠)或者串列埠(RS-232埠),容易自製和安裝,無需購買價格不菲的專屬燒錄器,因此頗受玩家喜愛。當前最受矚目的開放硬體平台Arduino採用的AVR系列處理器,也是採用ICSP協定。
簡易型的PIC燒錄器的電路圖
若要讓PIC系列處理器進入燒錄模式,必須在晶片的MCLR接腳上施加12v~15v的電壓,並且在Vdd接腳施加5v電壓,以及20mA~50mA的電流。
在網路上可以找到多種簡易型PIC燒錄器,例如,Michael Covington先生設計了一個號稱「不需要零件(no parts)」的PIC燒錄器,只需要手邊多餘的幾個電阻、二極體…就能拼湊出來。
不過,那個燒錄器採用印表機的並列埠介面,還需要外加12v和5v的電源,有點不方便。這個日本人的網站也有列舉多種自製的PIC和EEPROM燒錄器。
底下是在picWinx(一種免費PIC處理器的燒錄軟體)網站上看到的COM84電路,使用RS-232介面本身的12v電壓,並透過7805穩壓輸出5v,不需要額外的電源(雖然圖上列出的晶片型號是16F84,但是改一下晶片的接腳,就能用在12F629):
底下則是在國外的Acidmods改機網站看到的,同樣使用串列介面,以及稽納二極體(Zener)進行穩壓,不用外加電源的簡易型燒錄器電路
同樣的,只要稍微改一下晶片的接腳,或者用IC座製作一個轉接器,它也能燒錄16F84,就像這個老外的網站所列舉的電路圖一樣:
此電路與另一個免費的WinPic燒錄器軟體內建的「讀我(readme)」說明檔列舉的電路相同。我採用上圖的電路來製作,底下是全部所需零件的合照:
底下則是焊接完畢的正面:
和背面:
筆記型電腦多半不具備RS-232串列介面,雖然有USB轉RS-232串列埠裝置可用,但是轉換器的電壓不足12v,所以這個自製燒錄器必須搭配具有RS-232介面的桌上型電腦使用。下圖是採用winPic軟體測試燒錄.hex檔,並從PIC讀出已燒錄的程式的結果:
好棒喔!
這個單晶片好迷你
感謝老師的教學:eek:
老師:
請問flash3.0有沒有只做區域連線的程式語法?
如果你指的區域連線是「本機內的程序之間的通信」的話,那就是LocalConnection。
這裡有一篇相關的說明:在視窗間通訊(二):使用ActionScript
如果是「區域網路內的工作群組」的話…沒聽說過,應該還是得用client-server或者XMLSocket的架構來連線。
thanks,
jeffrey
老師我指的是例如像CS射擊遊戲,在同一間網咖作多台電腦之間的區域網路連線,應該是老師所說的「區域網路內的工作群組」。
謝謝老師的指導,讓我又多學習到flash有「本機內的程序之間的通信」這種功能:grin:
老師請問若同在像一間網咖,舉例用其中一台電腦當伺服器主機,然後在這同一間網咖的其他電腦中的flash,連線到這台伺服器主機會有延遲的問題嗎?
我問你區域連線的問題,就是想用flash做這樣的運用,在我所陳述的區域網路連線,是不是一樣要靠URLrequest、URLLoader、URLVariables這3個類別來做flash資料間的發送和接收阿?
這3個類別運用在我所說的區域網路連線,一樣要透過http協定的連線方式,透過http協定好像都會牽涉到網路連線速度。
即便是連結到本機伺服器,也會有延遲問題,只是程度不同罷了。
have fun!
jeffrey
我想買一套材料
可以嗎
謝謝
hi yao:
這些材料在電子材料行或網拍都找得到。
have fun!
jeffrey
請問您那有現成的材料嗎?
有的話想跟您購買 😀
謝謝~
拍謝,我沒有販售電子材料~不過這些零件都很容易取得。
thanks,
jeffrey
你好,我是用PIC12F629不用外接電源那組燒錄器(第二張圖),但是接電腦RS232後都沒反應,在WIN PIC Programer裡無法燒錄,請問是需要先裝RS232驅動之類的東西才行嗎?我的OS是win7 x64
謝謝~!
h 阿翔:
並不需要安裝驅動程式,只是必須要使用桌上型電腦才能燒錄。
thanks,
jeffrey
不好意思,那再請問一下,我是用桌電,我想要檢測看看適不適因為桌電RS232電壓不足,那要量測RS232的哪個腳位,看電壓有無12V,若不足12V就無法驅動是嗎?
除非是故障,否則桌機的RS-232訊號至少是正負12V,它的第5腳是接地、第2是接收、第3是傳送。在google上搜尋”RS-232 pin”關鍵字即可找到接腳定義。建議再檢查一下你的電路。
thanks,
jeffrey
很抱歉的
很想請你幫忙,只因為我很想燒錄3個12F629的晶片!
但我身邊沒有任何的儀器,只有3個晶片而已!
又不懂電腦語法!所以可否請你幫個忙嗎?
我實在很想製作一個8LED的電板!
謝謝你~
hi samoaumaga:
不好意思,我的桌上型電腦也故障了,現在都是用筆電,要過一陣子才有會重新組裝PC,所以目前也無法燒錄12F629。
thanks,
jeffrey
拍謝,我很久沒有接觸PIC,未來也沒有打算要用它,煩請參閱其他網站或相關書籍。
thanks,
jeffrey
好,謝謝
可以的話幫忙刪除留言