如何在ATE中集成對PIC單片機的編程燒寫功能!

做ATE,要對DUT內部的PIC單片機進行在線燒寫,


在網上看到別人的一個說法(作者 Claud Zhang),內容如下:

----------------------------------------------------------

一種簡單高效低成本的Microchip MCU編程方法
                                   Claud Zhang
對於一些研發工程師來說,工廠的的MCU編程有時候是個比較頭疼的問題.在研發過程中,大家都和習慣於用仿真器去編程,這個對工程師來說是個非常簡單的過程,但是在工廠生產,工廠認爲太複雜了。工廠希望是個傻瓜式的過程。最好的方法是通過ATE自動編程,不需人工參與。
在以往的通常有2種方法,

一種是用PM3, 先編程好,再去SMT, 這種方法對量非常大又不在意成本的話也不失爲一種方法,當然這種編程的缺點也很多
1,        首先成本高,PM3, 插座都是一筆不小的開銷
2,        失效率會比較高,在上SMT 之前就需要拆封,容易產生管腳損傷,ESD, 造成廢料
3,        如果你在此基礎上做一個完全自動化的話,相信先期投入的成本是相當驚人地。
4,        如果你不做自動化設備的話,那麼你需要投入更多的人工
5,        不能在線更新

另外一種是在線燒錄
Microchip的IC 燒錄只需要5個pin, 其中是有2個是電源和地,在PCB 上只佔用很小的空間。 或者你做幾個焊盤,直接用探針接觸。
在線燒錄的優點:
1,        容易在線更新
2,        避免二次操作管腳
3,        任何器件都可以通過這5個PIN編程

缺點:
需要人工操作燒錄過程,要通過MPLAB 的IDE 界面進行操作。
人工操作的缺點
1,        非常容易出錯。
2,        佔用一個工位人工,增加成本
3,        工廠工人流動比較大,工位經常變動,更容易出錯,增加成本。

解決方法:
在MPLAB 中已經增加了命令行方式實現燒錄,也就是說只要用文本寫個簡單的命令行或者批處理,用你的PK3或者ICD3 連接好你的芯片, 直接點擊或者在ATE中調用批處理,就完成燒錄。

過程如下:
1 安裝MPLAB IDE(我用的是V8.85版本)
2 插入PK3 或者ICD3 , 找到驅動
3 這裏先以ICD3 爲例
在目錄 ..\Microchip\MPLAB IDE\Programmer Utilities\ICD3 找到ICD3CMD.exe
把着個文件copy 到你任意指定的一個目錄。
假設就在C:\ ICD3CMD.exe
4, 和ICD3CMD.exe同一個目錄下 新建一個文本 
   假設你用的器件是 DSPIC33EP64MC506, 燒錄文件是claud.hex  這個文件也在假設的C盤根目錄下,也可以是任意路徑,注意不要用中文路徑。
  在文本文件中寫入
ICD3CMD -P33EP64MC506 -FC:\claud.Hex -M -V3.3
注意藍色部分寫法,不要DSPIC
如果是PIC16F1516 就寫成
ICD3CMD –P16F1516 -FC:\claud.Hex -M -V3.3
注意藍色部分寫法,不要PIC
選項V3.3 是指ICD3 直接給芯片供電3.3V. 如果板上所需電流過大,請外加電源。
5 把這個文本另存爲 ICD3PROMCU.bat, 同樣保存在和你的 ICD3CMD.EXE 一個目錄下
6, 如果你使用的是PK3, 在。。\Microchip\MPLAB IDE\Programmer Utilities\PICkit3 目錄中找到 PK3CMD.exe ,把上面的ICD3CMD替換成PK3CMD.
7,雙擊ICD3PROMCU.bat
8, 如果你在command 窗口裏看到如下畫面, 恭喜你, 成功了
9, 在工廠裏要做的只是雙擊一下或者集成到ATE中直接調用。
10, 謝謝你仔細讀完。

--------------------------------------------------------------------------

實際操作中,查詢該DOS Console命令就可以發現其大體功能有哪些(估計還有一部分隱藏參數MCHP官方未公開,因爲對比MPLAB的操作細節可以看出來):

E:\PROG>icd3cmd /?
Options              Description
---------------------------------------------------------------------------
B                    Batch Mode Operation
C                    Blank Check Device
E                    Erase Flash Device
PKOB                 To connect PKOB
F<file>              Hex File Selection
G<region><Type><path> Read functions
                         region:
                         E = EEPROM
                         I = ID memory
                         C = Configuration memory
                         B = Boot Flash Memory
                         If no region is entered, the entire
                         device will be read.


                         Type F: = read into hex file,
                         Path = full file path,
H                    Hold In Reset
L                    Release from Reset
I                    Use High Voltage MCLR
M<region>            Program Device
                         region:
                         P = Program memory
                         E = EEPROM
                         I = ID memory
                         C = Configuration memory
                         B = Boot Flash Memory
                         If no region is entered, the entire
                         device will be programmed.
N####,####           Program Memory Range
                         #### is a hexidecimal number representing
                         Start and End Address in sequence
P<part>              Part Selection. Example: 18F67J50
R<file>              Reporgram
S<file>              SQTP File Selection
U##                  Program calibration memory,where:
                        ## is a hexidecimal number representing
                        the least significant byte of the
                        calibration value to be programmed
V<Voltage>           Power Target from ICD3
Y                    Verify Device
                         against selected HEX File
?                    Help Screen
?E                   Displays Exit Code


     Example:   ICD3CMD  /P18F67J50 /GFc:\HexCode.hex
                               or
     Example:   ICD3CMD  -P18F67J50 -GFc:\HexCode.hex




     Version 01.00.14


     Copyright (C) Microchip Technology Inc. 2009


E:\PROG>
//-----------------------------------再看看MPLAB開發IDE中的連接ICD3過程:
MPLAB ICD 3 detected
Connecting to MPLAB ICD 3...
Firmware Suite Version...... 01.28.90
Firmware type......................Enhanced Midrange


MPLAB ICD 3 Connected.


Target Detected


Device ID Revision = 00000004
Programming...
Programming/Verify complete



//-----------------------------------其實這個icd3cmd命令自帶支持連續操作模式,叫Batch Mode,試驗如下:
E:\PROG>icd3cmd -P16F1903 -FC:\usr\111.hex -M -B


Connecting...
MPLAB ICD 3 detected
Connecting to MPLAB ICD 3...
Firmware Suite Version...... 01.28.90
Firmware type......................Enhanced Midrange
MPLAB ICD 3 Connected.
Target Detected
Device ID Revision = 00000004


Programming Device ...
Programming/Verify complete
Batch Mode Count : 1


Batch Mode:  Press Enter to repeat the same operation !!!


Programming Device ...
Programming/Verify complete
Batch Mode Count : 2


Batch Mode:  Press Enter to repeat the same operation !!!


最後這個纔是對批量燒些真正有用的指令!!


發佈了40 篇原創文章 · 獲贊 22 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章