• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::

論壇索引


Board index » All Posts (cwting)




Re: MPLAB ICD2 燒錄問題
#1
新會員
新會員


感謝 Beee 的訊息。

這個起源於 Binary watch with POV (Persistence of vision) 的一連串問題,今天我終於全部解開了,也學習到很多,感謝大家。

分享心得如下:

1. 因為原作者並沒有給電路圖,而是劃出接線圖,結果在敏感的IC腳位部份少劃了關鍵的標記缺口,結果電路有拉錯,而且還錯不小。

2. 連帶的也對電路上零件 vs 16F628A 的腳位產生誤解,原本以為他是用外部振盪器,但實際上外部振盪器是用來當作定期的中斷訊號。

3. 過程中為了摸索問題,去書店逛了一下,發現台大附近書店幾乎沒這類書;重慶南路裡也不多,最後是在電腦人的聖殿(天瓏)看到比較多選擇。(我好奇這個東西不是應用性很大嗎?怎麼好像不被重視?)

4. K了半天書,算對 Microchip 的 MCU 架構、指令有一點了解後,又試著直接解讀作者的 HEX 檔轉出的組合語言程式。還好不算太長,大概看出裡面的作法和關鍵的中斷機制。

5. 看完程式後,才讓我確認 HEX 檔的程式和設定無誤,而麵包板上的電路應該有問題。然後才再仔細研究作者網頁,發現了 1. 和 2.。

6. 最後,按 HEX 的設定直接燒錄 16F628A ,雖然在 program memory burned & verified , configuration bits burned but NOT verified (因為 MCLR 問題)。但燒出來的 IC 已經讓電路跑起來了.....(超爽的)

在這個入門的 kid project 完成後,我想該是仔細再讀讀書本和 IC 規格,然後建立有系統的開發程序,盡快完成各種應用。(下一個目標是 MPPT 的機電控制系統)

以上,是這幾天衝撞後的心得,感謝大家的協助。PIC 真的很有趣~

發表於: 2009/10/20 16:10
頂部


Re: MPLAB ICD2 燒錄問題
#2
新會員
新會員


感謝回應。

這樣說來,是 16F628A 這顆不支援這種設定方式?還是說有其他燒錄工具或方式,可以達到這個結果?

另外,Configuration bits 的內容是否可以另行燒錄?

因為我參考的那個玩家他就是燒出這樣的東西,只是不知道過程為何,真是傷腦筋。

http://cre.ations.net/creation/binarypov-custom-wristwatch

發表於: 2009/10/19 12:27
頂部


Re: MPLAB ICD2 燒錄問題
#3
新會員
新會員


感謝救世主。

沒關係,因為這次要作那個專題來玩玩,就當練習,也順便了解一些變因。

經過一番爬文和實驗後,我把那些原本會顯示 invalid target device id 的 16LF628A 都找到方法救回來了。

關鍵就如救世主和 help docs 裡面說的 MCLR 電壓,我用外部電源去推時就可以測到了。
之後 Erase part ,就可以回復到原始狀態。
但我發現我的 ICD2 好像會記得那個狀態,所以作完之後最好重新拔插一次,再作檢查。
以上,關於 invalid target device id 的問題算是解決了。

但以下有另一個問題:

因為拿到的 HEX 檔是用到了 Warning 33 的特殊狀況,也就是 MCLR 和 OSC 的問題。原始訊息:
ICDWarn0033: MPLAB ICD 2 does not support programming this device if both the internal oscillator and internal MCLR are selected. You may continue programming, but you are encouraged to cancel, reconfigure your device, and try again.

這造成我一直燒錄失敗。之後,我作了一些嚐試,例如:
A. 先燒 Program memory,再燒 Configure bits
B. 先燒 Configure bits, 再燒 Program memory

但結果都會在 verify 時出現錯誤,而比對失敗的第一個 byte 內容就是 Configure bits 的內容。

按理說,我燒的 program memory address 是 0x0 - 0x307
而 configure bits 的位置應該是 0x2007 而內容是 3F10

上述的 A 燒法是先把 configure bits 的 OSC 改為 HS,所以值變成 3F02,然後燒入,這樣都正常。

然後把 configure bits 改為 3F10 再單燒這部份內容時,燒錄成功,但 verify 卻失敗。

所以,我的疑問是:
1. 難道 ICD2 不給燒有警告訊息的 configure bits?
2. address 2007 的位置和內容似乎在 View 裡面看不到?

發表於: 2009/10/19 7:49
頂部


Re: MPLAB ICD2 燒錄問題
#4
新會員
新會員


