编辑: 苹果的酸 | 2019-12-19 |
2014 1 UCD3xxx 数字电源控制器调试工具:内存调试器(Memory Debugger)的详细介绍 Sundy Xu, Neil Li China Telecom Application Team 摘要 边界扫描(JTAG)是一种常用的调试方法,大多数 MCU 都支持 JTAG 调试,比如 TI 数字信号处理 器(DSP)、数字信号控制器(DSC)、以及基于 ARM 架构的处理器等.
JTAG 在电源调试应用中会有很大风险, 因为 JTAG 常常需要中止程序的正常运行去查看寄存器和 变量.这里推荐的 UCD3xxx 主要调试方法是基于通用异步收发器(UART)和电源管理总线 (PMBUS).它们都支持在线调试功能. UART 调试方法比较简单,本文不做论述,可以参考 UCD3xxx 示例代码.对于 PMBUS 调试方法, 使用的主要工具就是内存调试器(Memory Debugger).所以,本文主要详细介绍 Memory Debugger 的使用方法. 目录
1 引言.2 1.1 UCD3xxx 简介
2 1.2 PMBUS 简介.2
2 怎么找到 Memory Debugger.4
3 如何产生 Memory Debugger 需要的.PP 和.MAP 文件.4
4 Memory Debugger 的具体操作
6 4.1 选择.PP 和.MAP 文件.7 4.2 放置变量到监控列表(Watch List)7 4.3 实验演示.7
5 总结.8
6 参考文献.9 图图1. Memory Debugger 界面
2 图2. Memory Debugger 在Fusion Design Online 的位置
3 图3. Memory Debugger 在UCD3xxx &
UCD9xxx Device GUI 的位置
3 图4. 预编译(.PP)文件和地址映射(.MAP)文件的产生
4 图5. 地址映像(.MAP)文件
5 图6. Memory Debugger 变量显示
5 图7. 选择.PP 和.MAP 文件
6 图8. 监控列表(Watch List)视图.7 图9. DPWM 输出最大占空比修改前.8 图10. DPWM 输出最大占空比修改后.8 图11. DPWM 输出最大占空比修改前后的波形.9 ZHCA620
2 UCD3xxx 数字电源控制器调试工具:内存调试器(Memory Debugger)的详细介绍
1 引言 1.1 UCD3xxx 简介 UCD3xxx 系列芯片是 TI 公司开发的专门面向数字电源应用的控制器,主要应用在通讯电源、服务 器电源、无线功放电源以及标准砖模块电源等领域.UCD30xx 系列产品主要是 UCD
3028、UCD3020 以及 UCD3040.最新一代产品是 UCD31xx 系列,主要产品是 UCD
3138、UCD3138064 以及 UCD3138128 等. 图1. Memory Debugger 界面 1.2 PMBUS 简介 PMBUS(电源管理总线)是一种开放标准的数字电源管理协议.可通过定义传输和物理接口以及命 令语言来促进与电源转换器或其他设备的通信.该协议是由一群认为由于没有合适的标准而抑制了全数 字电源管理解决方案发展的电源和半导体生产商共同建立的.目前使用标准是 PMBUS 1.2,PMBUS 1.3 正在制定中. PMBUS 总共可以有
256 条命令,主要有几种:标准命令,是固定的不可改动的,如读取输出电压 命令是 0x8B,那么 0x8B 就不能用做其它命令;
保留命令,留作以后扩展使用;
用户自定义命令,用户 可以根据自己的应用来定义这些命令.具体命列表可以参考文献 1. ZHCA620 UCD3xxx 数字电源控制器调试工具:内存调试器(Memory Debugger)的详细介绍
3 图2. Memory Debugger 在Fusion Design Online 的位置 图3. Memory Debugger 在UCD3xxx &
UCD9xxx Device GUI 的位置 ZHCA620
4 UCD3xxx 数字电源控制器调试工具:内存调试器(Memory Debugger)的详细介绍
2 怎么找到 Memory Debugger Memory Debugger 是德州仪器数字电源设计调试工具 Fusion Digital Power Designer(下载地址: http://www.ti.com/fusiongui,请下载最新版本,早期版本不支持 Memory Debugger 功能)的一部分,主 要用来读写 UCD3xxx 内部全局变量和寄存器的值.Memory Debugger 界面如图
1 所示.如果是第一次 调用 Memory Debugger,需要输入密码 forestln . 那么如何调出 Memory Debugger 工具,有两条途径:一是执行 Fusion Design Online 可执行文件 (桌面直接双击 Fusion Design Online 快捷方式,如果没有创建桌面快捷方式,在开始菜单中找到 Texas Instruments Fusion Digital Power Designer 目录下的 Fusion Digital Power Designer,点击即 可),然后就可以在 Fusion Design Online 上的 Tools 菜单下面找到 Memory Debugger 项,如图
2 所示;
二是执行 UCD3xxx &
UCD9xxx Device GUI 可执行文件(桌面直接双击 UCD3xxx &
UCD9xxx Device GUI 快捷方式,如果没有创建桌面快捷方式,在开始菜单中找到 Texas Instruments Fusion Digital Power DesignerDevice GUIs 目录下的 UCD3xxx &
UCD9xxx Device GUI,点击即可),Memory Debugger 在图
3 红圈处.
3 如何产生 Memory Debugger 需要的.PP 和.MAP 文件 在详细介绍 Memory Debugger 之前,需要介绍 Memory Debugger 所需要的两种文件,预编译 (.PP)文件和地址映像(.MAP)文件.在CCS3.x 中,进入 ProjectBuild Options 选项,按图
4 红框 中所示配置就可以生成所需要的文件.PP 文件主要保存预编译生成的文件,关于预编译的详细内容,可 以参考文献 2.MAP 文件主要是把变量和它的地址都对应起来,如图
5 所示.MAP 文件的其他功能也可 以参考文献 2. 图4. 预编译(.PP)文件和地址映射(.MAP)文件的产生 ZHCA620 UCD3xxx 数字电源控制器调试工具:内存调试器(Memory Debugger)的详细介绍
5 图5. 地址映像(.MAP)文件 图6. Memory Debugger 变量显示 ZHCA620
6 UCD3xxx 数字电源控制器调试工具:内存调试器(Memory Debugger)的详细介绍 为什么 Memory Debugger 需要.PP 和.MAP 文件?Memory Debugger 通过读取.PP 文件可以知道变 量是什么类型:结构体、数组、枚举等;
通过.MAP 文件知道这些变量的地址.在图
5 中,可以看到变 量debug_buffer 和supply_state 的首地址分别是 0x00019054 和00019260.图5中红色虚线是指省略 部分.在图
6 中,红框中是变量 debug_buffer 和supply_state 的地址.debug_buffer 变量是
8 个字节的 数组,如图
6 中红框所示,可以和图
5 地址对照一下,是一样的;
supply_state 是枚举变量,如图
6 绿 框所示,此时 supply_state 变量值是 5,处在 STATE_REGULATED 状态. 图7. 选择.PP 和.MAP 文件
4 Memory Debugger 的具体操作 Memory Debugger 主要使用命令 0xE2 和0xE3 和UCD3xxx 通讯,所以 UCD3xxx 代码需要支持这 两个命令.这两个命令可以直接读取 UCD3xxx 内部程序 FLASH 和数据 FLASH 的值,可以读取或修改 内部 RAM 的值.关于这两个命令的详细代码,请参考文献 3. 图1中绿框所示是切换 Memory Debugger 显示内容,包括显示所有(ALL)、寄存器(Register)、 RAM、程序闪存(PFLASH)以及数据闪存(DFLASH).如果想刷新某个变量,可以点击每个变量右 边的刷新(REFRESH)按钮,如图
1 中粉红框所示. ZHCA620 UCD3xxx 数字电源控制器调试工具:内存调试器(Memory Debugger)的详细介绍
7 4.1 选择.PP 和.MAP 文件 在Memory Debugger 文件菜单下,选择 Change Map…(图1红框所示),会弹出图
7 所示界面. 点击图
7 中红框所示,选择.PP 和.MAP 所在的目录(.PP 和.MAP 需要在同一个文件夹里面).如果不 需要看全局变量,只看寄存器的话,可以不需要执行这一步.因为对于寄存器变量,地址都固定的, Memory Debugger 可以识别这些寄存器.对于变量,每个项目都不一样,即使同一个变量,地址也可能 不同,所以如果看全局变量,需要执行这一步.如果程序没有改动,执行一次就可以一直调试下去, Memory Debugger 会记住上一次的选择的.PP 和.MAP 文件. 图8. 监控列表(Watch List)视图 4.2 放置变量到监控列表(Watch List) 进入 Memory Debugger 界面时,是显示所有的变量和寄存器,如图
1 所示.需要注意的是, UCD3xxx 有些寄存器位是读清除的,所以不能随便读取某个寄存器,需要结合编程手册来看这个寄存器 是否可以读取.为了方便使用,可以把经常需要读取的寄存器和变量加入到监控列表(Watch List),如图8红框所示.在图
1 中,如果我们点击每个变量左边灰色的星号(蓝色框所示),那么就可以把想要 监控的寄存器或变量加入到监控列表中,如图
8 所示.在监控列表中,可以设置自动刷新所监控的寄存 器或变量,自动刷新频率也可以设置,如图
8 绿色方框所示. 4.3 实验演示 把寄存器 Fiter0Regs 放到监控列表,展开后找到 OUTPUT_CLAMP_HIGH,如图
9 所示.初始值 是0x2500.点击 0x2500,输入 0x1250,然后点击右边的 WRITE,写入 UCD3xxx,如图
10 所示. 图11 是DPWM0A/B(Ch1-DPWM0A, Ch2-DPWM0B)的波形,可以看出修改前后 DPWM 的最大 占空比的变化.图11 左边是最大占空比修改前,右边是最大占空比修改后.实验是在 TI 实验板 (UCD3138OL40EVM-032,见文献 4)上验证的,把反馈短接到地,然后把示例代码各种保护屏蔽掉, 那么程序就可以运转起来,环路会一直输出最大占空比. ZHCA620
8 UCD3xxx 数字电源控制器调试工具:内存调试器(Memory Debugger)的详细介绍 图9. DPWM 输出最大占空比修改前 图10. DPWM 输出最大占空比修改后
5 总结 本文主要介绍使用 Memory Debugger 来调试 UCD3xxx.通过本文可以看出,利用 Memory Debugger,可以灵活地监控及修改变量,达到调试的目的. ZHCA620 UCD3xxx 数字电源控制器调试工具:内存调试器(Memory Debugger)的详细介绍
9 图11. DPWM 输出最大占空比修改前后的波形
6 参考文献 1. PMBUS Power System Management Protocol Specification Part II C Command Language, System Management Interface Forum (SMIF), Inc., 2007;
2. SPNU151H - ARM Optimizing C/C++ Compiler v5.0 User'
s Guide, Texas Instruments,
2012 3. UCD3138HSFBEVM-029 Firmware (PWR029_Test_Play_single_frame_bdr), Texas Instruments,
2013 4. SLUUA80 - Using the UCD3138OL40EVM-032 User'
s Guide, Texas Instruments,
2013 5. SLUSAP2C - UCD3138 Highly Integrated Digital Controller for Isolated Power, Texas Instruments,
2013 重 重要 要声 声明 明 德州仪器(TI) 及其下属子公司有权根据 JESD46 最新标准, 对所提供的产品和服务进行更正、修改、增强、改进或其它更改, 并有权根据 JESD48 最新标准中止提供任何产品和服务.客户在下订单前应获取最新的相关信息, 并验证这些信息是否完整且是最新的.所有产品的销售 都遵循在订单确认时所提供的TI 销售条款与条件. TI 保证其所销售的组件的性能符合产品销售时 TI 半导体产品销售条件与条款的适用规范.仅在 TI 保证的范围内,且TI 认为 有必要时才会使 用测试或其它质量控制技术.除非适用法律做出了硬性规定,否则没有必要对每种组件的所有参数进行测试. TI 对应用帮助或客户产品设计不承担任何义务.客户应对其使用 TI 组件的产品和应用自行负责.为尽量减小与客户产品和应 用相关的风险, 客户应提供充分的设计与操作安全措施. TI 不对任何 TI 专利权、版权、屏蔽作品权或其它与使用了 TI 组件或服务的组合设备、机器或流程相关的 TI 知识产权中授予 的直接或隐含权 限作出任何保证或解释.TI 所发布的与第三方产品或服务有关的信息,不能构成从 TI 获得使用这些产品或服 务的许可、授权、或认可.使用 此类信息可能需要获得第三方的专利权或其它知识产权方面的许可,或是 TI 的专利权或其它 知识产权方面的许可. 对于 TI 的产品手册或数据表中 TI 信息的重要部分,仅在没有对内容进行任何篡改且带有相关授权、条件、限制和声明的情况 下才允许进行 复制.TI 对此类篡改过的文件不承担任何责任或义务.复制第三方的信息可能需要服从额外的限制条件. 在转售 TI 组件或服务时,如果对该组件或服务参数的陈述与 TI 标明的参数相比存在差异或虚假成分,则会失去相关 TI 组件 或服务的所有明 示或暗示授权,且这是不正当的、欺诈性商业行为.TI 对任何此类虚假陈述均不承担任何责任或义务. 客户认可并同意,尽管任何应用相关信息或支持仍可能由 TI 提供,但他们将独力负责满足与其产品及在其........