首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

max16065–max16068和max16070/71闪存配置系统管理器

max16065–max16068和max16070/71闪存配置系统管理器

摘要:MAX16065–MAX16068与MAX16070/MAX16071微处理器监控电路可以在焊接到电路板之后进行编程。这意味着只需存储没有编程的器件,可以在生产测试中写入最新的配置信息。进行一些简单的测量,电子元件邮购网确保应用电路能够通过SMBus™或JTAG总线对硬件编程,并在编程期间为器件供电。本应用笔记介绍了用SMBus和JTAG总线的编程算法。 CRCW2010124RFKEFHP货源
  引言
  MAX16065/MAX16066、MAX16067、MAX16068和MAX16070/MAX16071能够在复杂的多电压供电系统中进行电压排序与监测。利用数字比较器对电源进行监测,通过可编程状态机进行电源排序,表1概括了该系列产品的器件特性。
表1.系统管理器总结


  这些器件包含SMBus兼容接口和JTAG接口,通过这些接口可以访问所有的器件寄存器,并对内部配置闪存进行编程。这些器件都可以在电路编程,只需遵循一些简单的准则,即可在焊接应用电路板之后对器件进行编程。在电路编程还意味着只需存储尚未编程的器件,可以在生产测试中将最新配置信息写入器件。
  供电
  器件的供电范围为2.8V至14V,典型应用中将VCC连接到12V中等电压总线或3.3V辅助电源。
  对于Maxim具有排序输出的系统管理器,可以用部分供电的电路板对器件编程。例如,可以仅使用3.3V辅助电源或12V中等电压总线供电。由于器件尚未进行编程,应关闭所有下游电源。另一选择是采用常见的双二极管,从编程连接器供电。由于二极管存在压降,这种方式比较适合12V总线供电的情况。
  如果没有使用“或”逻辑二极管,系统管理器在编程时由板上电源供电,需要注意顺序输出的状态,以防过早打开下游电源。
  没有编程时,系统管理器具有高阻输出。带高电平有效使能输入的电源应在使能端接下拉电阻;带低电平有效使能输入的电源应在使能端接上拉电阻。顺序输出可以配置成推挽式或开漏式控制,由于开漏式配置需要外接上拉电阻,只能配合低电平有效的使能输入使用。
  不推荐将系统管理器连接到JTAG链路,因为电源可能不会对链路中的上游器件供电,从而切断了器件的访问路径。推荐使用JTAG复用器或特定的JTAG端口。如果系统管理器没有用于控制电源的供电顺序,则可安全地放置在JTAG链路中。
  共享总线
  正常工作时,IC需要与系统管理器进行通信时会产生一些潜在问题。例如,系统监控的微处理器需要读取MAX16065的ADC读数时,如果电路板还没有供电或部分供电,而MAX16065正在编程,连接在SMBus或JTAG总线的其它器件可能产生干扰。最简单的解决方案是通过JTAG接口对MAX16065编程,把监控微处理器连接到SMBus接口。如果微处理器支持真正的开漏SMBus总线I/O (引脚没有连接ESD保护二极管至VCC),如果上拉电阻足够大,编程和常规操作可共用SMBus接口。如果微处理器的SMBus总线不是开漏输出,ESD二极管将会钳位总线并干扰编程。
  系统微处理器没有真正的开漏SMBus总线时,可以使用图1所示电路自动切换微处理器和编程SMBus接口。


图1.通过MAX4525复用器/开关共享系统管理器的SMBus接口
  图1中的MAX4525复用器可以自动连接SMBus总线与系统微处理器,或连接SMBus总线与编程测试点。系统微处理器的VCC控制开关切换。如果没有作用VCC,而是由12V供电,开关将SMBus接口连接到编程测试点。施加VCC后,开关将SMBus总线连接到系统微处理器。
  应用电路举例
  下图给出了设计用于在电路编程的三种不同电路。
  由12V中等电源总线供电,通过SMBus接口编程
  图2电路采用12V中等电源总线对MAX16065供电,通过模拟使能EN信号线监测。当12V总线上升到由EN连接的电阻分压器设定的门限值以上时,已经编程的MAX16065将尝试排序电源输出。没有编程的MAX16065不会有任何动作,排序输出仍然保持高阻抗状态。


