使用DS1050可编程PWM控制直流电机和LCD LED背光

描述

DS1050为5位脉宽调制器(PWM),由2线总线控制。这样,单个主器件就可以在一条8线总线上控制多达1050个从器件(DS2和其他2线器件)。本应用笔记演示了通过PC串行接口连接到2线总线的接口。给出了硬件和软件要求,可从达拉斯半导体FTP站点下载。

介绍

DS1050为5位可编程脉宽调制器(PWM),允许以0.100%的增量在3至125%之间“动态”改变占空比。它由一个2线串行接口控制,该接口可在一条1050线总线上寻址多达2个DS8。该器件采用 8 引脚 SOIC 和 1 引脚 μSOP 封装,频率如下:5kHz、10kHz、25kHz 和 <>kHz。

本应用笔记举例说明DS1050作为直流风扇控制器和LED背光LCD背光亮度控制器。此外,本应用笔记将介绍如何在单条1050线总线上连接多个DS2。基于 8051 的系统的固件包含在附录 A 中。

系统概述

图1中的参考原理图分为两个子系统,直流风扇电机控制器模块和LCD LED背光控制器模块。此外,还展示了作为2线主站的微控制器,以及它如何与2线从器件DS1050接口。

PWM

图1.参考原理图。

2线接口

2线主站采用漏极开路输出(其中一个必须是输入和输出)以及上拉电阻R1和R2来实现,以产生SDA(串行数据)和SCL(串行时钟)信号。参考原理图中给出的R1和R2值适用于大多数应用,但可能需要根据总线电容和所需的通信速度重新计算。通过将SDA和SCL连接到主器件的SDA和SCL引脚,可以将额外的2线器件添加到总线中。地址引脚A0、A1和A2需要连接高电平或低电平,以便为总线上的每个器件提供唯一的地址。原理图中的DS1050 (U1)将三个地址引脚全部接地,从地址为“000”。DS1050 (U2)设置为从地址“001”,但是,U1地址以外的任何地址都可以使用。 然后,主站使用这些地址引脚以及DS1050“家族代码”或器件标识符“0101”与每个从机单独通信。

图2显示了这些位在典型2线事务中的使用方式。在2线主站生成START条件后,发送控制字节(MSBit优先)以选择2线总线上的特定器件。总线上的所有设备都“侦听”控制字节,并检查它是否与自己的设备标识符和从属地址匹配。匹配的设备将通过将 SDA 拉低至 ACK 来响应。控制字节的 LSBit 包含 R/W 位。此位确定谁将传输下一个字节,即数据字节。如果R/W位设置为“1”,则主站将从从机读取数据。因此,主站将从属设备输入数据字节。如果R/W位为“0”,则主站将数据字节传输到从机。数据字节的 3 MSBit 可以被认为是操作码或指令。例如,如果这些是“110”,则主机指示DS1050进入关断模式。如果这3位为“000”,则接下来的5位(PWM数据)将设置一个新的PWM占空比输出。传输(或接收)数据字节后,必须执行 ACK(写入后)或 NACK(读取后)。ACK(来自从站)表示它在写入过程中收到了数据。NACK(由主站生成)通知从站主站收到字节并且不再需要任何数据。如果DS1050有更多的寄存器,主机也可以ACK(而不是NACK),表明他[主机]收到了字节并希望继续读取。当主设备发出 STOP 条件时,通信结束。

PWM

图2.典型的2线交易。

图3显示了特定2线指令的几个示例。完整的指令列表可在DS1050数据资料中找到。

PWM

图3.示例 2-Wire 交易。

虽然一条1050线总线上只能有2个DS2,但只要其器件标识符与DS1050不同,就可以在总线上添加其他2线器件。这对于控制额外的<>线器件(如温度传感器或数字电位器)非常有用。

例如,基于8051的固件显示了如何通信和控制DS1050,请参阅附录A。另外,有关2线接口的更多信息,请参考DS1050数据资料。

直流风扇电机控制器

