PIC编程器自制.docx

上传人:b****6 文档编号:6974754 上传时间:2023-01-13 格式:DOCX 页数:13 大小:706.49KB
下载 相关 举报
PIC编程器自制.docx_第1页
第1页 / 共13页
PIC编程器自制.docx_第2页
第2页 / 共13页
PIC编程器自制.docx_第3页
第3页 / 共13页
PIC编程器自制.docx_第4页
第4页 / 共13页
PIC编程器自制.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

PIC编程器自制.docx

《PIC编程器自制.docx》由会员分享,可在线阅读,更多相关《PIC编程器自制.docx(13页珍藏版)》请在冰豆网上搜索。

PIC编程器自制.docx

PIC编程器自制

D1,5.6V稳压管,可以替换成5.1V稳压管(常用)

hi.baidu./zzz1367/blog

自製PIC燒錄器

林茂榮

第209期

前言

最近許多單晶片已經藉由消費性電子產品這一管道,默默地滲透到一般人的日常生活裡頭,因此單晶片與人類生活之間的關係已經密不可分。

也因為有利可圖,所以許多商業活動就大量涉入到單晶片領域,像是國內的義隆電子等,都以單晶片為主要的業務活動,加上因為單晶片製程技藝發達,成本也相對地降低,這更助長了單晶片的應用領域,例如有一項資料顯示,目前出廠的私家車輛中,平均會使用約25只單晶片,只是這些應用,恐怕連使用者都不得而知,也弄不清楚。

早期的單晶片微電腦與現今者有很大的差異,先期開發出來的單晶片少部分現今依然被沿用著,有的甚至逐漸被改良或說整合成像是有完整功能的電腦,而目前應用在消費性電子產品上的單晶片還是以8爻單晶片系列為主,而且最近發展的趨勢是,這些單晶片都有FLASH的程式記憶體,也就是說主導這些單晶片運作的程式,有必要時可以隨時更新。

筆者從早期在大學時期開始接觸電腦,到目前以業餘的方式接觸單晶片,一路走來已經二十餘年,這期間沒有間斷過與電腦的關係,從宏碁的小教授、頻果APPLEII、286、到如今動輒2G的CPU。

唯現今電腦使用者與電子線路之間的關係好像鬆垮無力,除了自己裝組電腦的DIY外,好像很少聽到有人利用電腦結合一般的電子創作,這實在是很可惜的一件事。

從目前筆者接觸單晶片的經驗,覺得PIC系列非常棒,這是以一個業餘愛好者的角度而言,因為可以利用組合語言或C語言寫PIC程式,而MICROCHIP公司可以提供免費的編譯程式,同時就PIC的發展,目前完全走向FLASH化,使得程式的開發相當方便,更棒的是,網路上的相關資源非常豐富,網路上可以搜尋得到的,從基本的PIC入門資訊,到可以完全自己動手的燒錄器一應具全。

基於這些理由,筆者鼓勵業餘愛好者,不彷從PIC開始,這真是一個很好的管道。

本文的主要目的,就是要提出一個PIC的燒錄器製作,而要自己燒錄單晶片,重要的關鍵因素還包括有燒錄軟體,因此除燒錄器製作外,同時也要介紹幾種可以用來燒錄PIC的免費軟體。

這些燒錄軟體搭配燒錄器可以用來燒錄具有代表性的FLASHPIC,如12F675、12F629、16F84、16F628、16F72、及16F73等,同時也可以燒錄一些常用的串列EEPROM。

為什麼會選擇這幾只PIC呢?

那是因為這些單晶片都是FLASH製程,從功能上看也具有代表性,因此很適合業餘者選擇使用,而且熟悉這些單晶片的運作後,也就相當於瞭解整個PIC系列的單晶片。

燒錄器原理與硬體線路

照理講,因為單晶片裡頭的程式記憶體做燒錄時的要求相當嚴謹,自然也要採用通過原廠認證的燒錄器才好,這是因為認證程序過程中會有一套嚴謹的品質管制,當然這是以商業生產活動的角度來看,至於以一般業餘的眼光,雖說把關的要求有時用業餘的角度做衡量也不見得會輸給專業,但是就少了把關的管控程序。

