如何构建一个数字控制器

控制/MCU

1814人已加入

描述

单相交流电机通常用于诸如风扇之类的家用物品中,当使用多个离散绕组来设定速度时,它们的速度可以很容易地控制。在本文中,我们构建了一个数字控制器,允许用户控制电机速度和运行时间等功能。本文还包括一个支持 NEC 协议的红外接收器电路,其中电机可以通过按钮或红外发射器接收的信号进行控制。

为此,GreenPAK™ SLG46620 IC 用作负责这些不同功能的基本控制器:用于激活一种速度(三种速度中的一种)的多路复用电路、3 周期倒数计时器和接收信号的红外解码器外部红外信号,提取并执行所需命令。

如果我们看一下电路的功能,我们会注意到同时使用了几个离散的功能:多路复用、定时和 IR 解码。由于在单个 IC 中缺乏可用的独特解决方案,制造商经常使用许多 IC 来构建电子电路。GreenPAK IC 的使用使制造商能够使用单个芯片来包含许多所需的功能,从而降低系统成本和制造监督。

该系统及其所有功能都经过测试,以确保正常运行。最终电路可能需要针对所选电机进行特殊修改或附加元件。

为了检查系统是否正常运行,在 GreenPAK 设计器仿真器的帮助下生成了输入测试用例。仿真验证输出的不同测试用例,并确认 IR 解码器的功能。最终设计还用实际电机进行了测试以确认。

三速交流风扇电机

三速交流电机是由交流电驱动的单相电机。它们通常用于各种家用机器,例如各种类型的风扇(壁扇、台扇、箱扇)。与直流电机相比,交流电机的速度控制相对复杂,因为必须改变输送电流的频率才能改变电机速度。风扇和制冷机等电器通常不需要细粒度的速度,但需要低、中、高速等离散步骤。对于这些应用,交流风扇电机有几个内置线圈,设计用于多种速度,通过为所需速度的线圈通电来实现从一种速度到另一种速度的变化。

我们在这个项目中使用的电机是一个 3 速交流电机,它有 5 根线:3 根线用于速度控制,2 根线用于电源和一个启动电容器,如下图 2 所示。一些制造商使用标准颜色编码的电线进行功能识别。电机的数据表将显示特定电机的电线识别信息。

解码器

项目分析

在本文中,GreenPAK IC 配置为执行从红外发射器或外部按钮等来源接收的给定命令,以指示以下三个命令之一:

On/Off:系统在每次解释此命令时打开或关闭。On/Off 的状态将随着 On/Off 命令的每个上升沿而反转。

定时器:定时器运行 30、60 和 120 分钟。在第四个脉冲时,定时器关闭,定时器周期恢复到原来的定时状态。

速度:控制电机的速度,从电机的速度选择线 (1,2,3) 连续迭代激活的输出。

红外解码器

IR 解码器电路用于接收来自外部 IR 发射器的信号并激活所需的命令。我们采用 NEC 协议是因为它在制造商中很受欢迎。NEC协议使用“脉冲距离”对每一位进行编码;使用 38 kHz 频率载波的信号传输每个脉冲需要 562.5 us。逻辑 1 信号的传输需要 2.25 ms,而逻辑 0 信号的传输需要 1.125 ms。图 3 说明了根据 NEC 协议的脉冲串传输。它由 9 ms AGC 突发,然后是 4.5 ms 空间,然后是 8 位地址,最后是 8 位命令组成。注意地址和命令传输两次;第二次是 1 的补码(所有位反转)作为奇偶校验,以确保接收到的消息是正确的。

解码器

GreenPAK 设计

IC 设计是在免费的基于 GUI 的GreenPAK Designer 软件中构建的。完整的设计文件可以在这里找到。

接收到的消息的相关位在几个阶段被提取。首先,使用 CNT2 和 2 位 LUT1 从 9ms AGC 突发指定消息的开头。如果检测到这一点,则通过 CNT6 和 2L2 指定 4.5ms 空间。如果报头正确,则 DFF0 输出设置为高电平以允许接收地址。块 CNT9、3L0、3L3 和 P DLY0 用于从接收到的消息中提取时钟脉冲。该位值取自 IR_CLK 信号的上升沿,距 IR_IN 上升沿 0.845ms。

然后使用 2LUT0 将解释的地址与存储在 PGEN 中的地址进行比较。2LUT0 为异或门,PGEN 存储取反后的地址。PGEN 的每一位依次与输入信号进行比较,每次比较的结果与 IR-CLK 的上升沿一起存储在 DFF2 中。

如果在地址中检测到任何错误,则 3 位 LUT5 SR 锁存器输出变为高电平,以防止比较消息的其余部分(命令)。如果接收到的地址与 PGEN 中存储的地址匹配,则消息的后半部分(命令和反转命令)被定向到 SPI,以便可以读取和执行所需的命令。CNT5 和 DFF5 用于指定地址的结束和命令的开始,其中 CNT5 的“计数器数据”等于地址的 18:16 脉冲以及前两个脉冲(9ms、4.5ms)。

