在前一篇文章里,Roland 在给大家的演示中使用了一个自制的汽车冷启动电池电压波形发生器,它的作用是要模拟出车辆启动时的电池电压跌落。
使对车用电子设备电源系统的测试可以在很简单的条件下就能顺利进行,同时付出的成本又很低,不用去准备那些昂贵的设备。这个发生器是怎样制作出来的呢?本文对此进行揭秘,希望能帮到有同样需求的朋友们。
上图展示的信息很全面,左侧方框里的部分就是这个波形发生器的总体结构,它由一个具有大电流输出能力的 Buck 转换器和一块 Arduino Nano 控制板构成;右侧的部分是需要测试的电路部分,它们通常位于你要测试的电子设备里面。
RT8131B 是一款工作电压为 5V 的电流模式 Buck 控制器,它可将 5.5V~26.5V 的输入电压转换为 4.5V~22V 的输出电压,而负载电流则可因所用外围器件的不同而不同,我们只需根据应用的需求来做外围电路设计即可,下图是 RT8131B 的规格书所提供的参考电路图:
当我们要制作一个信号发生器的时候,让它具有很大的负载能力是很重要的,这时候就要设定比较高的过流限制阈值,RT8131B 是通过在上电阶段经 LGATE 引脚输出一个电流来测量它流过电阻 ROCSET 时形成的电压来获得你所设定的电流限制阈值的。
所以你可以根据需要和规格书里提供的信息来确定 ROCSET 的值。RT8131B 的第 7 引脚是 COMP 和 EN 共用的,只要该端子的电压低于 0.3V,RT8131B 就会进入关机状态,图中与该端子连接的 MOSFET 就是用来实现使能控制的。
设计中如果不需要使用该功能,这颗 MOSFET 就不需要出现,RT8131B 就会在一加电以后就进入工作状态,而它工作的目标就是要让其反馈端 FB 处的电位与其内部参考电压相等,这个特性也正是可被我们利用来完成波形生成的原因。RT8131B 的 VCC 供电电压为 5V,假如我们只有一个输入可用,此时就可以用一颗线性稳压器来满足这一需求,立锜有很多最高工作电压为 36V 器件可供选择。
另外也可以如下图这样来做,一颗 5.6V 的稳压二极管作为三极管的基极参考电压,到了发射极后得到的输出电压就很接近 5V,用它给 RT8131B 供电还是很靠谱的,其供电能力也很充足。
此图实际上就是 Roland 在制作的时候使用的,其中还包括了把 Arduino Nano 的输出引入其中的接口。Arduino Nano 是很多创客都在使用的一块很小的控制板,它的各个版本使用的都是 Maxim 出品的 8 位 MCU,其长相如下图所示:
你可以把它想象为就是一颗 MCU,但是引脚都被连接到两排插脚上了,这样可以直接插到面包板上使用,搭建应用电路时会非常方便。但更方便的是这颗 MCU 的通讯接口通过一个转换芯片被转换为可以通过 USB 总线进行传输的信号。
你可以在 PC 上使用类似 C 语言的高级语言进行编程,然后通过这个接口将设计好的程序下载到 Arduino Nano 板上 MCU 的 Flash 存储器里存储起来并运行,这样就可以让它去执行各种控制任务了。
Arduino Nano 各个插脚的名称,其中以 D 开头的信号端子都是数字信号接口,以 A 开头的信号端子都是模拟信号接口。这些端子其实都是从板上 MCU 直接引出来的,下面的图片将每个端子的所有可能名称都列了出来:
一个端子有多个名称,实际上是说这个端子可以有多个用处,但实际使用的时候你只能使用其中的一个,一旦选定就不能随意更改,否则带来的麻烦就很大了,这既涉及到软件的配合,也有硬件的适应性问题。我们要制作的波形发生器需要借助 Arduino Nano 的 PWM 信号生成能力,同时也需要通过按键来选择输出信号的特性,所以是这样来连接电路的:
我们利用 Arduino Nano 的 D5 引脚输出 PWM 信号(其他几个端子的作用是:D6 驱动 LED 以指示输出的状态;D3 用 S2 的输入选择单次信号输出;
D2 用 S1 的输入选择连续多次信号输出 ),这个信号经过低通滤波器处理以后会变成比较平滑的电压波形,我们将用它去对RT8131B 的输出进行调制,使我们能得到尽可能接近如下图所示的输出电压波形:
这个波形以及相关的数据来自 ISO 16750-2,由于不同条件下的电压跌落深度不同,所以我们在前面的电路中使用可变电阻来对调制的深度进行调节。由于 Arduino Nano 的输出信号引入 RT8131B 的位置是其反馈端 FB,所以引入信号的变化方向和 RT8131B 输出信号的变化方向实际上是相反的,你用叠加原理就可以很好地理解。因此,我们想得到上图所示的输出时,Arduino Nano 输出的 PWM 信号的包络应该如下图所示的样子:
你当然可以把参数再进一步细化去更好的接近标准,但在实际上可能并不需要那么精细,重点关注电压跌落的深度和时长大概就已经够用了,这会涉及到系统的断电重启过程,前一篇文章已经提到了,这里不再做更多的探讨。
按照这些参数生成的 PWM 信号还要经过 RC 电路构成的低通滤波器才会被注入 Buck 转换器的反馈回路,所以实际进入系统的信号会将上述波形中的高频成分滤除掉,最终的波形将变得非常平滑。为了按照前述信息生成相应的 PWM 信号并实现既定的按键控制措施,很重要的就是对 Arduino Nano 进行编程控制,下面是相应的控制代码,其中的注解部分明确说明了它是 Roland 的作品。
只要你对软件设计稍有了解,上述程序就是很容易被理解的。在理解的基础之上,你想对其进行修改也很容易,那样你就可以制作自己想要的波形了,即使过去没有什么经验的人也可以很容易地上手,所以我觉得能接触到这些信息的人都是有福的,至少我是有这种感觉的,我希望我们的读者也能有此感觉,让我们都感受到幸福。
写作本文所利用的资料有立锜官网可以查阅到的应用笔记 AN066 和 RT8131B 的规格书,另外也有网络上普遍存在的 Arduino Nano 的资料,有疑问的读者可以留言,我们可以进行更多的交流。
编辑:jq
全部0条评论
快来发表一下你的评论吧 !