因為這裡是以業餘的角度做PIC燒錄器,雖然不能聲稱絕對可以和經過認證的商業方法相融,但是以實用角度而言,可以相融是毫無問題的。

由於採用了某些無法控制的方式(例如因為業餘因素,不採用外接電源等),也因此而無法堂而皇之地說它是正式的PIC燒錄,但是從個人、業餘、與實用的角度做衡量標準,充作個人使用,這是一個再適合不過的PIC燒錄器。

PIC程式燒錄原理

為了要了解PIC的程式燒錄過程,我們必須要先弄懂PIC的程式燒錄原理。

注意雖然此處所談的燒錄原理也許也適用於其它單晶片,但這裡專指PIC單晶片。

不論是哪一類的PIC,是一次燒錄(OTP)IC,開玻璃窗的紫外燈光抹除(EPROM)IC,或者是最近流行的FLASH電子抹除(EEPROM)IC,它們都有個可以直通到IC內部程式記憶體的路徑,假如要做燒錄器,需要蒐集的資料,就是包括弄清楚這些燒錄用的相關腳位,然後正確地把它們接到燒錄器的接座上。

基本上,要把程式內容傳送到IC裡頭的程式記憶體內,是採用串列的方式來進行,這有一點類似I2C的方式,所以這就必須要包括有時脈訊號(CLOCK)與串列資料(DATA)訊號。

除此之外還必須要有個控制腳,這在PIC系列,通常是指MCLR這一隻腳,既然是電子抹除與書寫,就免不了要有電源,因此要做PIC燒錄,就必須要找到5隻腳,分別是電源、接地、控制腳、時脈訊號、與串列資料。

所以,凡是燒錄器就必須要具備上述幾個腳位。

針對電腦常用的RS232串列阜,要對應到控制腳、時脈訊號、與串列資料自然是不成問題,關於電源那就要動一點腦筋。

由於RS232串列阜的定義,有一些腳位作為握手對應用,因此使用時可以讓它保持在高電位,這高電位對於RS232的定義來說,就是+12伏特,雖然這些腳位都只是訊號規模,但由於RS232的應用牽涉到連線的距離,因此這些訊號規模的腳位,也大多能提供高達10毫安培的電流。

這對於PIC的燒錄是足夠的,也因此單獨靠著RS232介面,不需要額外的電源供應線路,就能做PIC的燒錄器。

基本上,可以把RS232串列阜視為電流工作,其實早期在中等距離的資料傳輸,RS232串列阜還提供有所謂的電流環(CURRENTLOOP)模式,也就是以電流的有無來做1與0的區別,而不是使用電壓,這在患有嚴重雜訊干擾的區域特別管用,在某種程度上,可以把RS232串列阜視為電流工作型,自然要提供數毫安培電源是毫無問題的。

燒錄器線路

參看圖1,就是這個足以應付常用的PICIC燒錄器線路,RS232的第3腳就是控制訊號,它被接到MCLR,由於做燒錄時MCLR一定先要維持在高電位,這一隻腳高電位時會是+12V,而且它可以提供高達10毫安培的電流,所以此腳同時也接上以簡單的電阻串聯然納二極體的方式,來取得+5V電源。

為了確保極性的穩定,所以然納二極體是使用5.6V,經過1N4148之後,就可以提供相當穩定且具有極性保護的+5V電源。

時脈訊號由第7腳提供,而串列資料則接第8及第4腳,它分別對應到RS232串列阜的資料輸出與輸入腳,這是因為串列資料為雙向,也就是燒錄時會做寫入的動作,而程式燒錄之後要確認時,就必須要做讀出。

而不論寫入或讀出,都是經由串列資料腳,也就是說對PIC而言,它以單腳做輸入及輸出,而RS232串列阜的輸出入腳分別是第8及第4腳,這也就是為什麼第8及第4腳要同時接到DATA腳。