图2.MAX16065由12V中等电源总线供电,通过I²C接口编程。
  一路电源采用高电平有效的推挽式使能控制信号,另一路电源采用低电平有效的开漏式使能控制信号。增加适当的上拉、下拉电阻可以防止在未经编程的输出处于高阻态时错误地打开电源。
  重要的是,推挽式输出不能上拉到VDBP以上;开漏输出不能上拉到6V以上。SMBus连接到编程测试点;编程硬件电路必须提供适当的上拉电阻。此电路非常简单,无需其它板上器件即可连接SMBus总线。
  从3.3V辅助电源供电,通过JTAG复用器编程
  图3中,MAX16067由3.3V辅助电源供电,通过DS26900 JTAG复用器与其它器件共用JTAG接口,DS26900也由3.3V辅助电源供电。编程时只需提供3.3V电源,无需打开12V中等电源总线。


图3.MAX16067由3.3V辅助电源供电,通过DS26900 JTAG复用器编程。
  从12V中等电源总线供电,通过JTAG接口编程
  图4所示MAX16066通过连接到12V中等电源总线的二极管“或”逻辑电路供电,可安全加载电源而且不会对下游电路供电,JTAG和电源连接到编程测试点。


图4.MAX16066由12V中等电源总线供电,通过JTAG接口编程。
  编程算法
  Maxim的电源管理器件集成了闪存存储器,用于存储器件的配置参数。电源上电时,闪存中的内容加载到RAM寄存器。RAM和闪存都可通过JTAG或SMBus接口访问。为了正确编程器件,所要求的参数必须编程到闪存存储器内。存储器地址如图5所示。


图5.系统管理器存储器地址
  配置文件
  MAX16065EVKIT软件提供两种配置文件:一种是标准Intel? HEX文件,通过选择File Save As生成,该文件可用于SMBus编程;第二种文件通过选择File Export to SVF File生成,这种矢量格式(SVF)文件用于第三方的JTAG工具和JTAG编程的在电路PCB测试。
  SMBus编程过程
  编程闪存配置存储器时,首先要保证寄存器r8Ch (配置存储器页面,不是闪存页面)的存储器锁存位为零。在该寄存器写入00,清除所有存储器锁存位。将内容写入闪存时,首先要发送正确命令给闪存存储器页,载入初始地址(8字节对齐),发送一系列数据块写指令。闪存按照8字节数据块编程,关于SMBus总线协议的详细信息请参考MAX16065数据资料。
  以下给出了典型的闪存编程代码。
  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
  写入用户闪存存储器时可以使用相同流程,但地址范围是00h至FFh (A0h–AFh保留区除外)。
  为保证成功写入闪存,必须保证写入的8字节数据块对齐8字节边界(地址的3个LSB必须为零)。
  JTAG编程过程
  使用标准的第三方JTAG工具、MAX16065–MAX16068和MAX16070/MAX16071 BSDL文件和估软件生成的SVF数据文件,通过JTAG编程电缆或在电路PCB测试电路对器件编程。BSDL文件可以从网站下载。
  注意,估软件生成的SVF文件用于测试IDCODE寄存器。下列代码来自MAX16065估软件生成的SVF文件:
  ENDDR IDLE;
  ENDIR IDLE;
  SIR 5 TDI(00) TDO(01);
  SDR 32 TDI(00000000) TDO(18001197);
  TDO(18001197)声明检验完整的IDCODE状态,包括器件的修订代码。如果器件使用不同的修订代码,则该声明失效。如果要SVF文件忽略IDCODE寄存器的修订代码,使用如下程序代替:
  SDR 32 TDI(00000000) TDO(18001197) MASK(0FFFFFFF);
  上述声明忽略了4位修订代码(参见表2)。IDCODE对应于每个系统管理器的型号,参见表3。
表2.IDCODE寄存器位图


表3.器件的IDCODE寄存器


  注:下划线代表4位修订代码,可能会更改这些代码—请参考器件数据资料。
返回列表