跳过主要内容

AN-CM-248 PC风扇PWM控制

内容

术语和定义

公约逆时针方向
连续波顺时针方向
2CInter-integrated电路
印刷电路板印刷电路板
脉宽调制脉冲宽度调制

参考文献

有关文件及软件,请浏览:

//www.xmece.com/configurable-mixed-signal

下载我们的免费GreenPAK软件设计师(1]以打开。gp文件[2],并查看所提出的电路设计。使用GreenPAK开发工具(3.可以在几分钟内将设计冻结到您自己定制的集成电路中。yabo国际娱乐Dialog Semiconductor提供完整的申请资料库[4],包括设计实例,以及对Dialog IC的功能和模块的解释。

  1. GreenPAK设计软件,《软件下载及用户指南》,Dialog Semiconductoryabo国际娱乐
  2. AN-CM-248 PWM控制器用于PC风扇GreenPAK设计文件,Dialog半导yabo国际娱乐体
  3. GreenPAK开发工具GreenPAK开发工具网页,对话半导体yabo国际娱乐
  4. GreenPAK应用笔记GreenPAK应用笔记网页,Dialog半导体yabo国际娱乐
  5. SLG46108对话yabo国际娱乐框半导体
  6. SLG46826对话yabo国际娱乐框半导体
  7. AN-1101未锁定正交解码器对话yabo国际娱乐框半导体
  8. DMP3085LSD-13DICT-ND,二极管
  9. QS5K2CT-ND罗姆半导体

介绍

本文档描述了如何构建一个功能齐全的12v PC风扇PWM控制器。该设计可以控制多达16个3针电脑风扇。本设计采用一对Dialog GreenPAK可编程混合信号asic来控制每个风扇的占空比。它还包括两种改变风扇转速的方法:

  • 使用正交/旋转编码器
  • 使用c#构建的Windows应用程序与GreenPAK通过我2C。

系统框图

图1所示。系统框图

SLG46108旋转解码器设计

旋转编码器用于手动增加或减少风扇的占空比。该设备在其通道A和通道B的输出上输出脉冲,它们相距90°。看到AN-1101:未锁定的正交解码器7,以获取有关旋转编码器工作原理的更多信息。

图2:旋转编码器框图

使用Dialog可以创建一个时钟旋转解码器GreenPAKSLG46108处理A通道和B通道信号,输出为逆时针(CCW)和顺时针(CW)脉冲。

当通道A引导通道B时,设计在连续波上输出一个短脉冲。当通道B引出通道A时,在CCW上输出一个短脉冲。

图3。GreenPAK SLG46108旋转解码器设计

三个dff与时钟同步通道A输入。类似地,将OUT0设置为两个dff和OUT1设置为三个dff的管道延迟为通道B创建了相同的功能。

要使用几个lut创建CW和CCW输出,有关这个标准旋转解码器设计的更多信息,请访问这个网站

GreenPAK旋转解码器将接收输入脉冲A和B,并输出CW和CCW脉冲,如图所示图4

图4。旋转信号时序图

异或门后的电路确保永远不会有连续波脉冲和CCW脉冲同时出现,允许旋转编码器的任何错误。CW和CCW信号的8ms下降沿延迟迫使它们保持高8ms加一个时钟周期,这是下游SLG46826所必需的GreenPAK年代。

SLG46826风扇控制器设计

图5。GreenPAK SLG46826风扇控制器设计

带有偏移计数器的PWM产生

利用一对周期相同的偏置计数器产生PWM信号。第一个计数器设置DFF,第二个复位它,创建一致的占空比PWM信号,如图所示图6图7

图6。PWM产生时序图
图7。带有偏移计数器的PWM产生

CNT6设置DFF10, CNT1反转输出复位DFF10。引脚18和19用于输出PWM信号到外部电路。

带有时钟注入和时钟跳过的占空比控制

风扇控制器接收CW和CCW信号作为来自旋转解码器的输入,并使用它们来增加或减少控制风扇速度的PWM信号。这是通过几个数字逻辑组件实现的。

当接收到连续波脉冲时,占空比需要增加。这是通过注入一个额外的时钟脉冲到CNT6块,使它输出一个时钟周期比它本来会有。这个过程显示在图8

图8。时钟脉冲注入

CNT1仍然以恒定的速率被计时,但CNT6有两个额外的时钟注入。每当计数器上有一个额外的时钟时,它的输出就会向左移动一个时钟周期。

相反地,为了降低占空比,可以跳过CNT6的时钟脉冲,如图所示图9.CNT1仍然以恒定的速率被计时,而CNT6有跳过的时钟脉冲,计数器没有在它应该计时的时候被计时。这样,CNT6的输出每次向右推一个时钟周期,缩短了输出PWM占空比。

图9。时钟脉冲跳跃

时钟注入和时钟跳过功能是使用一些数字逻辑元件在GreenPAK.一对多功能块用于创建一对闩锁/边缘检测器组合。4位LUT0用于普通时钟信号(CLK/8)和时钟注入或跳时钟信号之间的多路复用。该功能将在本节中进行更详细的描述5.2.2

按钮输入

BUTTON输入断开20毫秒,然后用于拨动一个锁存器,以确定是否选择了这个特定的芯片。如果它被选中,那么4位LUT将通过时钟跳过或注入信号。如果芯片没有被选中,那么4位LUT仅仅通过CLK/8信号。

图10。时钟跳跃和时钟注入

防止工作周期翻转

RS锁存3位LUT5和3位LUT3用于确保您不能注入或跳过过多的时钟,从而导致偏移计数器滚动。这是为了避免系统达到100%占空比,然后在接收到另一个注入时钟时转到1%占空比。

RS锁存器通过锁存多功能块的输入来防止这种情况发生,当系统距离滚动只有一个时钟周期时。一对DFFs将PWM_SET和PWM_nRST信号延迟一个时钟周期,如下所示图11

图11。BLOCK_CW和BLOCK_CCW

使用一对lut创建必要的逻辑。如果占空比很低,延迟的PWM_SET信号与PWM_nRST信号同时发生,占空比的进一步降低将导致翻转。

图12。最小占空比翻转情况

类似地,如果接近最大占空比,即延迟的PWM_nRST信号与PWM_SET信号同时发生,则有必要避免进一步增加占空比。在这种情况下,将nRST信号延迟两个时钟周期,以确保系统不会从99%转到1%。

图13。最大占空比翻转箱

占空比控制与I2C

该设计采用了另一种方法来控制占空比,而不是时钟跳过/时钟注入。采用外接微控制器可实现I2C命令到GreenPAK设置占空比。

图14。我2C占空比控制

控制I的占空比2C要求控制器执行特定的命令序列。这些命令按顺序显示表1.“x”表示不应更改位,“[”表示开始位,“]”表示停止位。

表1:占空比2C命令
期望的功能
2C命令(从地址0001)
目的
设置I2C_RST高
[0x10 0x7A xxxx xxx1]
同时复位CNT6和CNT1,使其输出同步
设置I2C_RST低
[0x10 0x7A xxxx xxx0]
释放CNT6和CNT1上的重置,以便它们开始计数
写信给CNT5
[0 x10 0 xbc (0 - 255))
给one hot脉冲加载所需的量,以增加占空比
设置I2C_SET高
[0x10 0x7A xxxx xx1x]
在CLK/8的下一个下降沿启动CNT5 OneShot脉冲
设置I2C_SET低
[0x10 0x7A xxxx xx0x]
将I2C_SET信号复位为LOW

PDLY块在CLK/8信号下降沿产生一个短的有源高脉冲,称为!CLK/8。该信号用于以稳定的频率对DFF14进行计时。当I2C_SET异步变高时,!CLK/8的下一个上升沿导致DFF14输出high,触发CNT5 OneShot。OneShot运行的时钟周期的数量,用户写入“写入CNT5”I指定2C命令表1.在这种情况下,它是10个时钟周期。OneShot允许25 MHz振荡器在其持续时间内运行,因此3位LUT0接收写入CNT5的时钟周期数。

图15显示这些信号,其中红色时钟是发送到3位LUT0的信号,它将它们传递到CNT6 (PWM_SET计数器),从而创建占空比产生的偏移量。

图15。用I加载负载周期2C(频率不成比例)

转速计读数

如果需要,用户可以读取转速计的值超过I2C通过读取CNT2值来跟踪风扇转动的速度。当ACMP0H有上升沿时,CNT2增加,并且可以用I异步复位2C命令。注意,这是一个可选特性,ACMP0H的阈值需要根据所使用的特定风扇的规格进行调整。

图16。转速表部分
表2转速表2C命令
期望的功能
2C命令(从地址0001)
目的
读性心动过速计数器
[0x10 0x7E [0x11 r .
读取CNT2中的值
复位环计数器
[0x10 0x7A xxx1 xxxx]
重新设置CNT2中的值
Un-reset环计数器
[0x10 0x7A xxx0 xxxx]
释放CNT2上的重置,以便它开始计数

外部电路设计

图17。风扇控制器框图

外部电路相当简单。有一个按钮连接到Pin6的GreenPAK切换该特定设备是否被选择用于旋转控制,并连接到Pin12和Pin13的一个LED来指示设备何时被选择。

由于风扇运行12v,需要一对fet来控制其开关。的GreenPAK的Pin18和Pin19驱动一个fet。当fet打开时,它会拉动连接风扇到+ 12v的fet LOW栅极。当fet关闭时,fet的栅极被1kΩ电阻拉上,这将从+ 12v断开风扇。

PCB设计

为了设计原型,组装了一对pcb。左边的PCB是“风扇控制器”,它包含了旋转编码器,12v插座,SLG46108GreenPAK,以及FT232H USB到I的连接器2C突破。右边的两个pcb是“风扇板”,其中包含SLG46826GreenPAKs、按钮、开关、led和风扇头。

图18。多氯联苯和连接器

每个扇板有一个被遮盖的男性头部在左边和一个女性头部在右边,以便他们可以雏菊锁在一起。每个风扇板可以配置资源,独立控制两个风扇。

c#应用程序

编写了一个c#应用程序,通过FT232H USB-I与风扇板接口2C桥。这个应用程序可以用I来调节每个风扇的频率2由应用程序生成的C命令。

图19所示。c#应用程序GUI

应用程序ping所有16 I2C每秒访问一次地址,并使用当前的从地址填充GUI。本例中风扇1(从地址0001)和风扇3(从地址0011)连接到单板。每个风扇的占空比可以通过移动滑块或在滑块下方的文本框中输入0-256的值来单独调整。

结论

使用这种设计,它可以独立控制多达16个风扇(因为有16个可能的I2或者使用旋转编码器或者使用c#应用程序。演示了如何用一对偏移计数器产生PWM信号,以及如何在不发生侧翻的情况下增加和减少该信号的占空比。