如果完整地址(包括标题)已正确接收并存储在 IC 中(在 PGEN 中),则 3L3 或门输出向 SPI 的 nCSB 引脚提供低电平信号以被激活。SPI 因此开始接收命令。

解码器

SLG46620 IC 有 4 个 8 位长度的内部寄存器,因此可以存储四个不同的命令。DCMP1 用于将接收到的命令与内部寄存器进行比较,并设计了一个 2 位二进制计数器,其 A1A0 输出连接到 DCMP1 的 MTRX SEL#0 和#1,以将接收到的命令依次连续地与所有寄存器进行比较。

使用 DFF6、DFF7、DFF8 和 2L5、2L6、2L7 构建了带锁存器的解码器。该设计操作如下;如果A1A0=00,则将 SPI 输出与寄存器 3 进行比较。如果两个值相等,则 DCMP1 在其 EQ 输出端给出高电平信号。由于A1A0=00,这将激活 2L5,因此 DFF6 会输出一个高电平信号,表示已接收到信号 On/Off。同样,对于其余的控制信号,CNT7 和 CNT8 配置为“双沿延迟”以产生时间延迟,并允许 DCMP1 在输出值被 DFF 保持之前改变其输出状态。

On/Off 命令的值存储在寄存器 3 中,定时器命令存储在寄存器 2 中,速度命令存储在寄存器 1 中。

解码器

速度多路复用器

为了切换速度,构建了一个 2 位二进制计数器,其输入脉冲由连接到 Pin4 的外部按钮或来自命令比较器通过 P10 的 IR 速度信号接收。在初始状态Q1Q0 =11时,通过从 3 位 LUT6 对计数器的输入施加脉冲,Q1Q0 依次变为 10、01,然后变为 00 状态。考虑到所选电机中只有三种速度可用,使用 3 位 LUT7 跳过 00 状态。On/Off 信号必须为高电平才能激活控制过程。因此,如果 On/Off 信号为低电平,则禁用激活的输出并关闭电机,如图 6 所示。

解码器

定时器

实现了一个 3 周期定时器(30 分钟、60 分钟、120 分钟)。为了创建控制结构,一个 2 位二进制计数器从连接到 Pin13 的外部定时器按钮和 IR 定时器信号接收脉冲。计数器使用 Pipe Delay1,其中 Out0 PD num 等于 1,Out1 PD num 等于 2,方法是为 Out1 选择反极性。在初始状态 Out1, Out0 = 10中,定时器被禁用。之后,通过对 Pipe Delay1 的输入 CK 施加一个脉冲,输出状态依次变为 11、01、00,将 CNT/DLY 反转为每个激活状态。CNT0、CNT3、CNT4 被配置为作为“上升沿延迟”运行,其输入源自 CNT1 的输出,该输出被配置为每 10 秒发出一个脉冲。

延迟 30 分钟:

30 x 60 = 1800 秒÷ 10 秒间隔 = 180 位

因此,CNT4 的计数器数据为 180,CNT3 为 360,CNT0 为 720。一旦时间延迟结束,一个高电平脉冲通过 3L14 传输到 3L11,导致系统关闭。如果通过连接到 Pin12 的外部按钮或通过 IR_ON/OFF 信号关闭系统,则定时器将复位。

解码器

*如果您想使用电子开关,您可以使用双向可控硅或固态继电器代替机电继电器。

* 硬件去抖动器(电容器、电阻器)用于按钮。

结果

作为设计评估的第一步,使用了 GreenPAK 软件模拟器。在输入上创建虚拟按钮,并监控与开发板上的输出相对的外部 LED。Signal Wizard 工具用于生成类似于 NEC 格式的信号,以方便调试。

产生了一个模式为 0x00FF5FA0 的信号,其中 0x00FF 是对应于存储在 PGEN 中的反转地址的地址,而 0x5FA0 是对应于 DCMP 寄存器 3 中的反转命令的命令,用于控制开/关功能。系统在初始状态下处于OFF状态,但在施加信号后,我们注意到系统开启。如果地址中的单个位已更改并且重新应用信号,我们注意到没有任何反应(地址不兼容)。

解码器

启动 Signal Wizard 一次后(使用有效的 On/Off 命令):

解码器

结论

本文重点介绍用于控制 3 速交流电机的 GreenPAK IC 的配置。它包含多种功能,例如循环速度、生成 3 周期定时器以及构建与 NEC 协议兼容的 IR 解码器。GreenPAK 在集成多种功能方面已经证明了其有效性,所有这些都在低成本和小面积 IC 解决方案中。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分