Maxim表計IC編程
摘要:這篇文檔介紹了在原型設計以及量產階段對Maxim表計IC進行編程的工具、流程及注意事項。
本文引用地址:http://www.ex-cimer.com/article/258557.htm本文介紹了對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。
另外,這里推薦的電表板設計程序能夠在任何場合擦除和編程。
編程工具
最簡單的辦法是使用現(xiàn)有的編程工具,目前這些工具有:
- TFP2編程器
- ADM51在線仿真器(ICE)
- 第三方編程工具
TFP2 flash編程器
可以通過Digi-Key、Mouser等代理商購買TFP2,可以在目標板上對目標IC進行編程。手動操作編程(按一次鍵啟動一次編程過程),也能夠由“自動測試設備(ATE)”控制(注:TFP2提供一個ATE接口,可以連接到外部“自動測試設備”)??赏瑫r使用幾個TFP2,以提高生產效率。
首先通過計算機的超級終端(或其它終端)將目標代碼下載到TFP2,隨后即可單獨操作TFP2對目標板上目標IC的現(xiàn)場編程。撰寫這篇文檔時,TFP2的最新固件版本是V1.53。
連接目標板的電纜可以是帶有0.1英寸間距接頭的絞合電纜。另外,TFP2還提供與ADM仿真器兼容的小間距TYCO/AMP 10x2 接頭,該接頭在引腳2定義了一個ICE_E信號(71M653xIC在仿真時將使用這個信號)。
使用一個TFP2和一個自帶電源的目標板即可實現(xiàn)簡單編程,詳情請見本文檔“硬件調節(jié)要求” 部分。
注意:TFP2要求下載的hex文件的“記錄”保持遞增順序,因此,Maxim提供了一個應用程序(CHKSUM.EXE)來處理由keil編譯器產生的inter hex文件,供TFP2使用。這個應用程序隨TFP2提供。
ICE(Signum仿真器ADM51)
ADM51可向Simgum系統(tǒng)公司購買,主要用于在線仿真,即提供一套開發(fā)工具。但也可以用于小批量表計IC的flash編程。
第三方編程器
BPM Microsystems公司出售并提供帶操作按鈕及饋線的單片、多片、大批量編程器,并負責技術支持。
不再支持的編程工具
請注意下列編程工具已經停止使用且不再提供支持:
- TFP1 – 是TFP2的前身,允許在系統(tǒng)編程。TFP2已經覆蓋了TFP1的所有功能。
- FDBM – 用于在系統(tǒng)編程的單板,需要一個專用的Windows PC圖形用戶界面(GUI)與之配合。
- TGP1 – 已經由上述第三方編程器制造商替代。
硬件編程接口
71M65xx系列IC通過ICE接口編程,表1列出了在DUT和flash編程器之間的通信信號。ICE接口引腳的定義請詳見各自的數(shù)據(jù)手冊。
表1. Flash接口信號 | ||
信號 | 方向 | 功能 |
E_TCLK | 從DUT輸出 | 時鐘信號(5MHz) |
E_RXTX | 雙向 | 數(shù)據(jù)輸入/輸出 |
E_RST | 雙向 | Flash編程器復位(低有效) |
ICE_E | 輸入到DUT | 使能ICE接口(71M653x) |
*使能編程信號時,E_RST僅由編程器驅動。
**有其它時間,編程器必須釋放E_RST信號。
***編程協(xié)議由Signum System公司所有。
必要的硬件調整
除了建立IC電源和地線連接外,必須認真對待下列IC管腳,以保證可靠編程。
- V1:V1必須穩(wěn)定并且大于VBIAS (VBIAS值詳見相應的數(shù)據(jù)手冊)。對于71M651x系列,V1必須連接到3.3VDC,以關閉硬件看門狗定時器;對于71M653x系列,V1必須大于VBIAS,這個系列由ICE_E負責硬件看門狗定時器。
- ICE_E:這個引腳適用于71M653x和71M654x系列,編程時該引腳必須連接到3.3VDC。
- XIN/XOUT:E_TCLK信號源自內部振蕩器和外部晶體、兩個負載電容共同產生的32kHz信號,詳見數(shù)據(jù)手冊。
- 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)。
這些特殊情況將在后續(xù)討論。
加密(SECURE)位
加密位可以防止對flash內容進行讀寫。如果加密位在編程前置位,則沒有硬件措施解鎖,唯一的解鎖辦法是整片擦除并緊跟一個IC復位。
值得注意的是,加密(SECURE)位是MPU執(zhí)行一段代碼置位的,而不是由編程器置位,代碼例程見圖1。加密位確保用戶程序不被非法竊取,但當IC需要編程/驗證或重新編程時,需要幾個附加步驟。
圖1. 設置加密(SECURE)位的匯編例程
加密過程是:IC上電時,從地址0x0000開始執(zhí)行程序,前60個MPU時鐘周期是preboot周期,在這個周期中,ICE接口是被禁止的,起始代碼可以設置加密(SECURE)位,使能flash加密功能。由于加密(SECURE)位只能置位不能清零(只能由硬件復位清零),而且在preboot期間ICE不能進行讀寫,故外部電路沒有辦法讀寫flash。加密(SECURE)位位于片上的特殊功能寄存器(SFR),各IC在數(shù)據(jù)手冊中定義了各自的加密(SECURE)位位置。
ADM51 ICE
在仿真器用戶界面,如果IC加密(SECURE)位置1,則顯示圖2所示界面。用戶可以選擇整片擦除并復位IC,復位最好的方法是斷電后重新上電。對于有電池的情況,電池必須有一個短暫的斷開,或發(fā)送復位信號強制IC復位。
此時,在仿真器用戶界面將顯示IC是一個普通的被擦除的空片。
圖2. ICE界面提示加密(SECURE)位置位
圖3. 丟失E_TCLK時的ICE接口
TFP2
TFP2將發(fā)出一個簡單的狀態(tài)信息,表明IC已經加密。
然后,TFP2將繼續(xù)整片擦除操作,隨后進行編程操作,無需用戶干預。
如果IC是71M653x,IC的ICE_E信號將出現(xiàn)在編程接口,操作步驟如下:
- TFP2擦除整片flash。
- TFP2釋放ICE_E信號,如果目標IC看門狗定時器處于使能狀態(tài),這將導致IC復位。
- TFP2開始編程。
帶有加密(SECURE)位設置目標程序的IC編程
帶有加密(SECURE)位設置代碼的編程和普通的編程沒有什么區(qū)別,但要特殊考慮包含設置加密(SECURE)位指令的效驗碼,因為一旦開始執(zhí)行代碼,將無法訪問flash。
ADM51仿真器和TFP2
下列方法用來校驗flash存儲器:
- 一旦MPU開始執(zhí)行代碼,將無法訪問、驗證flash。
- 通過暫停目標IC的程序運行實現(xiàn)操作驗證。
- 一旦flash校驗完成且開始執(zhí)行程序,將無法做進一步的校驗。
這個過程對用戶透明。
ECK_DIS置位時的IC編程
這種情況產生一個挑戰(zhàn),因為E_TCLK信號是編程接口必不可少的。
ADM51 ICE
仿真器時鐘信號丟失時,ADM51(WEMU51)將產生一個界面如圖3所示。依據(jù)ECK_DIS置位的時機,重復復位目標可能在ECK_DIS置位之前使得ADM51暫停IC運行,ICE用戶接口將表現(xiàn)正常,用戶有機會擦除整片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 中的內容。黃色高亮區(qū)域對應于實際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記錄,這些記錄是由包含了機器碼及常數(shù)的16進制數(shù)組成。
注意:器件編程要求各行按順序排列,Maxim提供一個實用程序CHKSUM.EXE來處理Intel hex文件,用于編程。這個實用文件隨TFP2一同提供。
記錄格式
Intel hex文件由任意數(shù)量的16進制記錄組成,每個記錄包含5個字段,按以下格式排列:
:llaaaatt[dd…]cc
每組字符對應一個字段,每個字母代表一個16進制數(shù)字,每個字段至少由兩個16進制數(shù)字組成——構成一個字節(jié),如下所述:
:是冒號,每個Intel hex記錄都由冒號開頭。
- ll 是數(shù)據(jù)長度字段,代表記錄中的數(shù)據(jù)字節(jié)數(shù)(dd)。
- aaaa 是地址字段,表示dd的起始地址。
- tt 表示記錄類型,它可以是以下數(shù)值之一:
00 – 數(shù)據(jù)記錄
01 – 文件結束記錄
02 – 擴展段地址記錄
04 – 擴展線性地址記錄
- dd 是代表一個字節(jié)的數(shù)據(jù)字段,記錄中可能包含多個數(shù)據(jù)字節(jié),數(shù)據(jù)字節(jié)數(shù)必須與II字段一致。
- cc是校驗和字段,代表記錄的校驗和,校驗和是整個記錄的16進制數(shù)對(構成一個字節(jié))求和計算的模256,用2的補碼表示。
Intel hex文件由任意數(shù)目的以回車換行符結束的記錄組成,下面是一個記錄的示例:
:10246200464C5549442050524F46494C4500464C33
對這個記錄的注釋如下:
:10246200464C5549442050524F46494C4500464C33
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIcc->校驗和(0x33)
IIIIIIIIIdd->數(shù)據(jù)(0x46,0x4C,0x55, …, 0x4C)
IIIaaaa->地址(0x2462)
Ill->數(shù)據(jù)長度(0x10)
:->冒號
其中:
10是記錄中的數(shù)據(jù)長度。
2462是數(shù)據(jù)的起始地址。
00是記錄類型。
464C…464C是數(shù)據(jù)。
33 是校驗和。
Intel HEX386文件格式
評論