針對圖1來說,雖然只列出了12F675、12F629、16F84、16F628、16F72、及16F73等,但是要追加任何的PICIC,甚至是EEPROM,只要把相對應的接腳找出來就可以了,例如16C71其實只要燒錄程式支援它,就可以把它放在16F84的燒錄IC上做燒錄;又例如要燒錄16C72A,雖然這裡沒有這只IC的編號,其實把它放在16C72上也是可以做燒錄的。

相同的道理,許許多多PIC編號的IC,只要腳位數相同,而燒錄程式有支援它,把它插到同腳位數的IC座上,也都可以做燒錄。

軟體支援IC的詳細情況,可以參看表1。

筆者熟知要做燒錄當然要有適合的燒錄程式做配合才行,因此筆者是先從網路上找到免費的PIC燒錄軟體,先研究這些軟體支援哪一些燒錄器硬體,然後再做燒錄器的設計。

燒錄器製作

完整的線路請參看圖1,整個燒錄器使用的零件非常少,以圖中所列的PICIC為燒錄對象,就只要備妥8隻腳,18隻腳,及28隻腳的DIP型IC座,然後根據圖1的接腳做焊接就可以了。

雖然筆者剛開始是以16F84及16F628燒錄器做設計(參看照片1),之後也曾經想利用轉換器的方式,要把12F629插在16F84的IC座上,但是卻發現這個方法很不理想,最好還是以個別的IC座,把這些接腳以並聯的方式,分別接到不同的IC座的相對應腳上,如圖1所示,這也就是為什麼筆者會做這樣的設計。

請注意,雖然PIC系列也都包含有SMD封裝的IC,但是針對個人以業餘用途來衡量,採用SMD封裝是不合理的,因此這裡就一概不考慮到SMD封裝的IC燒錄,若是有必要,那只好針對自己的需求,去購買SMD與DIP的轉換座。

參看圖1是適用於上述燒錄器使用的硬體線路,製作此線路並沒有嚴格的要求,你可以使用萬用線路板做焊接,倒是放置燒錄PICIC的腳座要特別注意,因為要常做插拔,所以這裡使用的IC座建議採用圓孔(MACHINEHOLE)型,此處分別需要有8PIN、18PIN、及28PIN三個IC座。

參看圖2是針對圖1所做的線路板佈線。

另外,焊接時要特別注意ZD1及D1的極性,還有C1的極性也不要裝錯,DB9焊接時,記得兩旁的腳座焊接要牢靠,否則DB9的訊號接腳容易因受力過大而造成焊接點受創。

還有使用這個燒錄器時,IC的插拔一定要特別注意,最好是使用IC插拔工具(器),否則燒錄的IC,很容易因為插拔動作而使IC接腳受傷,尤其是28PIN的IC。

由於PICIC的接腳除了電源與接地腳之外,其餘接腳可以說都是輸出入腳,因此插拔動作也要特別考慮到靜電破壞的問題,總之,以筆者的經驗來說,在冷氣房內最要注意靜電的破壞,當然一般情況也是要提防才好。

筆者的經驗是,I/O腳一旦遭靜電破壞就會出現不可預期的結果,例如程式動作時LED是要亮燈的,卻偏偏不亮,原來是用來驅動LED做指示的I/O腳受靜電燒毀。

這些情況值得特別注意,那是因為一般FLASH的PICIC,雖然可以多次燒錄,但是IC設計與生產時的考量,可不會把你開發程式時的IC插拔動作列為主要的規格做考慮,因此插拔的動作還是要多加小心。

燒錄軟體

談到PICIC的燒錄,除了燒錄器線路外,最重要的就是搭配燒錄器使用的軟體,雖然MICROCHIP提供了燒錄軟體,但是必須要搭配專用的燒錄器,還好網路上有許多現成的PIC燒錄軟體,於是筆者透過網際網路,搜尋了一些適用的燒錄軟體。

這些軟體都是免費的,當然除了在此處列出來介紹以外,也還有不少的燒錄軟體,但是因為這些我所看到的其它燒錄軟體,在功能及實用性上都比較單薄,而且相對地功能也都較不齊全,在功能上也都能夠被這裡所介紹的三種軟體所包括,因此就只取這三種軟體做介紹。

