《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 业界动态 > MAX16046–MAX16049 EEPROM可编程系统管理器的在线编程

MAX16046–MAX16049 EEPROM可编程系统管理器的在线编程

2009-01-12
作者:Eric Schlaepfer

 

    MAX16046–MAX16049 EEPROM可编程系统管理器是电源排序器、监测器和裕量调节器,可控制多达12路电源。电源由三个数字比较器监测,由可编程DAC输出调节裕量,并且由可编程状态引擎对其进行排序。

    系统管理器包括兼容于SMBus的I2C接口和一个JTAG接口,这两个接口均可访问器件的所有寄存器,编程内部配置EEPROM。MAX16046–MAX16049可在线编程,仅需遵守几条简单规则即可。

供电

    MAX16046–MAX16049的电源电压范围为3V至14V。典型应用中将VCC连接至12V中等电压总线或3.3V辅助电源。

    可使用局部供电电路板对MAX16046–MAX16049进行编程。例如,可使用3.3V辅助电压而无需任何其它电源,或者施加12V中等电压总线。由于此时的系统管理器尚未编程,应关闭所有下游电源。也可以使用常见的双二极管,从编程连接器供电。由于二极管会产生压降,所以当MAX16046–MAX16049由12V总线供电时,这种方法的工作效果最佳。

    如果不使用二极管逻辑“或”电路,而在电路板通电时对MAX16046–MAX16049进行编程,则必须注意排序输出的状态,以防止下游电源过早打开。

    MAX16046–MAX16049在编程之前为高阻输出。高电平有效的电源使能输入应具有下拉电阻,而低电平有效的电源使能输入应具有上拉电阻。排序输出可设置为推挽输出或开漏输出。因为开漏配置需要外部上拉电阻,所以只能采用低电平有效的使能输入。

    最好不要将MAX16046–MAX16049连接到JTAG链路,因为链路中上游器件可能没有供电,从而阻止对MAX16046–MAX16049的访问。建议首选JTAG复用器或专用JTAG接口。

共用总线

    当一个器件(而非μP)在正常工作时需要与MAX16046–MAX16049通信时,存在一个潜在问题。例如,当系统监控μP需要访问MAX16046的ADC读数时。当电路板断电或只是部分供电,并且MAX16046正在编程时,连接到I2C或JTAG总线的其它器件可能产生干扰。最简便的解决方法是通过JTAG接口编程MAX16046并监控连接到I2C接口的μP。若μP支持开漏I2C总线I/O (即没有连接至VCC的ESD保护二极管的引脚),同时上拉电阻足够大,在编程和正常工作才共用I2C总线是可行的。如果μP的I2C总线不是开漏式,ESD二极管将箝位总线并会干扰编程。

    如果系统μP不具备真正的开漏I2C总线,可采用类似图1的电路在μP和编程I2C总线之间自动切换。

图1. MAX16046通过MAX4525复用器/开关共用其I2C总线


图1. MAX16046通过MAX4525复用器/开关共用其I2C总线



    图1所示MAX4525复用器在连接到系统μP的I2C和连接到编程测试点上的I2C之间进行切换。开关由系统μP的VCC控制。如果采用12V电源供电,而不是VCC供电,开关将I2C连接至编程测试点。一旦施加VCC电源,开关将I2C连接至系统μP。

应用电路实例

    以下示意图中介绍了用于在线编程的三种不同应用电路。

12V中等电压总线供电,通过I2C总线编程

    图2所示电路通过12V中等电压总线向MAX16046供电,由模拟使能端EN监测。当12V总线电压超过EN端电阻分压器设置的门限时,如果器件已经编程完毕,则MAX16046尝试排序。未经编程的MAX16046则没有任何反应,且排序输出保持高阻态。

图2. MAX16046通过12V中等电压总线供电并且通过I2C接口编程


