MAX16065–MAX16068和MAX16070/MAX16071微處理器監(jiān)控器焊接到應(yīng)用電路板后可以編程。這意味著只需要庫(kù)存未編程的設(shè)備,并且可以在制造測(cè)試期間將最新版本的配置信息寫(xiě)入設(shè)備。一些簡(jiǎn)單的措施可確保應(yīng)用電路允許編程硬件共享SMBus?或JTAG總線,并在編程期間為器件供電。本應(yīng)用筆記提供了SMBus和JTAG總線的編程算法。
介紹
MAX16065/MAX16066、MAX16067、MAX16068和MAX16070/MAX16071產(chǎn)品對(duì)復(fù)雜多電壓系統(tǒng)中的電源進(jìn)行排序和監(jiān)測(cè)。電源由數(shù)字比較器監(jiān)控,并使用可編程狀態(tài)機(jī)進(jìn)行排序。表 1 總結(jié)了這些產(chǎn)品系列中的器件。
表 1.系統(tǒng)管理器摘要
部分 | 監(jiān)控輸入 | 排序輸出 |
MAX16065 | 12 | 12 |
MAX16066 | 10 | 8 |
MAX16067 | 6 | 6 |
MAX16070 | 12 | — |
MAX16071 | 8 | — |
MAX16068 | 6 | — |
這些器件包括一個(gè)SMBus兼容接口和一個(gè)JTAG接口,通過(guò)這些接口可以訪問(wèn)所有器件寄存器,并對(duì)內(nèi)部配置閃存進(jìn)行編程。這些器件都是在線可編程的,即,只要遵循一些簡(jiǎn)單的準(zhǔn)則,就可以在焊接到應(yīng)用電路板后對(duì)其進(jìn)行編程。在線編程還意味著只需要庫(kù)存未編程的器件,并且可以在制造測(cè)試期間將最新版本的配置信息寫(xiě)入器件。
提供電力
這些器件的電源電壓范圍為 2.8V 至 14V。典型應(yīng)用連接 V抄送至 12V 中間總線電壓或 3.3V 輔助電源。
對(duì)于具有排序輸出的Maxim系統(tǒng)管理器,可以使用部分供電板對(duì)器件進(jìn)行編程。例如,可以在沒(méi)有任何其它電源的情況下施加3.3V輔助電壓,或者可以施加12V中間總線電壓。所有下游電源都應(yīng)關(guān)閉,因?yàn)榇藭r(shí)設(shè)備未編程。另一種選擇是使用常用的雙二極管,以允許從編程連接器供電。由于二極管會(huì)造成壓降,當(dāng)器件由12V總線供電時(shí),這種方法效果最佳。
如果未使用二極管OR-ing,并且系統(tǒng)管理器要在電路板上施加電源的情況下進(jìn)行編程,則必須特別注意時(shí)序輸出的狀態(tài)。這是為了防止任何下游電源過(guò)早打開(kāi)。
未編程時(shí),系統(tǒng)管理器具有高阻抗輸出。具有高電平有效使能輸入的電源應(yīng)具有下拉電阻;具有/使能輸入的電源應(yīng)具有上拉電阻。排序輸出可配置為推挽式或漏極開(kāi)路。由于漏極開(kāi)路配置需要一個(gè)外部上拉電阻,因此應(yīng)僅與低電平有效使能輸入配合使用。
不建議連接JTAG鏈中的系統(tǒng)管理器,因?yàn)殡娫纯赡懿粫?huì)施加到鏈中的上游設(shè)備,從而有效地切斷對(duì)設(shè)備的訪問(wèn)。相反,首選JTAG多路復(fù)用器或?qū)S肑TAG端口。無(wú)法控制電源時(shí)序的系統(tǒng)管理器可以安全地包含在JTAG鏈中。
共享巴士
當(dāng)IC在正常工作期間需要與系統(tǒng)管理器通信時(shí),會(huì)出現(xiàn)潛在問(wèn)題。例如,系統(tǒng)監(jiān)控微處理器需要訪問(wèn)MAX16065的ADC讀數(shù)。當(dāng)電路板未上電或部分上電且MAX16065正在編程時(shí),連接到SMBus或JTAG總線的其他器件可能會(huì)產(chǎn)生干擾。最簡(jiǎn)單的解決方案是通過(guò)JTAG接口對(duì)MAX16065進(jìn)行編程,并將監(jiān)控微處理器連接到SMBus接口。如果微處理器支持真正的漏極開(kāi)路SMBus總線I/O(即缺少ESD二極管至V的引腳)抄送),如果上拉電阻足夠大,則可以共享SMBus接口以進(jìn)行編程和正常工作。如果微處理器的SMBus線路不是漏極開(kāi)路,ESD二極管將箝位總線線路并干擾編程。
如果系統(tǒng)微處理器沒(méi)有真正的漏極開(kāi)路SMBus線路,則可以使用圖1所示的電路在微處理器和編程SMBus接口之間自動(dòng)切換。
圖1.系統(tǒng)管理器通過(guò)MAX4525多路復(fù)用器/開(kāi)關(guān)共享其SMBus線路。
圖4525所示的MAX1多路復(fù)用器在連接到系統(tǒng)微處理器的SMBus線路和連接到編程測(cè)試點(diǎn)的SMBus線路之間切換。開(kāi)關(guān)由 V 控制抄送的系統(tǒng)微處理器。如果 V抄送不施加,但 12V 是,開(kāi)關(guān)將 SMBus 接口連接到編程測(cè)試點(diǎn)。一次 V抄送應(yīng)用,交換機(jī)將 SMBus 線路連接到系統(tǒng)微處理器。
應(yīng)用電路示例
下圖顯示了為在線編程設(shè)計(jì)的三種不同的應(yīng)用電路。
由 12V 中間總線供電,并通過(guò) SMBus 接口進(jìn)行編程
圖2電路通過(guò)16065V中間總線為MAX12供電,中間總線由模擬使能線EN監(jiān)視。當(dāng)12V總線上升到EN電阻分壓器設(shè)置的門(mén)限以上時(shí),MAX16065嘗試排序(如果已編程)。未編程的MAX16065不執(zhí)行任何操作,時(shí)序輸出保持在高阻電平。
圖2.MAX16065由12V中間總線供電,通過(guò)SMBus接口編程。
一個(gè)電源使用高電平有效推挽使能信號(hào),另一個(gè)電源使用低電平有效漏極開(kāi)路使能信號(hào)。適當(dāng)?shù)纳侠拖吕娮杩煞乐惯@些電源在未編程輸出處于高阻抗電平時(shí)導(dǎo)通。
需要注意的是,推挽輸出不能上拉到V以上DBP;漏極開(kāi)路輸出不能上拉至6V以上。SMBus 連接被帶到編程測(cè)試點(diǎn);編程硬件必須提供適當(dāng)?shù)纳侠娮?。電路很?jiǎn)單,因?yàn)殡娐钒迳蠜](méi)有其他設(shè)備需要連接到SMBus線路。
由3.3V輔助電源供電,并通過(guò)JTAG多路復(fù)用器進(jìn)行編程
圖3所示,MAX16067從3.3V輔助電源供電。JTAG連接使用DS26900 JTAG多路復(fù)用器與其他器件共享,該多路復(fù)用器也由3.3V輔助電源供電。編程可通過(guò)提供3.3V電壓來(lái)完成,而無(wú)需為12V中間總線上電。
圖3.MAX16067由3.3V輔助電源供電,通過(guò)DS26900 JTAG多路復(fù)用器進(jìn)行編程。
由12V中間總線供電,并通過(guò)JTAG編程
圖4所示為MAX16066通過(guò)二極管OR-ed連接到12V中間總線供電,無(wú)需任何下游電源上電即可安全供電。JTAG和電源連接被帶到編程測(cè)試點(diǎn)。
圖4.MAX16066由12V中間總線供電,通過(guò)JTAG編程。
編程算法
Maxim電源管理器件內(nèi)置閃存,用于存儲(chǔ)器件配置參數(shù)。接通電源后,閃存的內(nèi)容將傳輸?shù)?a href="http://ttokpm.com/tags/ram/" target="_blank">RAM寄存器。RAM和閃存都可以從JTAG和SMBus接口訪問(wèn)。要正確編程設(shè)備,必須將所需的參數(shù)編程到閃存中。請(qǐng)參閱圖 5 中的內(nèi)存映射。
圖5.系統(tǒng)管理器內(nèi)存映射。
配置文件
MAX16065評(píng)估板軟件提供兩種類(lèi)型的配置文件。一個(gè)是通過(guò)選擇文件另存為生成的標(biāo)準(zhǔn)英特爾十六?進(jìn)制文件。此文件可用于 SMBus 編程。第二個(gè)文件是通過(guò)選擇“文件導(dǎo)出到 SVF 文件”生成的。該文件采用串行矢量格式(SVF),由第三方JTAG工具和在線PCB測(cè)試儀用于JTAG編程。
SMBus 編程過(guò)程
要對(duì)閃存配置存儲(chǔ)器進(jìn)行編程,首先確保寄存器r8Ch(配置存儲(chǔ)器頁(yè),而不是閃存頁(yè))中的存儲(chǔ)器鎖定位為零。將 00 寫(xiě)入寄存器以清除所有內(nèi)存鎖定位。要寫(xiě)入閃存,請(qǐng)發(fā)送相應(yīng)的命令以進(jìn)入閃存頁(yè)面,加載起始地址(必須與 8 字節(jié)邊界對(duì)齊),然后發(fā)送一系列塊寫(xiě)入命令。閃存以 8 字節(jié)塊編程。有關(guān)SMBus協(xié)議的詳細(xì)信息,請(qǐng)參見(jiàn)MAX16065數(shù)據(jù)資料。
下面是典型閃存編程過(guò)程的偽代碼。
FlashPageOff() UserFlashPageOff() If ReadRegister(8Ch) != 0 Then WriteRegister(8Ch, 00h) FlashPageOn() Loop Address from 30h to 8Dh SetAddress(Address) // Load address WriteBlock(Data, 08h) // Write a block of 8 bytes Wait(150 milliseconds) // Wait for programming SetAddress(Address) ReadBlock(DataRead, 08h) // Read back data block If DataRead != Data Then Fail Else Address = Address + 08h // Advance to next block End Loop FlashPageOff() // Return to default page Success
要使閃存寫(xiě)入操作成功,寫(xiě)入在 8 字節(jié)邊界對(duì)齊的 8 字節(jié)塊非常重要。(地址的三個(gè) LSB 必須為零。
JTAG編程過(guò)程
使用標(biāo)準(zhǔn)的第三方JTAG工具、MAX16065–MAX16068和MAX16070/MAX16071 BSDL文件,以及評(píng)估板軟件生成的SVF數(shù)據(jù)文件,利用JTAG編程電纜或在線PCB測(cè)試儀對(duì)器件進(jìn)行編程。BSDL 文件可供下載。
注意,評(píng)估軟件生成的SVF文件測(cè)試IDCODE寄存器。以下代碼片段來(lái)自MAX16065評(píng)估板軟件生成的SVF文件:
ENDDR IDLE; ENDIR IDLE; SIR 5 TDI(00) TDO(01); SDR 32 TDI(00000000) TDO(18001197);
TDO(18001197) 語(yǔ)句驗(yàn)證完整的 IDCODE 語(yǔ)句,包括設(shè)備修訂代碼。如果設(shè)備與不同的修訂代碼一起使用,則此語(yǔ)句將失敗。
SDR 32 TDI(00000000) TDO(18001197) MASK(0FFFFFFF);
表 2.IDCODE 寄存器位圖
修訂版(4 位) | 部件號(hào)(16 位) | 制造商(11 位) | ||
二元的 | 0001 | 1000 0000 0000 0001 | 00011001011 | 1 |
十六進(jìn)制 | 1 | 8001 | 197 |
表 3.部件 ID 碼寄存器
部分 | 身份碼 |
MAX16065 | _8001197 |
MAX16066 | _8002197 |
MAX16067 | _8003197 |
MAX16070 | _8005197 |
MAX16071 | _8006197 |
MAX16068 | _8004197 |
注意:下劃線表示 4 位修訂代碼。這可能會(huì)發(fā)生變化——請(qǐng)參閱器件數(shù)據(jù)手冊(cè)。
-
閃存
+關(guān)注
關(guān)注
16文章
1771瀏覽量
114766 -
電路板
+關(guān)注
關(guān)注
140文章
4872瀏覽量
97192 -
微處理器
+關(guān)注
關(guān)注
11文章
2244瀏覽量
82267
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論