基于MAX16031系统管理器的在线

基于max16031系统管理器的在线编程设计唐山监控安装
1 引言
目前,很多应用系统均采用总线控制方式实时配置各种寄存器,灵活实现其控制功能,从而全程监控各个参数。典型的总线控制设计方案一基于eeprom的系统监控电路,通过对eeprom进行在线编程,实时配置系统各个控制参数,进而实时监测各种电路参数及故障。
max16031就是一种基于eeprom的系统监控电路,可监测8路电源电压,提供3路温度检测和1路电流监测;每个监测参数与4个不同门限相比较,多路故障指示输出可配置在不同条件下触发报警。这里以max16031为核心,配以相应的辅助电路和灵活的软件设计,通过i2c总线来实现基于max16031的实时监控在线编程功能。
2 硬件设计
max16031内置有一个兼容于smbustm的i2c接口和一个jtag接口,这两个接口均可访问器件的所有寄存器,可编程设置其内部eeprom。
2.1 供电电源
max16031的电源电压范围为3~14 v,通常可将vcc连接至12 v中等电压总线,或连接到3.3 v辅助电源。也可使用外部供电电路对其编程设置,例如使用3.3 v辅助电压(而无需其他电源),或施加12 v中等电压总线,关闭所有下游电源,以避免其他电路施加电源。也可使用常见的双二极管,由编程连接器供电。当max16031由12 v总线供电时,由于二极管会产生压降,因此该供电效果最佳。
2.2 共用总线
当一器件(非&mu)正常工作时需与max16031通信,则存在潜在问题。例如,当系统监控&mu需要访问max16031的ad转换器读数时,外部供电电路掉电或只是部分供电、且max16031正在编程时,挂接在i2c总线的其他器件可能产生干扰。而最简便解决方法是通过jtag接口编程max16031并监控连接到i2c接口的&mu。若&mu支持开漏i2c总线i/o(即未连接至vcc的esd保护二极管的引脚),同时上拉电阻足够大,则在编程和正常工作时共用i2c总线是可行的。如果&mu的i2c总线不是开漏式,esd二极管将箝位总线并会干扰编程。如果系统&mu不具备真正的开漏i2c总线,可采用图1所示电路在&mu和编程i2c总线之间自动切换。
图1中,max4525复用器在连接到系统&mu的i2c和连接到编程测试点上的i2c之间切换。开关由系统&mu的vcc控制。如果采用12 v电源供电,而不是vcc,开关将i2c连接至编程测试点。一旦施加vcc电源,开关将i2c连接至系统&mu。在编程模式下,连接在测试点的编程硬件电路必须提供适当的i2c上拉电阻。
2.3 编程电路
图2所示电路通过12 v中等电压总线向max16031供电,通过双二极管从编程连接器供电。该连接器与max16031的i2c总线连接,并与板上具有开漏i2c输出的系统管理μp共用总线,此时μp并未真正加载到总线上,即便是在上电前。作为外部编程器的替代方案,也可使用系统管理μp在初始上电时,编程设置max16031,可在没有特殊硬件的条件下更新max16031的配置。
3 在线编程
3.1 编程算法
利用max16031的内置eeprom,首先确定编程寄存器的锁定地址;然后加载eeprom的开始地址;利用写入命令在eeprom的开始地址处写入数据;等待i2c总线编程结束后,进入下一个编程循环,如图3所示。
3.2 参数设置
max16031内置eep-rom用于储存器件配置参数。上电后,eeprom的内容被送入ram寄存器。ram和eeprom均通过jtag和i2c接口访问。若要正确编程max16031,则所需参数必须设置在eeprom,图4为max16031的存储器映射。
3.3 在线编程步骤
在编程max16031的eeprom配置内存时,必须首先确定寄存器r5fh[0]上的配置锁定位是否为零;如果不为零,则在该位上写入1将其清零。若要写入eeprom,进入eeprom页面,加载开始地址(97h),然后发送一系列块烧录命令(i2c)。以下为典型eeprom编程过程的伪码:
经上述在线编程后,通过i2c总线即可实时监控各种复杂系统的电压、电流、温度和故障等,同时允许用户自行设置工作范围、上下限、故障输出以及工作模式,并存储相关数据,从而实现更高的灵活性。
4 结束语
该系统设计虽然是针对i2c总线在线编程,但设计方法在总线系统的接口编程设计中具有通用性,对相关的电路设计有一定的参考价值。