图2. MAX16046通过12V中等电压总线供电并且通过I2C接口编程



    一路电源使用高电平有效的推挽使能控制,而其它电源采用低电平有效的开漏使能控制。当未经编程的输出处于高阻态时,适当的上拉、下拉电阻可防止电源打开。

    需要特别注意的是:推挽式输出不能上拉到VDBP以上的电压,开漏输出不能上拉到6V以上的电压。I2C连接被引至编程测试点,编程硬件必须提供适当的上拉电阻。该电路非常简单,因为电路板上没有其它器件需要连接到I2C总线。

3.3V辅助电源供电,通过JTAG复用器编程

    如图3所示,MAX16046通过3.3V辅助电源供电。用一个DS26900 JTAG复用器与其它器件共用JTAG连接,该DS26900 JTAG复用器也由3.3V辅助电源供电。通过3.3V供电时无需施加12V中等电压总线即可完成编程。

图3. MAX16046通过3.3V辅助电源供电并通过DS26900 JTAG复用器编程


图3. MAX16046通过3.3V辅助电源供电并通过DS26900 JTAG复用器编程

12V中等总线供电,通过JTAG编程

    如图4所示,MAX16046通过连接到12V中等电压总线的二极管逻辑“或”电路供电,可以安全供电,不会对下游电路产生影响。JTAG和电源连接被引至编程测试点。

图4. MAX16046通过一个12V中等电压总线供电并通过JTAG编程


图4. MAX16046通过一个12V中等电压总线供电并通过JTAG编程

编程算法

    MAX16046–MAX16049具有内置EEPROM,用于储存器件配置参数。上电后,EEPROM的内容被送入RAM寄存器。RAM和EEPROM均可通过JTAG和I2C接口访问。若要正确编程MAX16046–MAX16049,则所需参数必须设置在EEPROM—请参见表1所示存储器表。


表1. MAX16046存储器表

 

表1. MAX16046存储器表



配置文件

    MAX16046评估板(EV kit)软件提供两种类型的配置软件。一种是通过选择File Save Configuration As生成的可读XML文件,该文件可用于I2C编程。另一种是通过选择File Save as .SVF生成的文件,该文件为连续矢量格式(SVF),第三方JTAG工具和在线PCB测试可利用该文件进行JTAG编程。

    XML文件可以在各种web浏览器上以彩色编码的分层格式查看。EV软件生成的XML文件被分成几个片段并且包含设置选项卡信息和寄存器数据。有两个重要部分:包含被加载到EEPROM的配置值的Config_Register部分和包含加载到用户EEPROM的User_Register部分。

    每一部分中,Register标签指定加载到特定地址的值。该寄存器标签的格式为:
    

 

    所有值均为十进制。这些地址对应RAM寄存器和EEPROM地址。请注意,RAM寄存器0至14为DAC寄存器,而地址0至地址14的EEPROM为保存的故障数据。EEPROM编程应从地址15开始。

    关于XML文件格式的详细信息,请访问
XML Developer Center

    SVF文件格式的详细信息请参考
Serial Vector Format Specification (PDF, 85.2kB)。

I2C编程步骤

    在编程MAX16046–MAX16049的EEPROM配置内存时,必须首先确定寄存器r5Dh[0]上的配置锁定位为零。如果不是零,则在该位上写入“1”将其清零。若要写入EEPROM,可发送适当命令,进入EEPROM页面,加载开始地址,然后发送一系列块烧录命令。关于相应I2C协议的详细信息,请参阅MAX16046/MAX16048或者MAX16047/MAX16049的数据资料。

    以下为一个典型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编程步骤

    用标准的第三方JTAG工具、MAX16046 BSDL文件和EV软件生成一个SVF数据文件,可通过JTAG编程电缆或在线PCB检测仪对MAX16046–MAX16049进行编程。BSDL文件可从Maxim网站下载

 

    SMBus是Intel Corp.的商标。

 

 

 


本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。