设计数字电源:如何编写固件
扫描二维码
随时随地手机看文章
我以德州仪器 (TI) 的UCD3138为例介绍了如何设计数字电源 ,并重点介绍了硬件设计。在本期中,我将解释如何编写固件以使其工作。
固件
与模拟电源转换器设计通过硬件控制一切不同,固件是数字控制的“灵魂”;几乎所有主要功能都是通过代码实现的。由于代码受到实时限制,中央处理器 (CPU) 带宽有限,因此具有组织良好的固件结构非常重要。
我们可以将 CPU 处理的任务分为两类:时间关键型和非时间关键型。时间关键任务包括 ADC 测量、环路控制、系统保护和状态机。非时间关键任务通常包括 PMBus/通用异步接收器/发送器 (UART) 通信、故障记录等。
基于这两类,固件分为两个主要部分:中断循环,处理时间关键的任务;以及处理非时间关键任务的后台循环。图 1 说明了固件结构:
图 1:固件结构
后台循环的框图很简单:系统初始化后,CPU进入无限循环。所有非时间关键的任务都在这个循环中执行。同时,定时器会产生固定频率的中断。如果任何时候有中断,CPU 会停止它正在做的事情,存储所有相关数据并跳转到中断程序。一旦中断例程完成,CPU 就会回到后台循环并从它停止的地方继续。
中断循环更复杂。它测量 ADC 输入、控制转换器并负责系统保护。中断循环的关键部分是状态机,它指示转换器的当前状态,转换器在这个状态下需要做什么,转换器接下来应该做什么。图 2 是一个简单的状态机示例:
图 2:状态机图
CPU 继续监视输入电压。一旦输入电压超过预定义阈值,转换器就会开启并开始执行软启动,而输出电压会线性增加,直到达到设定点。一旦输出电压达到该设定点,转换器就会进入调节模式,它将一直停留到发生故障或被命令关闭。如果在任何时候发生故障,转换器将关闭并锁定,除非被命令重新启动。
使用图形用户界面
TI 的 Fusion Digital Power Designer 图形用户界面 (GUI) 简化了由UCD3138控制的电源转换器设计。通过 PMBus 与 GUI 对话,我们可以实时监控电源运行状态、配置运行参数和调整控制回路。
GUI 支持最流行的拓扑结构,包括 PFC、LLC 和相移全桥。不同的拓扑将有不同的 GUI 界面。固件中的设置 ID 告诉 GUI 拓扑是什么,以便它打开一个接口来适应该拓扑。图 3 显示了 PFC 转换器的 GUI:
Figure 3: UCD3138 GUI
沟通
数字控制器可以监控转换器并与主机通信;反过来,主机可以向转换器发送命令,以执行诸如输出电压调整、上电排序、远程开/关控制等任务。在隔离式 AC/DC 应用中,PFC 后跟隔离式 DC /DC转换器,UART用于PFC与DC/DC之间的通信,PMBus用于DC/DC与负载/主机之间的通信,如图4所示。
图 4:隔离 AC/DC 系统中的通信
对于PFC和DC/DC之间的UART通信,目前还没有行业标准协议;但是,UCD3138团队已经开发了一个完整的主/次通信协议示例,可供使用。
希望现在我们对如何设计数字控制电源有了大致的了解。尽管我在本系列中给出的设计示例基于升压转换器,但同样的设计原则也适用于其他拓扑。功率级与模拟解决方案相同,但控制实现不同:一个是通过代码实现,可以动态改变,另一个是硬件实现,是固定的。固件开发在数字转换器设计中需要大量工作。编写代码对模拟工程师来说可能是一个挑战,但是一旦你习惯了它,你就会享受到数字电源的优势。