使用 Hercules™ LaunchPad™ 开发套件控制 GaN 功率级 – 第 2 部分
扫描二维码
随时随地手机看文章
在我的上一篇文章中,我向我们介绍了一个动手项目:使用氮化镓 (GaN) 功率级、Hercules™ 微控制器和滚轮调暗灯。我介绍了设置、设计以及如何以正确的方式驱动功率级。
在这篇文章中,我们将立即尝试我们的工作。我们已验证 LaunchPad™ 开发套件产生了正确的信号。因此,让我们将其连接到评估套件。
准备评估套件并将其连接到 LaunchPad 开发套件
LMG5200 评估模块 (EVM) 带有驱动 GaN 集成电路 (IC) 的电路。我们将解耦那个并连接我们的 LaunchPad 开发套件。
图 1:移除电阻器 R6 和 R7
去耦板载驱动电路并不难。我们只需从印刷电路板(PCB,参见图 1 和图 2)上移除两个 0Ω 电阻器 R6 和 R7。最简单的方法是使用热风枪。
图 2:电阻器 R6 和 R7 的 PCB 位置
我们现在有了测试点 TP9 和 TP10,可将 LaunchPad 的脉宽调制 (PWM) 输出连接到 LMG5200。在这种情况下,哪个信号与哪个测试点相关联并不重要。不要忘记进行接地连接(参见图 3)。
图 3:PWM 信号的位置
按照用户指南中的说明连接电源和偏置电压。将灯连接到输出。如果我们按照评估套件用户指南中的说明为设计上电(首先是偏置电压,然后是 Hercules 信号,然后是电源),我们将获得一个驱动至其最大功率 10% 的设置。此时,我们可以通过更改 HALCoGen 中的占空比来更改输出并重新生成项目。这不是很方便,所以让我们研究一个用户友好的输入机制。
制作旋转编码器
正交编码器无处不在。它们看起来像电位器,但你可以永远转动它们。我们的汽车音响系统可能有一个,或者我们的示波器。如果我们身边有一个死机鼠标,那么滚轮很可能是一个旋转编码器。
(如果你不走运,你的死鼠标有一个光学滚轮;你不能在今天的练习中使用那个。寻找另一只鼠标,或订购一个类似于组件 EC101102X2E-VAX 的鼠标。)旋转编码器是什么并不重要我们使用或它有多少步骤。它们都产生格雷码。
我们需要四个额外的组件才能将轮子变成稳定的去抖动输入设备:两个 10K 电阻器和两个 0.5µF 电容器。如果我们无法在实验室中找到准确的值,请不要绝望。它们根本不重要。
构建旋转编码器电路并将其连接到 LaunchPad 开发套件
图 4 说明了如何构建电路。
图 4:编码器电路
这两个电阻是上拉电阻。当旋转编码器开关打开时,它们将 A 端 B 保持为高电平。当这些开关中的任何一个闭合时,相应的输出会被开关拉至地。电容器使信号平滑并滤除任何弹跳。
我们将使用带有滚轮的 Hercules eQEP 外围设备(正交编码器)。2 号 EQEP 模块靠近我们已经用于 ePWM 输出的引脚。因此,将滚轮连接到它,如表 1 和图 5 所示。
表 1:旋转编码器连接
图 5:编码器信号的位置
连接好编码器后,我们可以前往 HALCoGen 并调整我们的固件。
在固件中集成滚轮
此时所有硬件都已连接。但是我们仍然必须构建滚轮功能。在 Hercules 世界中,我们必须做两件事:在 HALCoGen 中配置 eQEP 模块,并在 Code Composer Studio™ 软件中调整我们的程序。
在固件中集成编码器功能
启用 eQEP 驱动程序并配置 eQEP 模块 2(图 6 和 7)。HALCoGen 设置可能看起来很神奇,但我的element14 博客解释了它们。
图 6:启用编码器模块 2
图 7:配置编码器 2
在 Code Composer Studio 软件中初始化驱动程序。在我们的状态机中,我们将定期轮询车轮的值并对更改做出反应。根据旋转编码器的状态减少或增加 PWM 信号的占空比。请参阅rotate.c、pwm.c 和HL_sys_main.c 文件以了解所有这些是如何联系在一起的。
虽然(1)
{
uRotary = getRotaryPosition();
if (uRotary != uRotaryLastVal) {
uRotaryLastVal = uRotary;
setPwmDutyCycle(uRotary);
}
}
滚轮的代码也不难。在此设计中,我们不希望编码器超出最大值或最小值。你可以查看rotary.c 看看我是如何编码的。它有效,但我对处理解码的设计并不完全满意。随意加入并构建更好的实现。