新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > Maxim表計IC編程

        Maxim表計IC編程

        作者: 時間:2013-07-22 來源:網絡 收藏

        摘要:這篇文檔介紹了在原型設計以及量產階段對Maxim進行編程的工具、流程及注意事項。

        本文引用地址:http://www.104case.com/article/258557.htm

        本文介紹了對Maxim中flash存儲器進行編程的接口、工具、注意事項及處理流程,其中包括/H、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系統公司購買,主要用于在線仿真,即提供一套開發工具。但也可以用于小批量的flash編程。

        第三方編程器

        BPM Microsystems公司出售并提供帶操作按鈕及饋線的單片、多片、大批量編程器,并負責技術支持。

        不再支持的編程工具

        請注意下列編程工具已經停止使用且不再提供支持:

        • TFP1 – 是TFP2的前身,允許在系統編程。TFP2已經覆蓋了TFP1的所有功能。
        • FDBM – 用于在系統編程的單板,需要一個專用的Windows PC圖形用戶界面(GUI)與之配合。
        • TGP1 – 已經由上述第三方編程器制造商替代。

        硬件編程接口

        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管腳,以保證可靠編程。

        • V1:V1必須穩定并且大于VBIAS (VBIAS值詳見相應的數據手冊)。對于71M651x系列,V1必須連接到3.3VDC,以關閉硬件看門狗定時器;對于71M653x系列,V1必須大于VBIAS,這個系列由ICE_E負責硬件看門狗定時器。
        • ICE_E:這個引腳適用于71M653x和71M654x系列,編程時該引腳必須連接到3.3VDC。
        • XIN/XOUT:E_TCLK信號源自內部振蕩器和外部晶體、兩個負載電容共同產生的32kHz信號,詳見數據手冊。
        • Vbase:該引腳通過0.1uF電容接地。
        • V2P5:該引腳通過0.1uF電容接地。
        • RESET(Z):低電平有效復位引腳(/RESET)在編程時必須連接到3.3VDC,高電平有效復位引腳(RESET)在編程時必須連接到地。
        • 除以上引腳外,其它引腳在編程時可以懸空。

        特殊情況

        新出廠的IC (flash內容都是0xff)和被全局擦除的IC沒有什么特別注意事項。以下特殊情況可能包含一個簡短的測試模式,即如同在工廠進行ATE測試一樣,它們可以被看作是未編程的IC。

        幾種特殊情況如下:

        • 特殊功能寄存器(SFR)中的SECURE位置1。
        • 目標代碼將SECURE位置1。
        • IO RAM中的ECK-DIS位置1,禁止E_TCLK輸出。
        • 器件已經編程或片上計算引擎開啟,防止flash讀寫(71M653x)。

        這些特殊情況將在后續討論。

        加密(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信號將出現在編程接口,操作步驟如下:

        • TFP2擦除整片flash。
        • TFP2釋放ICE_E信號,如果目標IC看門狗定時器處于使能狀態,這將導致IC復位。
        • TFP2開始編程。

        帶有加密(SECURE)位設置目標程序的IC編程

        帶有加密(SECURE)位設置代碼的編程和普通的編程沒有什么區別,但要特殊考慮包含設置加密(SECURE)位指令的效驗碼,因為一旦開始執行代碼,將無法訪問flash。

        ADM51仿真器和TFP2

        下列方法用來校驗flash存儲器:

        • 一旦MPU開始執行代碼,將無法訪問、驗證flash。
        • 通過暫停目標IC的程序運行實現操作驗證。
        • 一旦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記錄都由冒號開頭。

        • ll 是數據長度字段,代表記錄中的數據字節數(dd)。
        • aaaa 是地址字段,表示dd的起始地址。
        • tt 表示記錄類型,它可以是以下數值之一:

        00 – 數據記錄

        01 – 文件結束記錄

        02 – 擴展段地址記錄

        04 – 擴展線性地址記錄

        • dd 是代表一個字節的數據字段,記錄中可能包含多個數據字節,數據字節數必須與II字段一致。
        • cc是校驗和字段,代表記錄的校驗和,校驗和是整個記錄的16進制數對(構成一個字節)求和計算的模256,用2的補碼表示。

        Intel hex文件由任意數目的以回車換行符結束的記錄組成,下面是一個記錄的示例:

        :10246200464C5549442050524F46494C4500464C33

        對這個記錄的注釋如下:

        :10246200464C5549442050524F46494C4500464C33

        IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIcc->校驗和(0x33)

        IIIIIIIIIdd->數據(0x46,0x4C,0x55, …, 0x4C)

        IIIaaaa->地址(0x2462)

        Ill->數據長度(0x10)

        :->冒號

        其中:

        10是記錄中的數據長度。

        2462是數據的起始地址。

        00是記錄類型。

        464C…464C是數據。

        33 是校驗和。

        Intel HEX386文件格式



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 社旗县| 兴文县| 河东区| 义乌市| 阿鲁科尔沁旗| 紫金县| 寻乌县| 延边| 泗阳县| 晋宁县| 黄骅市| 安乡县| 沙田区| 赤城县| 井陉县| 调兵山市| 沂源县| 祁东县| 忻城县| 武平县| 如东县| 苏尼特左旗| 郧西县| 故城县| 边坝县| 金乡县| 宁化县| 法库县| 志丹县| 招远市| 喀什市| 资中县| 白山市| 天全县| 木里| 朝阳区| 汤原县| 宜春市| 莲花县| 耒阳市| 晋宁县|