感謝回覆。
我是用 16LF628A 這顆,在 configure 裡的 select device 也都設定了。

先交待一下我的背景,或許大家比較容易了解我的問題在那裡。

因為我不是科班出身的,電子相關的資訊都是自修來的,而且過去十餘年都在搞網路,所以也停滯了相當的時間。現在是網路穩定了,而又發現電子(MCU)這塊似乎有不少發展、應用空間,所以就準備把這塊玩熟,然後把它跟網路結合起來。

就我目前的認知,Configure bits 類似電腦上的 BIOS 設定,用來設定每顆 PIC 的運作模式,而我前述的燒錄訊息似乎是將 PIC 的狀態設定成不使用內頻的狀態,所以造成我的 Programmer 無法正確和它溝通。(我本來以為燒錄很單純,就買了副廠的 ICD2 燒錄板來用,而廠商提供的文件中也說了,如果測不到device的話,就要找別的燒錄器...囧rz)

所以,現在我突發奇想,如果為 PIC 加上外頻供應,不知道能不能連得起來?這個我等一下會來試試。

倒是,我在想燒錄的這個動作出錯,一來可能是振盪訊號的供應問題(總要讓IC run起來嘛),再者就是內部設定的檢核問題。

前者就如我的奇想,或許可以試試,但好奇的是,其他燒錄器是否沒這類問題?(因為我的燒錄器在 16LF628A 的RA6,RA7 二腳位是不用接線的)

後者的設定檢核,有可能是 IC 沒 run 起來造成的,但應該可以被 bypass 掉,因為 configure bits 的重要性應該是在執行階段,而非是燒錄階段。就這部份而言,我在想是不是跟使用的程式和燒錄器有關?

以上,請各位先進不吝賜教,謝謝!

11/11 的研討會上見囉~~ ^O^/

PS: POV = Persistence of Vision 就是視覺暫留的現象。這部份蠻有趣的,所以我想用 PIC 來作一些相關的應用。

發表於: 2009/10/18 23:09
頂部


MPLAB ICD2 燒錄問題
#5
新會員
新會員


取得的 HEX 原始檔在 Configure bits 的設定是:INTOSC: I/O on RA6/OSC2/CLKOUT, I/O on RA7/OSC1/CLKIN

燒錄時,程式提示了
ICDWarn0033: MPLAB ICD 2 does not support programming this device if both the internal oscillator and internal MCLR are selected. You may continue programming, but you are encouraged to cancel, reconfigure your device, and try again.

但我還是燒了,結果出現失敗。
Programming Configuration Bits
.. Config Memory
Verifying configuration memory...
...Verify Failed (and stopped)
ICD0161: Verify failed (MemType = Config, Address = 0x2007, Expected Val = 0x3F10, Val Read = 0x0)
ICD0275: Programming failed.

而後對晶片作任何存取都出現
ICDWarn0020: Invalid target device id (expected=0x83, read=0x0)

請問:
1. 這樣是表示晶片燒壞了?
2. 不是的話,我如何把狀況排除?(例如清空PIC裡的所有資料,但又不會因 Invalid target device id 而無法執行)
3. 又或者,上述的設定需要什麼條件才能燒錄?


感謝~
PS: 我在網路上似乎也發現不少人有這類問題。
PS2: 附檔為網路上一個 Binary watch /w POV 功能,就是想弄這個來玩玩。

Attach file:


Link only for registered users

發表於: 2009/10/17 8:07
頂部


Re: MPLAB IDE 7.4 + ICD2 燒錄 hex 問題
#6
新會員
新會員


自問自答....

拍謝, 我找到了, 原來是用 import 的方式載入.

keep going....

發表於: 2009/10/16 3:42
頂部


MPLAB IDE 7.4 + ICD2 燒錄 hex 問題
#7
新會員
新會員


各位先進好,

小弟因為看了國外技客的創作, 所以加入 PIC 的大家庭.
在跟 microchipDirect 買了 16F628A 後, 又去光華買了線上燒錄器, 經過幾番測試後, 是已經把 MPLAB IDE 7.4 + ICD2 安裝好.

然後也把 16F628A 跟 ICD2 連接起來, 並且在 IDE 環境中 Connect 成功.

但因為國外技客只有提供 ***.HEX 檔, 並沒有 .asm 或 .c 的原始碼, 這讓我在燒錄上完全不知道該如何進行.

直覺上應該不需要作任何編輯, 直接燒 HEX 資料到 PIC 裡就好了.
但完全搞不懂這部份的 file input 要怎麼作..

請大家提供一些方向, 謝謝!

發表於: 2009/10/16 2:53
頂部






:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------