參看表1所示,分別是這三種軟體的基本資料,更具體的用法與說明,則分別以獨立的章節做介紹。

ICPROG105燒錄程式說明

參看照片2是ICPROG105的程式執行畫面,它已經完全是視窗操作環境,由於ICON的設計佳,讓操作非常方便,基本上它把視窗切成上下兩半,上面是程式內容,下方則是EEPROM資料記憶體內容,同時可以看到這樣的區塊共有5組,分別是BUFFER1到BUFFER5,它們很像活頁紙旁的標籤,只要滑鼠在標籤上點選,就可以在這5組緩衝器之間快速切換。

筆者發現,這對於要做比對程式內容相當方便,程式也提供了這5個區塊之間的內容比對,且比對結果會逐行用顏色來標示出相異處。

同時,參看程式畫面的右手邊小型直立的長方塊內,有包括振盪器的選擇(OSCILLATOR),保險絲燒錄(FUSES)的設定,程式核對碼(CHECKSUM)的顯示,以及程式ID碼的內容設定及顯示。

而上述幾項的設定就成為所謂的組織碼(CONFIGWORD),它的內容顯示在這長方塊的正下方。

另外,這個燒錄程式也有反組譯的功能,只要以滑鼠在ICON的A處點一下,就可以得到反組譯的程式內容,參看照片3。

值得一提的是,此燒錄程式雖然主要是做PIC的燒錄,但是也支援其它單晶片及EEPROM記憶體的燒錄,因此假如你需要其它的IC燒錄,不彷在設定(SETTINGS)的DEVICE內找尋,或者是直接在畫面的右上方一個藍色的小窗口內直接以滑鼠選擇▼下拉,就可以看到能夠燒錄的所有IC編號。

另外,這個程式可以搭配許多不同的硬體線路使用,因此執行後先要把你所使用的硬體介面設定好,使用圖1線路所示的燒錄器,可以選擇JDMPROGRAMMER,要設定硬體介面可以從選單上的SETTINGS內的HARDWARE進入,也可以利用快速鍵F3進入。

PIX燒錄程式說明

PIX是筆者接觸PIC時所認識的第一個燒錄程式,到目前為止的PIX113版本,雖然還是無法完全進入視窗的操作環境,處處都有DOS的影子,不過操作上還算相當方便,雖然沒有滑鼠的點選方便,但是在螢幕上,只要是設定的項目上,都有紅色的第一個大寫字母,只要依照這些指示做按鍵動作,很方便可以完成必要的設定。

例如螢幕左上角的FOWPC分別就是進入燒錄條件做設定,參看照片4。

而螢幕底邊的功能鍵操作也相當方便,從F1到F10都對應到常用的功能,另外搭配了ALT鍵及CTRL鍵,又把F1到F10對應到另外的20種功能(目前有些功能鍵是空白閒置),這種貼心創新的設計,使得雖然是DOS式的操作,但也算相當方便。

這個程式有個組織檔(CONFIG),它存放了程式的基本設定,包括硬體介面等,所以第一次執行此程式時,必須先要設定好組織檔,一旦順利執行,往後開啟程式時,這個執行檔會於執行程式時被採用,也就是毋須再做設定。

通常以圖1線路做燒錄時,執行PIX程式燒錄,必須要把硬體設定為LUDI,至於是採用哪一個COM阜,就由你自行決定。

另外此程式也具有反組譯的功能,把程式HEX檔讀進來之後,只要按D鍵,就可以執行反組譯的工作。

WINPICPR燒錄程式說明

基本上,這程式具備了有條不紊的操作安排,進入程式之後畫面很簡潔,第一眼看到的是很像活頁簿的目錄,可以發現總共有6頁可以翻纜,參看照片5,分別是CODE,DATA,DEVICE&CONFIG,OPTIONS,INTERFACE,及MESSAGES。

CODE及DATA就是分別代表程式資料碼與EEPROM資料,DEVICE&CONFIG可以選擇不同的PIC編號,以及設定燒錄條件,OPTIONS可以做一些次要的條件設定。

