2016-10-07 82 views
0

每個芯片都應該是唯一的編號,所以我想防止芯片被燒兩次。這是訂單中的一個缺口。應該使用每個數字。在PIC18F中寫入新的編號之前驗證唯一的ID號碼

我已經搜索了互聯網,並找到了如何在稱爲「用戶ID」的特定位置編寫唯一號碼。

所以我有兩個文件: - 「Myprogram.hex」 - 「MyUniqueNumber_SQTP.num」

我用MPLAB X v3.35和IPE版本進行寫入。

是否有人知道在寫微芯片之前是否有程序驗證「用戶ID」(這是常見的)。例如..空白支票

我知道IPE將爲該「一個」芯片生成組合的十六進制文件。這是可能的,因爲唯一編號在地址(十六進制)上:200000-200007 主程序不使用此地址。

預先感謝您。

+0

如果你知道二進制圖像的精確格式,那麼你可以實現一個腳本(例如,在Python)的注入將ID爲十六進制文件,在那個特定的地址,圖像刻錄到前閃。順便說一句,爲了確保這個地址永遠不會被使用(即爲了你的特定目的而保留它),你應該在鏈接器設置中添加一個適當的規則。 –

+0

感謝barak manos,但是合併hex不是問題。我想驗證芯片中是否有固件,以及在寫入新的芯片之前是否有數字。 – Articer

+0

閱讀芯片(或至少足以滿足自己),看看你得到什麼。當然,如果你編寫一個反讀保險絲,你將無法做到這一點。也許你需要通過建立明確的工作程序和記錄來解決這個問題。 –

回答

0

如果您使用支持SQTP的PICKIT 3,則可以使用其命令行界面(pk3cmd.exe,與MPLAP IDE捆綁在一起)。您可以先將ID內存(使用-GI)或內存的一部分(使用-GP)讀取到文件中,然後驗證它是否已被燒燬。然後將它集成到一個JAVA/.Net應用程序來自動化這個過程是很容易的。

對於其他調試器,應該有類似的CLI。

PK3CMD command line options