《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > MAX16046–MAX16049 EEPROM可編程系統(tǒng)管理器的在線編程

MAX16046–MAX16049 EEPROM可編程系統(tǒng)管理器的在線編程

2009-01-12
作者:Eric Schlaepfer

?

??? MAX16046–MAX16049 EEPROM可編程系統(tǒng)管理器是電源排序器、監(jiān)測器和裕量調(diào)節(jié)器,可控制多達12路電源。電源由三個數(shù)字比較器監(jiān)測,由可編程DAC輸出調(diào)節(jié)裕量,并且由可編程狀態(tài)引擎對其進行排序。

??? 系統(tǒng)管理器包括兼容于SMBus的I2C接口和一個JTAG接口,這兩個接口均可訪問器件的所有寄存器,編程內(nèi)部配置EEPROM。MAX16046–MAX16049可在線編程,僅需遵守幾條簡單規(guī)則即可。

供電

??? MAX16046–MAX16049的電源電壓范圍為3V至14V。典型應(yīng)用中將VCC連接至12V中等電壓總線或3.3V輔助電源。

??? 可使用局部供電電路板對MAX16046–MAX16049進行編程。例如,可使用3.3V輔助電壓而無需任何其它電源,或者施加12V中等電壓總線。由于此時的系統(tǒng)管理器尚未編程,應(yīng)關(guān)閉所有下游電源。也可以使用常見的雙二極管,從編程連接器供電。由于二極管會產(chǎn)生壓降,所以當(dāng)MAX16046–MAX16049由12V總線供電時,這種方法的工作效果最佳。

??? 如果不使用二極管邏輯“或”電路,而在電路板通電時對MAX16046–MAX16049進行編程,則必須注意排序輸出的狀態(tài),以防止下游電源過早打開。

??? MAX16046–MAX16049在編程之前為高阻輸出。高電平有效的電源使能輸入應(yīng)具有下拉電阻,而低電平有效的電源使能輸入應(yīng)具有上拉電阻。排序輸出可設(shè)置為推挽輸出或開漏輸出。因為開漏配置需要外部上拉電阻,所以只能采用低電平有效的使能輸入。

??? 最好不要將MAX16046–MAX16049連接到JTAG鏈路,因為鏈路中上游器件可能沒有供電,從而阻止對MAX16046–MAX16049的訪問。建議首選JTAG復(fù)用器或?qū)S肑TAG接口。

共用總線

??? 當(dāng)一個器件(而非μP)在正常工作時需要與MAX16046–MAX16049通信時,存在一個潛在問題。例如,當(dāng)系統(tǒng)監(jiān)控μP需要訪問MAX16046的ADC讀數(shù)時。當(dāng)電路板斷電或只是部分供電,并且MAX16046正在編程時,連接到I2C或JTAG總線的其它器件可能產(chǎn)生干擾。最簡便的解決方法是通過JTAG接口編程MAX16046并監(jiān)控連接到I2C接口的μP。若μP支持開漏I2C總線I/O (即沒有連接至VCC的ESD保護二極管的引腳),同時上拉電阻足夠大,在編程和正常工作才共用I2C總線是可行的。如果μP的I2C總線不是開漏式,ESD二極管將箝位總線并會干擾編程。

??? 如果系統(tǒng)μP不具備真正的開漏I2C總線,可采用類似圖1的電路在μP和編程I2C總線之間自動切換。

圖1. MAX16046通過MAX4525復(fù)用器/開關(guān)共用其I2C總線


圖1. MAX16046通過MAX4525復(fù)用器/開關(guān)共用其I2C總線



??? 圖1所示MAX4525復(fù)用器在連接到系統(tǒng)μP的I2C和連接到編程測試點上的I2C之間進行切換。開關(guān)由系統(tǒng)μP的VCC控制。如果采用12V電源供電,而不是VCC供電,開關(guān)將I2C連接至編程測試點。一旦施加VCC電源,開關(guān)將I2C連接至系統(tǒng)μP。

應(yīng)用電路實例

??? 以下示意圖中介紹了用于在線編程的三種不同應(yīng)用電路。

12V中等電壓總線供電,通過I2C總線編程

??? 圖2所示電路通過12V中等電壓總線向MAX16046供電,由模擬使能端EN監(jiān)測。當(dāng)12V總線電壓超過EN端電阻分壓器設(shè)置的門限時,如果器件已經(jīng)編程完畢,則MAX16046嘗試排序。未經(jīng)編程的MAX16046則沒有任何反應(yīng),且排序輸出保持高阻態(tài)。

圖2. MAX16046通過12V中等電壓總線供電并且通過I2C接口編程


圖2. MAX16046通過12V中等電壓總線供電并且通過I2C接口編程