而INTERFACE是用來設定燒錄器的,假如你採用的是如圖1所示的燒錄器線路,則要選擇COM84PROGRAMMERFORSERIALPORT,在這裡還提供了燒錄器的測試功能,以滑鼠在INITIALIZE方塊上點一下,可以看到螢幕下方會出現INITIALINGPIC-PROGRAMMER:

SUCCESS,就表示燒錄器介面大致上沒問題,參看照片6。

至於MESSAGES就是操作時的流水帳紀錄,任何的操作程序,例如燒錄動作等,這裡都會以流水帳的方式詳細地做紀錄。

PIC燒錄注意事項

第一次使用PIC燒錄器時,大家最常碰到的問題就是燒錄條件的設定,一般說來,假如採用MICROCHIP免費提供的MPASM做組譯,大多數書寫程式者都會把燒錄條件寫在程式上,如此程式編譯之後,程式碼內容就會包含有燒錄條件,此時只要把程式碼載入燒錄程式內,就不必再去設定燒錄條件。

有些燒錄條件的設定不會影響程式本身,但有些條件設定不當,就會使程式無常運作。

這裡就針對PIC常用的一些設定做說明。

這包括有CODEPROTECTION,POWER-UPTIMER,WATCHDOGTIMER,OSCILLATOR,FUSE,及ID等。

燒錄時若把CODEPROTECTION打開(ON),就會讓燒錄後的程式碼無常讀出,也因為如此,所以燒錄時若把這個功能打開,之後要進行燒錄後驗證(VERIFY)時,就會出現錯誤訊息,這是因為燒錄後的讀出內容與原來燒錄的內容有異之故。

這功能通常運用於商業生產時,為了保護程式不輕易外流,於程式燒錄時,可以把這個功能打開。

值得一提的是,雖然它可以保護程式不能被讀取,但是依然有一些偏方,可以讀得到有保護功能的燒錄程式內容。

WATCHDOGTIMER則是內附看門狗計時的開關,此項條件務必要符合程式的運作,否則誤用此項條件,往往會嚴重影響程式的運作,輕則使動作異常,重則造成程式完全無法運作。

POWER-UPTIMER是插電啟動程式時的一個延遲線路,這是一個內附的硬體線路,有了這個功能,就可以避免使用外接的啟動IC,通常有些運用單晶片的產品,會要求插拔電源的測試,若沒有這個功能,電源插拔幾次之後,可能會造成程式無常啟動的現象,一般採用單晶片時,會採用外加的啟動線路來確保這個功能。

OSCILLATOR則是用來選擇適合的振盪線路,它實際上就是一個硬體振盪線路的路徑選擇或說增益控制,這可以確保不同振盪線路都可以維持最佳的運作狀態,例如一般石英晶體選擇XT,而如果工作頻率高於10MHz,也許燒錄時就應該試著選擇HS。

另外。

還包括有使用電阻電容振盪線路的RC設定,以及低功率情況下使用的LP等。

至於FUSE,實際上它是針對上述4項條件的設定總開關,也就是說你可以直接設定FUSE的值來完成上述的4種設定,但是因為它是個數值,所以不容易掌握,寫程式時也可以直接設定FUSE值,不過一般以CONFIG虛擬指令來設定會比較好。

至於ID,它是提供運用時的一個方便標示,例如你可以把生產的序號放在這上面,日後有維修或需要追蹤時,只要讀出這個ID碼就可以做生產序號的確認。

一般編寫程式時應該要把這些條件帶進程式裡頭,但是有些程式語言(例如C語言)或者是程式編譯器沒有這個功能,因此不得不把這些設定關掉,下面是組合語言對這些燒錄條件的設定例子:

__config(_CP_ON&_PWRTE_ON&_WDT_OFF&_XT_OSC)

從上述的程式敘述很容易可以看出來這些設定,但是偶而也可以看到某些程式就直接把FUSES值設定好,例如針對16F84而言,上述燒錄條件設定的FUSES值是3FF1,因此在程式中把FUSES值設定為3FF1,也就等於設定了上述的燒錄條件設定。