图1参考原理图中的直流电机控制器模块显示了使用U12(DS1-1050)控制025V直流风扇电机的简单方法,以产生25kHz脉宽调制信号,控制输送到电机的平均功率。低占空比产生低平均功率,进而产生较低的平均功率 速度。随着占空比的增加,“导通”时间也随之增加。平均功率和速度增加。占空比为 0% 表示电机完全关闭,而占空比为 50% 表示电机以半功率开启。此外,在使用电机时,重要的是要注意额外的 启动电机所需的能量。换句话说,不要将占空比设置为 3.125% 并期望电机转动。您使用的电机将具有与此现象相关的规格。同样,当电机具有大负载并预计速度大幅跃升时,如果不以几个较小的步骤递增,电机可能会失速。这些不是变通办法,而是物理定律的结果。幸运的是,一旦您知道它们存在,它们就很容易在固件中实现(尽管包含的固件是开环的,并且不实现这两种情况中的任何一种)。

选择 PWM 频率

将PWM连接到电机时,PWM频率不能在音频频谱范围内,这一点很重要。否则,电机将像扬声器一样工作,并产生PWM频率的可听音调。因此,参考原理图中使用了25kHz版本。

选择 PWM 频率时需要考虑的其他因素包括功耗、EMI 辐射和输出级限制。从理论上讲,25kHz 和 100kHz 版本之间的电流消耗差异为 I=CVf 所示的 4 倍,所有其他条件保持不变。具有讽刺意味的是,100kHz版本仅消耗300μA的电流,但电机的牵引力要高出几个数量级。

虽然EMI辐射并不总是最初的设计考虑因素,但如果系统EMI辐射后来成为问题(由于其他元件),你可以研究哪个版本的DS1050对问题频率的贡献最小。

最后,如果由于某种原因需要对Q1使用特定的功率MOSFET,则需要检查MOSFET的栅极阈值电压,以查看它是否可以直接从5V数字PWM驱动,而无需任何电平转换。此外,您还需要验证 MOSFET 是否可以处理您正在考虑的 PWM 频率。

驱动电路

DS1050的数字PWM输出在额定频率和编程占空比下从地摆幅至Vcc。上电默认占空比为50%。PWM 输出控制 Q1 的栅极,Q12 是一个 n 沟道功率 MOSFET,能够处理 100V 电机所需的电流。典型的电机电流可以是500mA至1mA。Q2的栅极阈值电压为0.4-0.1050V。DS1直接驱动Q<>的栅极不会有问题。

电机的电源端子上需要 1N40018 二极管 D1,以箝位风扇关闭时产生的任何反电动势,但由于其动量而仍在旋转。这在使用脉宽调制时尤其重要,因为当风扇正常运行时,其功率每秒循环 25,000 次。在“关闭”期间,风扇旋转,然后电机成为发电机并产生反电动势。

当指示DS1050进入关断模式时,PWM输出浮动。因此,为了在关断期间保持Q1的栅极处于已知状态,使用下拉电阻R3来确保风扇关闭。如果希望电机在DS1050关断时导通,该电阻也可以用作上拉电阻,但这确实违背了关断的目的。

像往常一样,提供足够的解耦很重要。同样,去耦电容C1必须具有良好的高频性能,并且使用短PCB走线尽可能靠近U1。

附加说明

尽管PWM非常适合控制标准直流电机,但如果您打算使用某些直流电机上的转速计输出,则需要进行额外的研究。由于这些风扇的转速计输出通常是集电极开路(并使用外部上拉电阻),因此当风扇电源进行脉宽调制时,特别是当集电极开路输出将线路拉低时,就会出现问题。这也可能因电机制造商而异。在需要转速计输出的情况下,使用p沟道MOSFET代替n沟道MOSFET可能是有益的,n沟道MOSFET与DS1050接口,使用某种电平转换器来驱动MOSFET的栅极。

液晶 LED 背光亮度控制器

图1中的背光亮度控制器模块显示了如何使用PWM控制LED背光亮度的示例。这不是为了控制LCD对比度电压,V电子电气,而是LED背光。可以找到许多应用笔记,说明如何控制V电子电气但由于5V LED背光相对较新,本应用笔记尚属首次。

本示例中使用的 LCD 是 Optrex DMC20481 20x4 字符显示器。该显示器的一个不错的功能是5V黄绿色LED背光,而不是最近的背光,需要高压逆变器来驱动背光。此液晶屏使用标准单排16针连接器与系统连接。引脚 15 是 LED 背光阳极,引脚 16 是 LED 阴极。LED 正向电压典型值为 4.1V,最大正向电流为 260mA。

