DIY编程器网

标题: Maxim表计IC编程 [打印本页]

作者: admin    时间: 2014-10-11 08:02
标题: Maxim表计IC编程
摘要:这篇文档介绍了在原型设计以及量产阶段对Maxim表计IC进行编程的工具、流程及注意事项。
         
        本文介绍了对Maxim表计IC中flash存储器进行编程的接口、工具、注意事项及处理流程,其中包括71M6511/71M6511H、71M6513/71M6513H、71M6531D/F、71M6532D/F、71M6533/G/H、71M6534/H、71M6541D/F/G、71M6542F/G、71M6543F/H和71M6545/H。
         
        另外,这里推荐的电表板设计程序能够在任何场合擦除和编程。
         
        编程工具
        最简单的办法是使用现有的编程工具,目前这些工具有:
         
        TFP2 flash编程器
        可以通过Digi-Key、Mouser等代理商购买TFP2,可以在目标板上对目标IC进行编程。手动操作编程(按一次键启动一次编程过程),也能够由“自动测试设备(ATE)”控制(注:TFP2提供一个ATE接口,可以连接到外部“自动测试设备”)。可同时使用几个TFP2,以提高生产效率。
         
        首先通过计算机的超级终端(或其它终端)将目标代码下载到TFP2,随后即可单独操作TFP2对目标板上目标IC的现场编程。撰写这篇文档时,TFP2的最新固件版本是V1.53。
         
        连接目标板的电缆可以是带有0.1英寸间距接头的绞合电缆。另外,TFP2还提供与ADM仿真器兼容的小间距TYCO/AMP 10x2 接头,该接头在引脚2定义了一个ICE_E信号(71M653xIC在仿真时将使用这个信号)。
         
        使用一个TFP2和一个自带电源的目标板即可实现简单编程,详情请见本文档“硬件调节要求” 部分。
         
        注意:TFP2要求下载的hex文件的“记录”保持递增顺序,因此,Maxim提供了一个应用程序(CHKSUM.EXE)来处理由keil编译器产生的inter hex文件,供TFP2使用。这个应用程序随TFP2提供。
         
        ICE(Signum仿真器ADM51)
        ADM51可向Simgum系统公司购买,主要用于在线仿真,即提供一套开发工具。但也可以用于小批量表计IC的flash编程。
         
        第三方编程器
        BPM Microsystems公司出售并提供带操作按钮及馈线的单片、多片、大批量编程器,并负责技术支持。
         
        不再支持的编程工具
        请注意下列编程工具已经停止使用且不再提供支持:
         
        硬件编程接口
        71M65xx系列IC通过ICE接口编程,表1列出了在DUT和flash编程器之间的通信信号。ICE接口引脚的定义请详见各自的数据手册。
         
                               
                                        表1. Flash接口信号

                       
                               
                                        信号

                       
                               
                                        方向

                       
                               
                                        功能

                       
                                                                        E_TCLK
                       
                                                                        从DUT输出
                       
                                                                        时钟信号(5MHz)
                       
                                                                        E_RXTX
                       
                                                                        双向
                       
                                                                        数据输入/输出
                       
                                                                        E_RST
                       
                                                                        双向
                       
                                                                        Flash编程器复位(低有效)
                       
                                                                        ICE_E
                       
                                                                        输入到DUT
                       
                                                                        使能ICE接口(71M653x)
                       
         
        *使能编程信号时,E_RST仅由编程器驱动。
        **有其它时间,编程器必须释放E_RST信号。
        ***编程协议由Signum System公司所有。
         
        必要的硬件调整
        除了建立IC电源和地线连接外,必须认真对待下列IC管脚,以保证可靠编程。
         
        特殊情况
        新出厂的IC (flash内容都是0xff)和被全局擦除的IC没有什么特别注意事项。以下特殊情况可能包含一个简短的测试模式,即如同在工厂进行ATE测试一样,它们可以被看作是未编程的IC。
         
        几种特殊情况如下:
        这些特殊情况将在后续讨论。
         
        加密(SECURE)位
        加密位可以防止对flash内容进行读写。如果加密位在编程前置位,则没有硬件措施解锁,唯一的解锁办法是整片擦除并紧跟一个IC复位。
         
        值得注意的是,加密(SECURE)位是MPU执行一段代码置位的,而不是由编程器置位,代码例程见图1。加密位确保用户程序不被非法窃取,但当IC需要编程/验证或重新编程时,需要几个附加步骤。
         
       

        图1. 设置加密(SECURE)位的汇编例程

         
        加密过程是:IC上电时,从地址0x0000开始执行程序,前60个MPU时钟周期是preboot周期,在这个周期中,ICE接口是被禁止的,起始代码可以设置加密(SECURE)位,使能flash加密功能。由于加密(SECURE)位只能置位不能清零(只能由硬件复位清零),而且在preboot期间ICE不能进行读写,故外部电路没有办法读写flash。加密(SECURE)位位于片上的特殊功能寄存器(SFR),各IC在数据手册中定义了各自的加密(SECURE)位位置。
         
        ADM51 ICE
        在仿真器用户界面,如果IC加密(SECURE)位置1,则显示图2所示界面。用户可以选择整片擦除并复位IC,复位最好的方法是断电后重新上电。对于有电池的情况,电池必须有一个短暂的断开,或发送复位信号强制IC复位。
         
        此时,在仿真器用户界面将显示IC是一个普通的被擦除的空片。
         
       

        图2. ICE界面提示加密(SECURE)位置位

         
       

        图3. 丢失E_TCLK时的ICE接口

         
        TFP2
        TFP2将发出一个简单的状态信息,表明IC已经加密。
         
        然后,TFP2将继续整片擦除操作,随后进行编程操作,无需用户干预。
         
        如果IC是71M653x,IC的ICE_E信号将出现在编程接口,操作步骤如下:
         
         
        带有加密(SECURE)位设置目标程序的IC编程
        带有加密(SECURE)位设置代码的编程和普通的编程没有什么区别,但要特殊考虑包含设置加密(SECURE)位指令的效验码,因为一旦开始执行代码,将无法访问flash。
         
        ADM51仿真器和TFP2
        下列方法用来校验flash存储器:
        这个过程对用户透明。
         
        ECK_DIS置位时的IC编程
        这种情况产生一个挑战,因为E_TCLK信号是编程接口必不可少的。
         
        ADM51 ICE
        仿真器时钟信号丢失时,ADM51(WEMU51)将产生一个界面如图3所示。依据ECK_DIS置位的时机,重复复位目标可能在ECK_DIS置位之前使得ADM51暂停IC运行,ICE用户接口将表现正常,用户有机会擦除整片flash。
         
        TFP2
        TFP2可快速响应目标编程器接口,禁止E_TCLK对于TFP2来说不是问题。
         
        IC含有部分或全部代码时的IC编程
        对于71M653xIC,片上计算引擎(CE)的程序flash和MCU是共享的,CE使能信号封锁外部设备对flash的存取。CE使能控制位处于IO RAM 0x2000,第4位。
         
        ADM51 ICE
        典型的ADM51仿真器(WEMU51)截屏如图4所示,XDATA_1窗口显示了IO RAM 0x1FF0 ~ 0x2137 中的内容。黄色高亮区域对应于实际IO RAM寄存器,地址0x2000中的内容为0xB0。
         
        在擦除或编程目标flash之前,地址0x2000的内容必须是0x00,这将终止CE运行,为目标IC的编程做准备。
         
        TFP2
        TFP2自动处理CE,无需用户干预。
         

       

        图4. ICE用户界面中的IO RAM

         
        准备目标映像文件
        ADM51 ICE和TFP2均处理Intel hex格式的映像文件,这种格式也适用于BPM编程器。
         
        Intel hex文件是由一符合Intel hex文件格式的文本所构成的ASCII文本文件。在Intel hex文件中,每一行包含一个hex记录,这些记录是由包含了机器码及常数的16进制数组成。
         
        注意:器件编程要求各行按顺序排列,Maxim提供一个实用程序CHKSUM.EXE来处理Intel hex文件,用于编程。这个实用文件随TFP2一同提供。
         
        记录格式
        Intel hex文件由任意数量的16进制记录组成,每个记录包含5个字段,按以下格式排列:
        :llaaaatt[dd…]cc
        每组字符对应一个字段,每个字母代表一个16进制数字,每个字段至少由两个16进制数字组成——构成一个字节,如下所述:
        :是冒号,每个Intel hex记录都由冒号开头。
        00 – 数据记录
        01 – 文件结束记录
        02 – 扩展段地址记录
        04 – 扩展线性地址记录
         
        Intel hex文件由任意数目的以回车换行符结束的记录组成,下面是一个记录的示例:
        :10246200464C5549442050524F46494C4500464C33
        对这个记录的注释如下:
        :10246200464C5549442050524F46494C4500464C33
        IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIcc->校验和(0x33)
        IIIIIIIIIdd->数据(0x46,0x4C,0x55, …, 0x4C)
        IIIaaaa->地址(0x2462)
        Ill->数据长度(0x10)
        :->冒号
         
        其中:
        10是记录中的数据长度。
        2462是数据的起始地址。
        00是记录类型。
        464C…464C是数据。
        33 是校验和。
        Intel HEX386文件格式




欢迎光临 DIY编程器网 (http://diybcq.com./) Powered by Discuz! X3.2