燒錄時,碰到內含有EEPROM的IC,這些資料都可以選擇與程式碼分開或一起做燒錄,同時有些燒錄程式還可以允許你單獨載入EEPROM的燒錄資料,也可以把這些EEPROM資料單獨存成檔案,這對於某些程式的燒錄也算是相當好的功能。

例如有個程式把對照表資料就放在EEPROM內,假如你把這些資料放在程式內,而這些對照表資料需要有好幾個版本,那就必須要編譯好幾次程式,要是你把程式與EEPROM分開,那麼載入程式後,只要載入不同版本的EEPROM資料檔,就可以有好幾個版本,同時萬一這對照表需要修改,或是程式開發階段需要做一些TRYANDERROR的測試,那麼就更加方便在這方面的作業了。

牛刀小試

做完了上述的燒錄器製作與燒錄程式介紹之後,當然也要實地演練一番才好,這裡筆者就拿一個程式的開發過程做燒錄時,所碰到的實況做演練說明。

這是一個以LED做顯示的1.2GHz計頻儀,程式名稱叫做GLEDKOTF,這是我的F版本,先使用文書處理把程式編妥後,存成附檔名為ASM的檔案,先以MICROCHIP免費提供的MPLAB編譯軟體做組譯的工作,參看照片7及照片8,經過成功組譯之後,你可以得到許多檔案,包含有LIST檔及ERROR檔等。

其中附檔名是HEX的檔案最重要,這也就是燒錄程式時要使用的檔案,例如上述我就可以得到GLEDKOT.hex的檔案,有了程式檔之後,接下來就是執行PIX燒錄程式,此時要先把燒錄器的硬體接妥,假設你是接在個人電腦的COM1上,接著如照片9所示,就是PIX燒錄程式的執行畫面,這是按了M鍵之後的介面設定,這裡因為是採用圖1線路的燒錄器且接在COM1使用,因此選擇了LUDI及COM1,這就完成了硬體的設定,注意這是初次使用時才必須要做的設定,往後就不必這樣做了,除非燒錄硬體線路有異動。

接著就要載入程式,參看照片10及照片11,分別是要載入程式的動作,按下F3鍵來做程式的載入動作後,就得到了照片11的畫面,假如你還有資料檔要載入,同樣是按F3鍵,但是要先按住ALT鍵,找到你要載入的資料檔,資料載入之後就如照片12所示。

此時,因為所有燒錄條件都已經包含在程式檔內,所以也就不必逐一去設定燒錄條件,而且要載入EEPROM的資料也已經就緒,此時按下F9鍵做燒錄,螢幕下方的橫狀小長框內會有位址的變動顯示,這表示燒錄進行中,完成之後就如照片13。

結論

筆者年輕時,不論是一般的電子材料行,或者是電子街上的商店,總是很容易可以買到新奇實用的電子套件,而且彷間的電子雜誌,也不時可以發現有趣實用的製作文章,如今這些似乎已不復存在。

為什麼呢?

原因當然是錯綜複雜的,客觀的條件下,有些新奇的電子線路已經不那麼容易讓人自己動手了,例如動輒上百隻腳的SMD封裝IC,要如何焊接?

更何況這些IC的功能,通常就像是黑盒子般,而且通常是你要的腳沒長出來,你不需要的腳伸出來一大堆,長久以往,就漸漸疏遠,導致現在電子套件沒有生存空間。

加上,工業生產規模以量大講求效率為重心,造成套件敵不過一般的完成商品,生存空間自然也就岌岌可危,如果以影射到生物圈,那麼電子套件可以算是瀕臨絕種。

能夠挽救嗎?

筆者一直希望有個契機出現,現今的PIC單晶片,盼望可以是挽救這瀕臨絕種【電子套件】的一絲希望,因為它已經讓人有可以揮舞的空間,這些單晶片的靈巧功能與廣泛的應用,真希望這可以給套件注入一些生命力,希望本文對於期望能自己動手的朋友有實質上的助益,製作愉快。

有任何問題,作者的EMAIL是:

,歡迎指教。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1