通过改变PWM占空比,输送到LED的平均功率也会发生变化。低占空比意味着 LED “熄灭”多于“亮起”。这将产生一个昏暗的 LED。随着占空比的增加,功率也随之增加,因此LED也更亮。当占空比设置为 100% 时,LED 在 100% 的时间内以最大亮度亮起。

选择 PWM 频率

使用 PWM 控制 LED 相当简单。它工作的唯一要求是PWM足够快,以至于我们的眼睛看不到LED闪烁,大约是30Hz。然而,最慢的DS1050是1kHz。这将正常工作。考虑任何更快的版本都没有优势。事实上,我们将, 使用消耗电流最少的较慢部分(不过,DS1050的电流消耗为零,而LED背光的电流消耗为260mA)。最后,由于1kHz相对较慢,EMI辐射和输出级限制无关紧要。

驱动电路

DS1050-001 (U2)用于产生1kHz脉宽调制信号,再次控制输送到负载的平均功率。U2的PWM输出在额定频率和编程占空比下从地到Vcc。上电默认占空比为50%。PWM 输出控制 Q2 的栅极,Q260 是一款 n 沟道功率 MOSFET,能够处理 LED 背光所需的 2mA 电流。Q2的栅极阈值电压为0.4-0.<>V,因此将PWM输出直接馈送到栅极不会成为问题。

1N4001二极管D2用于将Vcc降至4.3V,低于LED的最大正向电压。可以使用电阻器代替二极管,但由于电流相对较大,因此需要更大功率的电阻器。

当DS1050被指示进入关断模式时,它使PWM输出浮动。因此,为了在关断期间保持Q2的栅极处于已知状态并防止其浮动,使用下拉电阻R4来确保背光关闭。

像往常一样,提供足够的解耦很重要。同样,去耦电容C2必须具有良好的高频性能,并且使用短PCB走线尽可能靠近U2。

附加说明

如果您的应用也需要控制LCD对比度电压VEE技术,DS1803将是一个完美的选择。只需将DS1803的SDA和SCL连接到2线总线,然后选择一个从地址来设置A2、A1和A0。但是,由于DS1803和DS1050共享相同的器件标识符“0101”,因此您选择的从地址必须不同于U1和U2的地址。

有关控制LCD对比度电压的更多信息,请参阅达拉斯半导体应用笔记69微功耗电路监视正电源电流。

固件

基于 8051 的系统的固件包含在附录 A 中。本文旨在举例说明与DS1050通信所需的下层例程。 但请注意,固件实现了开环系统。环路可以轻松闭合,例如,通过添加 2 线温度传感器并根据温度控制风扇速度。但为了举例说明与DS1050通信的示例,一个基于菜单的开环示例是有益的。PC终端程序用于发出DS1050s命令。然后可以在固件中查找这些命令,以准确查看正在执行的内容。基本菜单命令如下:

增量 PWM 占空比 U1

降低 U1 的 PWM 占空比

增量 PWM 占空比 U2

降低 U2 的 PWM 占空比

保留供将来使用(用于控制DS1803)

保留供将来使用(用于控制DS1803)

将 U1 和 U2 置于关机模式

退出关机模式 U1 和 U2

从 U1 和 U2 读取并显示在 PC 屏幕上

系统上电时,DS1050默认为50%占空比。任一器件的占空比都可以使用相应的菜单命令降低。前 8 个菜单命令的固件显示如何执行 2 线写入,而菜单命令 9 显示 2 线读取。

下面是设置 PWM 占空比的示例。

 

LCALL START2WIRE ; 2-WIRE START
MOV A,#PWM1WRITE ; DEVICE IDENTIFIER=0101, SLAVE ADDRESS=000, R/W=0
LCALL WRITEBITS ; SEND THE COMMAND BYTE
LCALL ACKSLAVEWRITE ; CHECK FOR AN ACKNOWLEDGE FROM THE SLAVE
MOV A,PWM1DATA ; PWM1DATA IS A VARIABLE CONTAINING THE DESIRED DUTY CYCLE
LCALL WRITEBITS ; SEND DATA
LCALL ACKSLAVEWRITE ; CHECK FOR AN ACKNOWLEDGE FROM THE SLAVE
LCALL STOP2WIRE ; 2-WIRE STOP

