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