??? 一路電源使用高電平有效的推挽使能控制,而其它電源采用低電平有效的開漏使能控制。當(dāng)未經(jīng)編程的輸出處于高阻態(tài)時,適當(dāng)?shù)纳侠?、下拉電阻可防止電源打開。

??? 需要特別注意的是:推挽式輸出不能上拉到VDBP以上的電壓,開漏輸出不能上拉到6V以上的電壓。I2C連接被引至編程測試點,編程硬件必須提供適當(dāng)?shù)纳侠娮琛T撾娐贩浅:唵?,因為電路板上沒有其它器件需要連接到I2C總線。

3.3V輔助電源供電,通過JTAG復(fù)用器編程

??? 如圖3所示,MAX16046通過3.3V輔助電源供電。用一個DS26900 JTAG復(fù)用器與其它器件共用JTAG連接,該DS26900 JTAG復(fù)用器也由3.3V輔助電源供電。通過3.3V供電時無需施加12V中等電壓總線即可完成編程。

圖3. MAX16046通過3.3V輔助電源供電并通過DS26900 JTAG復(fù)用器編程


圖3. MAX16046通過3.3V輔助電源供電并通過DS26900 JTAG復(fù)用器編程

12V中等總線供電,通過JTAG編程

??? 如圖4所示,MAX16046通過連接到12V中等電壓總線的二極管邏輯“或”電路供電,可以安全供電,不會對下游電路產(chǎn)生影響。JTAG和電源連接被引至編程測試點。

圖4. MAX16046通過一個12V中等電壓總線供電并通過JTAG編程


圖4. MAX16046通過一個12V中等電壓總線供電并通過JTAG編程

編程算法

??? MAX16046–MAX16049具有內(nèi)置EEPROM,用于儲存器件配置參數(shù)。上電后,EEPROM的內(nèi)容被送入RAM寄存器。RAM和EEPROM均可通過JTAG和I2C接口訪問。若要正確編程MAX16046–MAX16049,則所需參數(shù)必須設(shè)置在EEPROM—請參見表1所示存儲器表。


表1. MAX16046存儲器表

?

表1. MAX16046存儲器表



配置文件

??? MAX16046評估板(EV kit)軟件提供兩種類型的配置軟件。一種是通過選擇File Save Configuration As生成的可讀XML文件,該文件可用于I2C編程。另一種是通過選擇File Save as .SVF生成的文件,該文件為連續(xù)矢量格式(SVF),第三方JTAG工具和在線PCB測試可利用該文件進行JTAG編程。

??? XML文件可以在各種web瀏覽器上以彩色編碼的分層格式查看。EV軟件生成的XML文件被分成幾個片段并且包含設(shè)置選項卡信息和寄存器數(shù)據(jù)。有兩個重要部分:包含被加載到EEPROM的配置值的Config_Register部分和包含加載到用戶EEPROM的User_Register部分。

??? 每一部分中,Register標(biāo)簽指定加載到特定地址的值。該寄存器標(biāo)簽的格式為:
    

?

??? 所有值均為十進制。這些地址對應(yīng)RAM寄存器和EEPROM地址。請注意,RAM寄存器0至14為DAC寄存器,而地址0至地址14的EEPROM為保存的故障數(shù)據(jù)。EEPROM編程應(yīng)從地址15開始。

??? 關(guān)于XML文件格式的詳細信息,請訪問
XML Developer Center。

??? SVF文件格式的詳細信息請參考
Serial Vector Format Specification (PDF, 85.2kB)。

I2C編程步驟

??? 在編程MAX16046–MAX16049的EEPROM配置內(nèi)存時,必須首先確定寄存器r5Dh[0]上的配置鎖定位為零。如果不是零,則在該位上寫入“1”將其清零。若要寫入EEPROM,可發(fā)送適當(dāng)命令,進入EEPROM頁面,加載開始地址,然后發(fā)送一系列塊燒錄命令。關(guān)于相應(yīng)I2C協(xié)議的詳細信息,請參閱MAX16046/MAX16048或者MAX16047/MAX16049的數(shù)據(jù)資料。

??? 以下為一個典型EEPROM編程過程的邏輯代碼:
    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

?

??? 若要寫入用戶EEPROM,可采用相同步驟,僅用地址范圍9Ch至FFh代替0Fh至7Dh即可。

JTAG編程步驟

??? 用標(biāo)準(zhǔn)的第三方JTAG工具、MAX16046 BSDL文件和EV軟件生成一個SVF數(shù)據(jù)文件,可通過JTAG編程電纜或在線PCB檢測儀對MAX16046–MAX16049進行編程。BSDL文件可從Maxim網(wǎng)站下載。

?

??? SMBus是Intel Corp.的商標(biāo)。

?

?

?


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。