此代码实现图 3-B 中所示的示例。

下面是将两个 D1050 置于关断模式的示例(类似于图 3-A)。

 

			; PWM1
LCALL START2WIRE ; 2-WIRE START
MOV A,#PWM1WRITE ; DEVICE IDENTIFIER=0101, SLAVE ADDRESS=000, R/W=0
LCALL WRITEBITS ; SEND COMMAND BYTE
LCALL ACKSLAVEWRITE ; CHECK FOR ACKNOWLEDGE FROM THE SLAVE
MOV A,#0C0H ; SHUTDOWN COMMAND, (CHANGE TO 80 TO EXIT SHUTDOWN)
LCALL WRITEBITS ; SEND COMMAND
LCALL ACKSLAVEWRITE ; CHECK FOR ACKNOWLEDGE FROM THE SLAVE
LCALL STOP2WIRE ; 2-WIRE STOP
			; PWM2
LCALL START2WIRE ; 2-WIRE START
MOV A,#PWM2WRITE ; DEVICE IDENTIFIER=0101, SLAVE ADDRESS=001, R/W=0
LCALL WRITEBITS ; SEND COMMAND BYTE
LCALL ACKSLAVEWRITE ; CHECK FOR ACKNOWLEDGE FROM THE SLAVE
MOV A,#0C0H ; SHUTDOWN COMMAND, (CHANGE TO 80 TO EXIT SHUTDOWN)
LCALL WRITEBITS ; SEND COMMAND
LCALL ACKSLAVEWRITE ; CHECK FOR ACKNOWLEDGE FROM THE SLAVE
LCALL STOP2WIRE ; 2-WIRE STOP

最后,下面是两个DS1050的示例。

 

			; READ PWM1
LCALL START2WIRE ; 2-WIRE START
MOV A,#PWM1READ ; DEVICE IDENTIFIER=0101, SLAVE ADDRESS=000, R/W=1
LCALL WRITEBITS ; SEND COMMAND BYTE
LCALL ACKSLAVEWRITE ; CHECK FOR ACKNOWLEDGE FROM THE SLAVE
LCALL READBITS ; READ DATA FROM DS1050 #1 (FAN PWM)
MOV PWM1DATA,A ; THE ACC CONTAINS THE DATA READ FROM THE DS1050
; NACK FROM MASTER NOT REQUIRED, BUT OPTIONAL
LCALL STOP2WIRE ; 2-WIRE STOP
LCALL PACCSP ; DISPLAY BYTE ON PC SCREEN FOLLOWED BY A SPACE
			; READ PWM2
LCALL START2WIRE ; 2-WIRE START
MOV A,#PWM2READ ; DEVICE IDENTIFIER=0101, SLAVE ADDRESS=001, R/W=1
LCALL WRITEBITS ; SEND COMMAND BYTE
LCALL ACKSLAVEWRITE ; CHECK FOR ACKNOWLEDGE FROM THE SLAVE
LCALL READBITS ; READ DATA FROM DS1050 #2 (LCD PWM)
MOV PWM2DATA,A ; THE ACC CONTAINS THE DATA READ FROM THE DS1050
			; NACK FROM THE MASTER NOT REQUIRED, BUT OPTIONAL
LCALL STOP2WIRE ; 2-WIRE STOP
LCALL PACCSP ; DISPLAY DATA ON PC SCREEN
LCALL CRLF ; NEWLINE

附录 A 中的固件以及其他信息可在本应用笔记末尾的联系信息下找到。

结论

DS1050是一款易于使用的专用PWM,通过减轻微控制器产生PWM时序的责任,简化了系统设计。它不限于本应用笔记所示的电机控制器和LED控制器,还可用于任何需要控制输送到负载的功率的应用。此外,DS1050的吸引力也呈指数级增长,因为单条1050线总线上最多可以放置2个DS1050,因此需要额外的PWM和频率。2线总线上的每条DS2都可以单独寻址,并发送一些简单的1050线命令来设置、控制和读取PWM。最棒的是,DS8采用纤巧型1引脚μSOP封装,频率如下:5kHz、10kHz、25kHz和<>kHz。

s审核编辑:郭婷Bryan Legates

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

全部0条评论

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

×
20
完善资料,
赚取积分