×
单片机 > 单片机程序设计 > 详情

如何在ATE中集成对PIC单片机的编程烧写功能

发布时间:2020-12-25 发布时间:
|

做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 为例

在目录 ..MicrochipMPLAB IDEProgrammer UtilitiesICD3 找到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, 在。。MicrochipMPLAB IDEProgrammer UtilitiesPICkit3 目录中找到 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              Hex File Selection

G 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            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 Selection. Example: 18F67J50

R              Reporgram

S              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           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:usr111.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 !!!


最后这个才是对批量烧些真正有用的指令!!

关键字:ATE  PIC单片机  编程  烧写功能 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
AVR熔丝位操作时的要点和需要注意的相关事项