MAX16046–MAX16049系統(tǒng)管理器焊接到應(yīng)用電路板后即可編程。這意味著只需要庫(kù)存未編程的設(shè)備,并且可以在制造測(cè)試期間將最新版本的配置信息寫(xiě)入設(shè)備。一些簡(jiǎn)單的措施可確保應(yīng)用電路允許編程硬件共享I2C或JTAG總線,并在編程期間為器件供電。為I2C總線和JTAG總線提供編程算法。
MAX16046–MAX16049 EEPROM可編程系統(tǒng)管理器是電源排序器、監(jiān)視器和裕量器,可控制多達(dá)12個(gè)電源。電源由三個(gè)數(shù)字比較器監(jiān)控,由可編程DAC輸出裕量調(diào)節(jié),并通過(guò)可編程狀態(tài)機(jī)進(jìn)行排序。
這些系統(tǒng)管理器包括一個(gè)SMBus?兼容的I2C接口和一個(gè)JTAG接口,這兩個(gè)接口都可以訪問(wèn)所有器件寄存器并對(duì)內(nèi)部配置EEPROM進(jìn)行編程。MAX16046–MAX16049是在線可編程的,只要遵循一些簡(jiǎn)單的準(zhǔn)則即可。
提供電力
MAX16046–MAX16049具有3V至14V的電源電壓范圍。典型應(yīng)用連接 V抄送至 12V 中間總線電壓或 3.3V 輔助電源。
可以使用部分上電板對(duì)MAX16046–MAX16049進(jìn)行編程。例如,可以在沒(méi)有任何其他電源的情況下施加3.3V輔助電壓,或者可以施加12V中間總線電壓;所有下游電源都應(yīng)關(guān)閉,因?yàn)榇藭r(shí)未對(duì)系統(tǒng)管理器進(jìn)行編程。另一種選擇是使用常用的雙二極管,以允許從編程連接器供電。由于二極管引起的壓降,當(dāng)MAX16046–MAX16049由12V總線供電時(shí),這種方法效果最好。
如果不使用二極管OR-ing,并且MAX16046–MAX16049在電路板上供電進(jìn)行編程,則必須特別注意時(shí)序輸出的狀態(tài),以防止任何下游電源過(guò)早導(dǎo)通。
未編程時(shí),MAX16046–MAX16049具有高阻輸出。具有高電平有效使能輸入的電源應(yīng)具有下拉電阻,具有低電平有效使能輸入的電源應(yīng)具有上拉電阻。排序輸出可配置為推挽式或漏極開(kāi)路。由于漏極開(kāi)路配置需要一個(gè)外部上拉電阻,因此應(yīng)僅與低電平有效使能輸入配合使用。
不建議將MAX16046–MAX16049連接到JTAG鏈中,因?yàn)殡娫纯赡懿粫?huì)施加到鏈路中的上游器件,從而有效地切斷了對(duì)MAX16046–MAX16049的訪問(wèn)。相反,首選JTAG多路復(fù)用器或?qū)S肑TAG端口。
共享巴士
當(dāng)μP以外的器件在正常工作期間需要與MAX16046–MAX16049通信時(shí),會(huì)出現(xiàn)潛在問(wèn)題。例如,當(dāng)系統(tǒng)監(jiān)控μP需要訪問(wèn)MAX16046的ADC讀數(shù)時(shí)。當(dāng)電路板未上電或部分上電且MAX16046正在編程時(shí),連接到I2C或JTAG總線的其他器件可能會(huì)產(chǎn)生干擾。最簡(jiǎn)單的解決方案是通過(guò)JTAG接口對(duì)MAX16046進(jìn)行編程,并將監(jiān)控μP連接到I2C接口。如果μP支持真正的漏極開(kāi)路I2C總線I/O(即引腳缺少ESD二極管至V抄送),并且上拉電阻足夠大,可以共享I2C總線進(jìn)行編程和正常工作。如果μP的I2C總線不是漏極開(kāi)路,ESD二極管將箝位母線并干擾編程。
如果系統(tǒng)μP沒(méi)有真正的漏極開(kāi)路I2C總線,則可以使用圖1所示的電路在μP和編程I2C總線之間自動(dòng)切換。
圖1.MAX16046通過(guò)MAX4525多路復(fù)用器/開(kāi)關(guān)共享I2C總線。
圖4525所示的MAX1多路復(fù)用器在連接到系統(tǒng)μP的I2C和連接到編程測(cè)試點(diǎn)的I2C之間切換。開(kāi)關(guān)由 V 控制抄送系統(tǒng)μP。如果 V抄送不施加,但12V,開(kāi)關(guān)將I2C連接到編程測(cè)試點(diǎn)。一次 V抄送施加,開(kāi)關(guān)將I2C連接到系統(tǒng)μP。
應(yīng)用電路示例
下圖顯示了為在線編程設(shè)計(jì)的三種不同的應(yīng)用電路。
由12V中間總線供電,并通過(guò)I2C總線編程
圖2電路通過(guò)16046V中間總線為MAX12供電,中間總線由模擬使能線EN監(jiān)視。當(dāng)12V總線上升到EN上電阻分壓器設(shè)定的門(mén)限以上時(shí),MAX16046嘗試排序(如果已編程)。未編程的MAX16046不執(zhí)行任何操作,時(shí)序輸出保持在高阻電平。
圖2.MAX16046由12V中間總線供電,通過(guò)I2C接口編程。
一個(gè)電源使用高電平有效推挽使能信號(hào),另一個(gè)電源使用低電平有效漏極開(kāi)路使能信號(hào)。適當(dāng)?shù)纳侠拖吕娮杩煞乐惯@些電源在未編程輸出處于高阻抗電平時(shí)導(dǎo)通。
需要注意的是,推挽輸出不能上拉到V以上DBP,并且漏極開(kāi)路輸出不能被拉高到6V以上。I2C連接被引入編程測(cè)試點(diǎn);編程硬件必須提供適當(dāng)?shù)纳侠娮?。電路很?jiǎn)單,因?yàn)殡娐钒迳蠜](méi)有其他器件需要連接到I2C總線。
由3.3V輔助電源供電,并通過(guò)JTAG多路復(fù)用器編程
圖3所示,MAX16046從3.3V輔助電源供電。JTAG連接使用DS26900 JTAG多路復(fù)用器與其他器件共享,該多路復(fù)用器也由3.3V輔助電源供電。編程可通過(guò)提供3.3V電壓來(lái)完成,而無(wú)需為12V中間總線上電。
圖3.MAX16046由3.3V輔助電源供電,通過(guò)DS26900 JTAG多路復(fù)用器進(jìn)行編程。
由12V中間總線供電,通過(guò)JTAG編程
圖4所示為MAX16046通過(guò)二極管OR連接到12V中間總線供電,無(wú)需任何下游電源上電即可安全供電。JTAG和電源連接被帶到編程測(cè)試點(diǎn)。
圖4.MAX16046由12V中間總線供電,通過(guò)JTAG編程。
編程算法
MAX16046–MAX16049內(nèi)置EEPROM,用于存儲(chǔ)器件配置參數(shù)。接通電源后,EEPROM的內(nèi)容被傳輸?shù)?a href="http://www.ttokpm.com/tags/ram/" target="_blank">RAM寄存器。RAM和EEPROM都可以從JTAG和I2C接口訪問(wèn)。為了正確編程MAX16046–MAX16049,必須根據(jù)EEPROM編程所需的參數(shù)——參見(jiàn)表1中的存儲(chǔ)器圖。
表 1.MAX16046存儲(chǔ)器映射
配置文件
MAX16046評(píng)估板(EV kit)軟件提供兩種類(lèi)型的配置文件。一個(gè)是通過(guò)選擇“文件將配置另存為”生成的人類(lèi)可讀的 XML 文件。此文件可用于I2C編程。第二個(gè)是通過(guò)選擇“文件另存為”生成的。儲(chǔ)值支付工具。該文件采用串行矢量格式(SVF),由第三方JTAG工具和在線PCB測(cè)試儀用于JTAG編程。
XML文件可以在許多Web瀏覽器中以顏色編碼的分層格式查看。評(píng)估板軟件生成的XML文件分為幾個(gè)部分,包含設(shè)置標(biāo)簽信息和寄存器數(shù)據(jù)。有兩個(gè)感興趣的部分:Config_Register部分,其中包含可加載到 EEPROM 中的配置值,以及User_Register部分,其中包含要加載到用戶 EEPROM 中的值。
在每個(gè)部分中,寄存器標(biāo)記指定要加載到特定地址的值。寄存器標(biāo)簽的格式如下:
所有值均為十進(jìn)制。這些地址對(duì)應(yīng)于RAM寄存器和EEPROM地址。請(qǐng)注意,RAM 寄存器 0 到 14 是 DAC 寄存器,但地址 0 到地址 14 的 EEPROM 是保存的故障數(shù)據(jù)。EEPROM 編程例程應(yīng)從地址 15 開(kāi)始。
I2C編程程序
要對(duì)MAX16046–MAX16049的EEPROM配置存儲(chǔ)器進(jìn)行編程,首先需要確保寄存器r5Dh[0]中的配置鎖緊位為零。如果它不為零,則在該位上寫(xiě)一個(gè)“1”以清除它。要寫(xiě)入EEPROM,請(qǐng)發(fā)送相應(yīng)的命令進(jìn)入EEPROM頁(yè)面,加載起始地址,并發(fā)送一系列塊寫(xiě)入命令。有關(guān)I2C協(xié)議的詳細(xì)信息,請(qǐng)參見(jiàn)MAX16046/MAX16048或MAX16047/MAX16049數(shù)據(jù)資料。
典型EEPROM編程過(guò)程的偽代碼如下:
SendByte(5Dh) // Check lock bit If ReadByte() & 2 == 2 Then WriteByte(5Dh, 02h) // Clear lock bit if needed SendByte(9Ah) // Access EEPROM page Loop Address from 0Fh to 7Dh SendByte(Address) // Load address WriteBlock(Data, 10h) // Write a block of 16 bytes Wait(16 * 11 milliseconds) // Wait for programming SendByte(Address) ReadBlock(DataRead, 10h) // Read back data block If DataRead != Data Then RepeatCount = RepeatCount + 1 If RepeatCount == 3 Then Fail Else RepeatCount = 0 Address = Address + 10h // Advance to next block SendByte(9Bh) // Return to default page Success
要寫(xiě)入用戶EEPROM,可以使用相同的過(guò)程,但地址范圍為9Ch至FFh,而不是0Fh至7Dh。
JTAG編程過(guò)程
要對(duì)器件進(jìn)行編程,請(qǐng)使用標(biāo)準(zhǔn)的第三方JTAG工具、MAX16046–MAX16049 BSDL文件以及評(píng)估板軟件通過(guò)JTAG編程電纜或在線PCB測(cè)試儀生成的SVF數(shù)據(jù)文件。BSDL 文件可供下載。
注意,評(píng)估軟件生成的SVF文件測(cè)試IDCODE寄存器。以下代碼片段來(lái)自MAX16046評(píng)估板軟件生成的SVF文件:
ENDDR IDLE; ENDIR IDLE; SIR 5 TDI(00) TDO(01); SDR 32 TDI(00000000) TDO(10001197); TDO(10001197) 語(yǔ)句驗(yàn)證完整的 IDCODE 語(yǔ)句,包括設(shè)備修訂代碼。如果設(shè)備與不同的修訂代碼一起使用,則此語(yǔ)句將失敗。要使 SVF 文件忽略 IDCODE 寄存器的修訂代碼字段,請(qǐng)改用以下行:SDR 32 TDI(00000000) TDO(10001197) MASK(0FFFFFFF);
mask 語(yǔ)句忽略 4 位修訂代碼字段(請(qǐng)參閱表 2)。
修訂版(4 位) | 部件號(hào)(16 位) | 制造商(11 位) | |
二元的 | 0001 | 0000 0000 0000 0001 | 00011001011 1 |
十六進(jìn)制 | 1 | 0001 | 197 |
審核編輯:郭婷
-
電源
+關(guān)注
關(guān)注
184文章
17193瀏覽量
247754 -
JTAG
+關(guān)注
關(guān)注
6文章
393瀏覽量
71424 -
總線
+關(guān)注
關(guān)注
10文章
2817瀏覽量
87697
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論