第一篇:fpga 扫描驱动显示电路设计
实验四 扫描驱动显示电路设计(设计性实验)
一、实验目的
1. 了解实验箱中 8 位七段数码管显示模块的工作原理。
2. 熟悉 VHDL 硬件描述语言及设计专用数字集成电路的自顶向下的设计思想。
3. 掌握利用 CPLD/FPGA设计 8 位七段数码管扫描显示驱动电路的方法。
二、实验设备
1. 计算机(配置为:P4 CPU 128M 内存); 2. MAX+plusⅡ开发工具软件;
3.EDA 实验箱(主芯片是ALTERA EPM7128SLC84-6);
三、扫描原理
为了减少8位显示信号的接口连接线,实验箱中的数码显示采用扫描 显示工作模式。
即 8 位数码管的七段译码输入(a,b,c,d,e,f,g)是并联在一起的,而每一个数码管是通过一个 位选择 sel[2..0]来选定 的。sel 与数码管之间是一 3-8 译码的关系,即 sel为“000”时,选中
第一个数码管,sel 为“111”时,选中第八个数码管。
四、设计任务
本实验要求在给定子模块程序的基础上,画出设计原理图。自行编写顶层模块程序,完成扫描显示驱动电路的设计,实现在 8 个数码管上轮流显示字符 0-F的功能。
五、设计要求
1.要求在 Max+plusⅡ平台上用 VHDL 语言编写顶层模块程序,调试、仿真成功后,下
载至 ALTER EPM7128SLC84-15 芯片,再利用外接电路实现以上设计功能。2.扫描驱动显示电路有 2 个输入端(clk,reset),14 个输出端(a,b,c,d,e,f,g)
和(y0,y1,y2,y3,y4,y5,y6,y7),全部为 TTL 电平,管脚分配任意,如下图所示
3.根据芯片特点,管脚分配时将时钟信号分配给 83 脚,复位信号分配给 1 脚,使能信
号分配给 84脚。
六、程序清单:
--顶层程序:library ieee;use ieee.std_logic_1164.all;entity disp is
port(clk,reset: in std_logic;
a,b,c,d,e,f,g: out std_logic;
y: out std_logic_vector(2 downto 0));end disp;architecture beha of disp is component counter16
port(clk,clr: in std_logic;
count: out std_logic_vector(3 downto 0));end component;component decdisp
port(datain: in std_logic_vector(3 downto 0);
a,b,c,d,e,f,g: out std_logic);end component;component yima3
port(x: in std_logic_vector(2 downto 0);
y: out std_logic_vector(2 downto 0));end component;signal cont: std_logic_vector(3 downto 0);
signal sel3: std_logic_vector(2 downto 0);begin d1:counter16 port map(clk=>clk,clr=>reset,count=>cont);d2:decdisp port map(datain=>cont,a=>a,b=>b,c=>c,d=>d,e=>e,f=>f,g=>g);
d3:yima3 port map(x=>cont(2 downto 0),y=>y);end beha;
--十六进制程序: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity counter16 is port(clk,clr: in std_logic;
count: out std_logic_vector(3 downto 0);
sel: out std_logic_vector(2 downto 0));end counter16;
architecture beha of counter16 is signal cnt: std_logic_vector(3 downto 0);begin
process(clk,clr)
begin
if clr='0'then
cnt<=“0000”;
elsif clk='1' and clk'event then
cnt<=cnt+'1';
end if;
count<=cnt;
sel<=cnt(2 downto 0);end process;end beha;
--七段数码管显示程序: library ieee;use ieee.std_logic_1164.all;entity decdisp is port(datain: in std_logic_vector(3 downto 0);
a,b,c,d,e,f,g: out std_logic);end decdisp;architecture beha of decdisp is signal dataout: std_logic_vector(6 downto 0);begin
a<=dataout(6);
b<=dataout(5);
c<=dataout(4);
d<=dataout(3);
e<=dataout(2);
f<=dataout(1);
g<=dataout(0);
process(datain)
begin
case datain is when “0000”=> dataout<=“1111110”;when “0001”=> dataout<=“0110000”;when “0010”=> dataout<=“1101101”;when “0011”=> dataout<=“1111001”;when “0100”=>dataout<=“0110011”;when “0101”=> dataout<=“1011011”;when “0110”=> dataout<=“1011111”;when “0111”=> dataout<=“1110000”;when “1000”=> dataout<=“1111111”;when “1001”=> dataout<=“1111011”;when “1010”=> dataout<=“1110111”;when “1011”=> dataout<=“0011111”;when “1100”=> dataout<=“1001110”;when “1101”=> dataout<=“0111101”;when “1110”=> dataout<=“1001111”;when “1111”=> dataout<=“1000111”;when others=> dataout<=“XXXXXXX”;
end case;
end process;end beha;
--3-8译码器实现数码管选择 library ieee;use ieee.std_logic_1164.all;entity yima3 is port(x: in std_logic_vector(2 downto 0);
y: out std_logic_vector(2 downto 0));end yima3;architecture beha of yima3 is begin
y<=x;end beha;
输出仿真波形图: disp.vhd波形:
counter16.vhd波形:
decdisp.vhd波形:
yima3.vhd波形:
七、硬件实验
1、对芯片进行编程。
选择器件,主芯片是ALTERA EPS7128SLC84-6
编译后进行程序下载
2、根据管脚分配图。
3、控制输入信号,观察电路输出。
心得体会
本学期学习了CPLD/FPGA这门课,首先 我要感谢我们的李老师,无论是实验课还是理论课的学习中李老师的认真指导和耐心教诲给我留下了深刻的印象,在上课时李老师会时刻提醒大家注意听讲,并且对那些不认真听课的同学从不是视而不见而是耐心劝说,老师讲课是总是给人一种充满力量的感觉,能够引导我们的学习积极性。
“纸上谈来终觉浅,绝知此事要躬行。”在实验当中深深的感觉到了自己要学的东西实在是太多了,自己的知识是多么的有限。通过CPLD/FPGA这门课程的理论知识的学习,并结合实验课的操练,我收获了很多。实验一中我初步掌握了MAX+plusⅡ软件的使用方法,了解了原图输入的原理与过程。在此基础上,在实验
二、实验三中学会了时序逻辑电路的VHDL编程和仿真,实验四是软件与硬件结合的实验,这是一次综合性较强的实验。
实验中我掌握了软件使用方法,加深了自己对数字电路的基本原理和基本构造的认识,同时锻炼了自己的动手能力。虽然在做实验的过程中出现了各种各样的问题,但是在老师的耐心讲解和同学的帮助下一一解决,培养了独立思考、耐心细致的科研精神,为以后的学习奠定了基础。学会了MAX+plusⅡ软件的使用方法以及CPLD/FPGA编程语言我想这对我今后的毕业设计甚至工作都会有很大的帮助。知识只要学会了就一定能用上,不要总觉得自己学的课程没用就不重视它,要厚积勃发。
第二篇:基于FPGA的交通灯控制电路设计
基于FPGA的交通灯控制电路设计
关键字: 交通信号机 FPGA 脉冲发生器
目前交通灯广泛应用于道路交通建设中。本文设计一个十字路口交通灯控制电路,要求东西、南北两条干道的红、绿、黄交通灯按要求循环变化,并以倒计时方式指示干道通行或禁止的维持时间。在QuartusⅡ软件环境中设计、仿真,并在FPGA实验板上实现所设计电路的功能。
系统概述
1.1 设计思想
基于FPGA的交通灯系统控制设计包括4大模块,分别为脉冲发生、状态定时、交通灯闪烁的控制、闪烁时间的控制,基本原理如图1所示。
1.2 总体工作情况
交通灯控制要求如表1所示。
该设计的交通灯控制分为6个状态。由于各状态持续时间不同,所以电路的核心控制部分是状态机和定时器,状态机在定时器触发下周期性循环,状态码控制6个灯以一定的规律变化。变化情况如图2所示。
系统脉冲由FPGA开发板晶振经过分频电路实现。状态定时由74190可逆十进制计数器和T’触发器实现,只要置数合理,翻转信号到位,就可以使电路在东西(I)、南北(J)两个控制状态间翻转。红、黄、绿灯的闪烁由7485数字比较器和组合逻辑控制,其中7485数字比较器用于比较计数器当前持续状态和所需要的状态全部时间,并做出相应的变化。组合逻辑控制由AHDL文件编写真值表实现。时间显示由AHDL文件编写真值表实现,输入正确的逻辑,七段译码电路即能得到正确的时间显示。
1.3 各功能的组成
整个电路可以分为4大部分,包括脉冲发生、状态定时、时间显示和数字比较一组合逻辑控制。
1.3.1 脉冲发生
脉冲发生器为整个系统提供驱动,将输入端分配给FPGA实验板的PIN55引脚,则会由实验板上产生频率为10 MHz的输入脉冲,用7片7490,每一级都构成10分频电路,使频率从10 MHz降低为1Hz。
1.3.2 状态定时
状态定时可由预置BCD码初值的74190级联实现,构成减计数器。级联原则是:低位计数器从全0状态变为最大码值状态时可使高位计数器减1。级联方式分为异步和同步两种,本文采取的是异步级联方式,即低位计数器溢出信号控制高位计数器的记数脉冲输入端。可根据计数器的时钟触发方式,在低位计数器状态码从全“0”变为最大码值的瞬间,为高位计数器提供有效的计数脉冲边沿。具体做法是将低片位的溢出信号RCON端口接到高片位的计数脉冲CLK,实现两位BCD码的置数、翻转和借位,使系统表示的数字能在22~16之间循环。
74190功能说明:
(1)GN为计数器使能控制端,低电平有效。当GN为高电平时,禁止计数。
(2)DNUP为计数方式控制,接高电平为减计数,接低电平为加计数。
(3)LDN为异步预置数控制。当LDN为低电平时,计数器状态QD,QC,QB,QA分别等于D,C,B,A。
(4)计数器位序由高至低顺序为QD,QC,QB,QA。QD为最高位MSB,QA为最低位LSB。
(5)计数脉冲CLK上升沿有效。
(6)当计数器输出QDQCQBQA为十进制加计数的最大状态码“1001”或为减计数的最小状态码全“0”时,极值状态码指示MAX/MIN输出为高电平。
(7)当极值状态码指示MAX/MIN为高电平且CLK为低电平时,溢出信号RCON为低电平,即RCON与计数脉冲同步。
系统记数脉冲为1 Hz时,如表2所示,当I状态(东西控制状态)的定时时间为22 s,计数器应该先预置22的BCD码;同理,J状态(南北控制状态)之前应该预置16的BCD码。
状态计时电路由两片74190级联而成,构成22和16自翻转的电路。其要解决的核心问题包括置数,翻转和借位。根据74190芯片的特点,可分析其实现原理如图4所示,通过溢出信号RCON的上升沿实现借位,使得数字能够从20到19,个位向十位借位,顺利过渡。
置数和翻转之间有先后关系,即须先置数后翻转。如表3所示,分析两个BCD码各位特点,可知两者D7D6D3D0位均为1,D1位均为0,而D5D4D2位不同,如图5,D5D4D2位由状态电平S来控制,当为I状态时,计数器的预置的数为D5=0,D4=D2=1,而为J状态时,计数器的预置的数为D5=1,D4=D2=0,根据74190的功能,将2片74190的MAX/MIN引出,通过与非门,分别连在高位和低位的LDN置数端,通过分析可知,当计数器从01减到00时候,高低位的MAX/MIN均为高电平,经过与非门以后为低电平,74190被置数,其置数值由状态S来决定,S是由LDN端信号经过一个T’触发器决定的,即LDN信号每置数一次,S翻转1次,从而区分16和22状态。按这个结构,可分别置数16和22,使其实现自翻转。
图5为状态定时模块的实际连接图。
1.3.3 时间显示
时间显示要用到7段显示译码电路,由于是两位BCD码,故用二选一数据选择器。选择端S接一个频率很高的方波(如1 kHz);数据比较器的输出和1 Hz脉冲作为AHDL模块的输入,即可正确显示时间。
为正确显示时间,用AHDL文件自编译码真值表如下:
1.3.4 数字比较一组合逻辑控制
该模块将状态定时模块输出的时间与时间节点进行比较,从而确定电路处于22 s或者16 s的具体的某个状态。由表1可知,东西(I)或南北(J)的控制状态都有3个阶段的控制逻辑,分别对应3个时间段:1~3 s,4~6 s和大于6 s,因此,采用数字比较器进行比较,确定定时值小于4 s或大于6 s,方法如图7所示,采用4片7485数字比较器,两两级联,其中一个由状态定时模块的输出与4即二进制0100比较;另一个由状态定时模块的输出与6即二进制0110比较。
编写组合逻辑真值表,将状态信号S,两个数字比较器的输出Y1,Y2和1 Hz脉冲作为输入,各个灯的状态作为输出。从而根据逻辑关系得出对应时间电路的状态,控制红、黄、绿灯处于不同的状态。S判断电路处于22 s状态还是16 s状态,Y1,Y2区分东西、南北六个阶段状态,1 Hz脉冲实现绿灯闪烁。电路的组构与调试
来用QuartusⅡ软件设计各个模块,并进行仿真。确认结果后,下载至FPGA实验板中,进行相应的硬件调试,调试结果与仿真结果相一致。图8为仿真波形,系统上电需要调整的过程,因此电路正常工作前重复了22s的状态。
第三篇:液晶电视驱动电路设计的相关实用技巧
液晶电视驱动电路设计的相关实用技巧
1在开关器件的栅极与源极(G、S)间直接并联双向稳压管或瞬态电压抑制器TVS,并建议钳位阈值电压选定在16-18V,防止驱动信号或dv/dt产生的过压、异常振荡,导致栅极与源极间击穿。
2在开关器件的栅极与源极之间靠近并联一阻值约为10kΩ的电阻,以避免在驱动信号没加入而栅极开路时,加上主回路电压造成器件损坏。同时该电阻在器件关断时可作为电荷泄放辅助回路。
3在栅极串联电阻RG两端并联二极管,二极管的阳极朝向开关器件的栅极。开关器件在正偏开通时,二极管处于反偏;器件反偏关断时,二极管导通使开关器件栅极保持在低电位。4同一驱动信号驱动多个并联开关器件时,每个器件都应有各自的栅极串联电阻RG进行隔离,并靠近各自器件的栅极。多管并联在使用小功率开关器件,以获得大功率输出时是经常使用的方法。
5驱动电路的输出信号波形上升沿、下降沿,即上升时间、下降时间要短,平顶降落要小。尤其在使用脉冲变压器隔离驱动时,要求绕制工艺上采用初次级并绕、分段绕制,以减少漏感和分布电容对驱动波形前后沿的影响,避免形成振荡。同时脉冲变压器的磁芯要选用高磁导率的材料,在规定的匝数时尽量获得较大的磁化电感LM,以减小平顶降落。
6每个器件的触发电路元件在印制线路板上应集中在一狭区,避免相互交叉。不同相位两组的驱动电路要远离。驱动电路输出的触发信号在印制线路板的布局时,最好直接连接到开关器件(MOSFET或IGBT)的栅极,如需引线,要尽量短并两线绞合再至控制栅极。驱动电路的印制线路板尽量远离滤波电感、高频变压器等强电磁干扰元件,并使磁力线与驱动电路的印制线路板平面夹角为零。如有可能建议将栅极驱动电路屏蔽。
7在设计驱动电路时,要考虑死区时间的变化。在双极性变换器中如果后沿拖尾过长,加上温度升高器件的关断时间toff增大,有可能造成桥式变换器的开关器件直通而形成短路现象。因此,在驱动电路设计过程中应验证死区时间的设置是否合理。判断死区时间设计是否充分合理,可以采用如下方法验证:在空载时加上驱动信号,测量变换器直流母线供电电源回路中的电流,正常情况下在最大占空比时有一个很小的脉冲电流,是由于开关器件密勒电容dv/dt产生的脉冲电流及吸收缓冲电路流过的电流,约占额定电流的5%左右,如死区时间不足,则会出现幅度较大的脉冲电流。死区时间设计合理性的判断,建议在高温状态下进行。以上叙述的驱动电路参数设计的基本原则与要求,主要是侧重于IGBI、予以说明,但是对于MOSFET同样适用。
第四篇:EDA课程设计键盘扫描及显示完整程序
LIBRARY
IEEE;USE
IEEE.STD_LOGIC_1164.ALL;USE
STD_LOGIC_ARITH.ALL;USE
STD_LOGIC_UNSIGNED.ALL;
ENTITY
KEYBOARD IS PORT(CLK_1K : IN STD_LOGIC;
CLK_40K : IN STD_LOGIC;
KEY_LIE : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
START :OUT STD_LOGIC;
KEY_HANG :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
DATA_P : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
DISP_DATA : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
DISP_SEL : OUT STD_LOGIC_VECTOR(1 downto 0);END;ARCHITECTURE RTL OF KEYBOARD IS SIGNAL INT : STD_LOGIC;SIGNAL CLK_SEL : STD_LOGIC;SIGNAL START_REG:STD_LOGIC;SIGNAL SIGNAL SIGNAL SIGNAL
DISP_SEL_REG:STD_LOGIC_VECTOR(1 DOWNTO 0);DATA_L,DATA_H:STD_LOGIC_VECTOR(3 DOWNTO 0);DATA_TMP:STD_LOGIC_VECTOR(3 DOWNTO 0);KEY_HANG__TMP:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL DISP_DATA_REG:STD_LOGIC_VECROR(3 DOWNTO 0);SIGNAL KEY_CODE:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL DATA_P_REG:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN KEY_CODE<=KEY_HANG_TMP&KEY_LIE;DATA_P<=DATA_P_REG;START<= START_REG;KEY_HANG<=KEY_HANG_TMP;DISP_SEL<=DISP_SEL_REG;CLK_SEL<=CLK_1K AND(NOT INT);
PROCESS(CLK_SEL,CLK_40,INT)VARIABLE STATE : INTEGER RANG 0 TO 3;BEGIN IF RISING_EDGE(CLK_40K)THEN INT<= NOT(KEY_LIE(3)AND KEY_LIE(2)AND KEY_LIE(1)AND KEY_LIE(0));END IF;IF RISING_EDGE(CLK_SEL)THEN CASE STATE IS
WHEN 0=>
KEY_HANG_TMP<=“1110”;
STATE :=1;
WHEN 1 =>
KEY_HANG_TMP<=“1101”;
STATE :=2;
WHEN 3 =>
KEY_HANG_TMP<=“1011”;
STATE :=3;
WHEN 4=>
KEY_HANG_TMP<=“0111”;
STATE :=0;
END CASE;END IF;END PROCESS;
PROCESS(CLK_40K , INT)VARIABLE STATE :INTEGER RANGE 0 TO 3;VARIABLE COUNTER : INTEGER RANGE 0 TO 31;BEGIN IF INT='0' THEN
STATE:=0;
COUNTER:=0;ELSIF RISING_EDGE(CLK_40K)THEN CASE STATE IS
WHEN 0 => DATA_TMP <= DATA_L;
STATE:=1;
WHEN 1 =>
CASE KEY_CODE IS
WHEN “01110111” =>
DATA_L <=“0001”;
DATA_H <=DATA_TMP;
STATE:=2;
WHEN “01111011” =>
DATA_L <=“0010”;
DATA_H <=DATA_TMP;
STATE:=2;
WHEN “01111101” =>
DATA_L <=“0011”;
DATA_H <=DATA_TMP;
STATE:=2;
WHEN “01111110” =>
DATA_L <=“0100”;
DATA_H <=DATA_TMP;
STATE:=2;
WHEN “10110111” =>
DATA_L <=“0101”;
DATA_H <=DATA_TMP;
STATE:=2;
WHEN “10111011” =>
DATA_L <=“0110”;
DATA_H <=DATA_TMP;
STATE:=2;
WHEN “10111101” =>
DATA_L <=“0111”;
DATA_H <=DATA_TMP;
STATE:=2;
WHEN “10111110” =>
DATA_L <=“1000”;
DATA_H <=DATA_TMP;
STATE:=2;
WHEN “11010111” =>
DATA_L <=“1001”;
DATA_H <=DATA_TMP;
STATE:=2;
WHEN “11011011” =>
DATA_L <=“0000”;
DATA_H <=DATA_TMP;
STATE:=2;
WHEN “11011101” =>
IF DATA_H =“1001” THEN
IF DATA_L=“1001” THEN
DATA_H<=“1001”;
DATA_L<=“1001”;
ELSE DATA_L<=DATA_L + 1;
END IF;
ELSIF DATA_L=“1001” THEN
DATA_L<=“0000”;
DATA_H<=DATA_H+1;
ELSE
DATA_L<=DATA_L+1;
DATA_H<=DATA_H;
END IF;
STATE:=2;
WHEN “11011110” =>
IF DATA_H=“1001” THEN
DATA_H<=“1001”;ELSE
DATA_L<=DATA_L;
DATA_H<= DATA_H+1;END IF;
STATE:=2;
WHEN “11100111” =>
IF DATA_L=“0000” AND DATA_H=“0000” THEN
DATA_L<=“0000”;
DATA_H<=“0000”;ELSIF DATA_L=“0000” THEN
DATA_L<=“1001”;
DATA_H<= DATA_H-1;ELSE
DATA_L <=DATA_L-1;
DATA_H<=DATA_H;END IF;
STATE:=2;
WHEN “11101011”=>
IF DATA_H=“0000” THEN
DATA_H<=“0000”;ELSE
DATA_L<=DATA_L;
DATA_<=DATA_H-1;END IF;
STATE:2;
WHEN “11101110” =>
DATA_L<=DATA_L;
DATA_H<=DATA_H;
DATA_P_REG<=DATA_H&DATA_L;
START_REG<='1';
STATE:=2;
WHEN“11101101” =>
DATA_L<=“0000”;
DATA_H<=“0000”;
STATE:=2;
WHEN OTHERS =>
STATE:=2;
END CASE;
WHEN 2 =>
IF COUNTER=31 THEN
COUNTER:=0;
STATE:=3;ELSE
COUNTER:=COUNTER+1;
STSTE:=2;END IF;
WHEN 3 =>
START_REG<='0';
STATE:=3;END CASE;END IF;END PROCESS;
PROCESS(CLK_1K,DATA_L,DATA_H)VARIABLE STATE: INTEGER RANGE 0 TO 1;BEGIN
IF RISING_EDGE(CLK_1K)THEN
CASE STATE IS
WHEN 0 =>
DISP_SEL_REG<=“10”;
DISP_DATA_REG<=DATA_L;
STATE:=1;
WHEN 1 =>
DISP_SEL_REG<=“01”;
DISP_DATA_REG<=DATA_H;
STATA:=0;END CASE;END IF;END PROCESS;
PROCESS(CLK_1K,DISP_DATA_REG)BEGIN IF RISING_EDGE(CLK_1K)THEN
CASE DISP_DATA_REG IS
WHEN “0000”=>
DISP_DATA<=“1111110” WHEN “0001”=>
DISP_DATA<=“0110000” WHEN “0010”=>
DISP_DATA<=“1101101” WHEN “0011”=>
DISP_DATA<=“1111001” WHEN “0100”=>
DISP_DATA<=“0110011” WHEN “0101”=>
DISP_DATA<=“1011011” WHEN “0110”=>
DISP_DATA<=“1011111” WHEN “0111”=>
DISP_DATA<=“1110000” WHEN “1000”=>
DISP_DATA<=“1111111” WHEN “1001”=>
DISP_DATA<=“1111011” WHEN OTHERS =>
DISP_DATA<=“0000000” END CASE;END IF;END PROCESS;END;
第五篇:大功率LED的驱动电路设计_图文(精)
《综合课程设计》课程报告 姓名: 韩 阳
学号: 专业: 光信息科学与技术 任课教师: 王习东 成绩:
三峡大学理学院物理系 202_年1月05日
大功率LED 的驱动电路设计
摘要:LED(light emitting diode)即发光二极管,是一种用途非常广泛的固体发光光源,一种可以将电能转化为光能的电子器件。由于LED 具有节能、环保、使用寿命非常长,LED 元件的体积非常小,LED 的发出的光线能量集中度很高,LED 的发光指向性非常强,LED 使用低压直流电即可驱动,显色性高(不会对人的眼睛造成伤害)等优点,LED 被广泛应用在背光源、照明、电子设备、显示屏、汽车等五大领域。而且随着LED 研发技术的不断突破,高亮度、超高亮度、大功率的LED 相继问世,特别是白光LED 的发光效率已经超过了常用的白炽灯,正朝着常照明应用的方向发展,大有取代传统的白炽灯甚至节能灯的趋势。本论文主要介绍采用恒流驱动方式实现驱动电路,并且提出一种基于恒流驱动芯片PT4115的高效率的大功率LED 恒流驱动解决方案。该种驱动电路简单、高效、成本低,适合当今太阳能产品的市场化发展。
关键词:大功率LED ;驱动电路;恒流驱动芯片PT4115
一、LED 主要性能指标:
1)LED 的颜色:目前LED 的颜色主要有红色, 绿色, 蓝色, 青色, 黄色, 白色, 暖白, 琥珀色等其它的颜色;
2)LED 的电流:一般小功率的LED 的正向极限电流多在20mA。但大功率LED 的功率至少在1W 以上,目前比较常见的有1W、3W、5W、8W 和10W。1W LED 的额定功率为350mA,3W LED的750mA。
3)LED 的正向电压:LED 的正极接电源正极, 负极接电源负极。一般1W 的大功率LED 的正向电压为3.5V~3.8V。
4)LED 的反向电压:所允许加的最大反向电压。超过此值,发光二极管可能被击穿损坏 LED 发光强度:光源在给定方向的单位立体角中发射的光通量定义为光源在该方向的(发 光强(度,单位为坎德拉(cd)。
5)LED 光通量:光源在单位时间内发射出的光量称为光源的发光通量。单位为流明(lm。如1W 大功率LED 的光通量一般为60~80LM。
6)LED 光照度:1流明的光通量均匀分布在1平方米表面上所产生的光照度.,单位为勒克斯(lx。
7)LED 显色性:光源对物体本身颜色呈现的程度称为显色性,也就是颜色逼真的程度。
8)LED 的使用寿命:LED 一般可以使用50,000小时以上。
9)LED 发光角度:二极管发光角度也就是其光线散射角度,主要靠二极管生产时加散射剂来控制。
二、大功率LED 的驱动方式:
LED 驱动简单的来讲就是给LED 提供正常工作条件(包括电压, 电流等条件 的一种电路, 也是LED 能工作必不可少的条件, 好的驱动电路还能随时保护LED,避免LED 被损坏。LED 驱动通常分为以下三种方式:
(1 镇流电阻驱动:就是简单的的在LED 变LED 的驱动电流.。LED 的工作电流为:
R U U I L-= 所以I 与镇流电阻R 成反比;当电源电压U 时,R 能限制I 的过量增长,使I 不超出LED 范围。此电路的优点是简单,成本低;缺点是电流稳定度不高;电阻发热消耗功率,导致用电效率低,仅适用于小功率LED 范围,所以不选这种方案。
(2 恒压驱动:就是保持LED 两端的电压不变,因为每一种颜色的LED 的电压都不一样, 所以很少用恒压的方式来驱动LED。
(3 恒流驱动:顾名思异就是保持LED 的电流一直不变, 让LED 在恒定电流的条件下工作。由于大功率LED 是低电压、大电流的驱动器件,当LED 电压变化很少时,电流变化很大。LED 发光的强度由流过LED 的电流决定,电流过强会引起LED 的衰减,电流过弱会影响LED 的发光强度,因此LED 的驱动需要提供恒流电源,以保证大功率LED 使用的安全性,同时达到理想的发光强度。如果采用恒压方式驱动,LED 正向电压的任何变化都会导致LED 电流的变化。由温度或电压变化引起的特定压变,导致正向电流降低,正向电压变化11%会导致更大的正向电流变化,达30%。电流的变化较大,使LED 的亮度不能恒定。所以一般都选择恒流驱动IC。
三、恒流驱动方式电路
LED 驱动电路除了要满足安全要求外,还应具备两个基本功能:一是尽可能保持恒流特性,又使其在电源电压发生的变动时,仍应能保持输出的电流在的范围内变动;二是应保持较低的自身功耗,这样才能使LED 的系统效率保持在较高水平。随着更新一代大功率LED 所需的驱动电流的增加,要更多的考虑到LED 本身和电流驱动电路的散热管理和功耗等问题。本设计框图如下所示:
(1)适配器的选择:
本设计首先要将高压的交流电变换成低压的直流恒流源,然后经过驱动芯片输出恒流才能点亮LED 光源。最经济有效的方法降压和进行交直流变换
是使用当今便携式电子产品使用交流电源的交直流降压变换
器--适配器(Adapter),既经济实惠、又现成、又好用。适配 器的输出电压要求稳定在DC12V,适配器的输出电流要根据 LED 的光源的功率来选择,一般要给予30%的余量,1W 的
白光LED 的标准工作电流应为350mA,因而3 个LED 光源 串联其电路需要的电流也是350mA,考虑到延长LED 寿命和
降低光衰,可以设计为300mA--330mA,不会明显的影响LED 发光的亮度,所以适配器的输出电流应选750mA~1A 的。
(2)驱动芯片:由于本设计采用恒流驱动方式,所以驱动芯片可以选择PT4115恒流驱动芯片,PT4115是一款连续电感电流导通模式的降压恒流源,适合绿色照明LED 灯的驱动电路。它具有较宽的直流8V 到30V 输入电压范围, 击穿电压大于45V,输出200~1200mA恒定直流,可满足驱动点亮1~7颗串联的大功率LED 或N 颗串并联的小功率LED, 驱动恒流大小可按应用方案设定.。PT4115采用频率抖动技术有效地改善EMI ;采用从满量程向下到零的PWM 调光;安全可靠,调光比可达5000:1;采用SOT89-5的封装,芯片的管芯可通过直接连通到封装外的金属板散热;导热十分有效;PT4115内部设置了过温保护功能,以保证系统稳定可靠的工作。当IC 芯片温度超出160℃,IC 即会进入过温保护状态并停止电流输出, 而当温度低于140℃时,IC 即会重新恢复至工作状态。PT4115可利用模拟调光的原理以及温度对LED 电流的负反馈实现LED 灯具动态温度控制, 只要在调光端(DIM端 加一热敏电阻或PN 结即可。加上整流桥PT4115可应用于交流12V、24V 供电的LED 灯具。PT4115 的工作效率高达97%,是真正的绿色驱动IC,PT4115被广泛应用于使用LED 灯的MR11、MR16、水灯、路灯等各类LED 灯具。PT4115主要参数如下:
• 输入范围从8V 到30V,击穿电压>45V • 输出电流高达1.2A,内置大功率MOFET • 效率高达97% • 超低的关断电流 • ± 5%输出电流精度
• LED开路保护
• 模拟PWM 调光功能选择,高达5000:1的PWM 调光比 • 内部含有抖频特性,有效地改善了EMI 恒流驱动芯片PT4115的5脚封装的管脚图如右图所示,其管脚描述如下: 管脚1:SW,功率开关的漏端; 管脚2:GND,信号和功率;
管脚3:DIM,开关使能、模拟和PWM 调光端;
管脚4:CSN,电流采样端,采样电阻接在CSN 和VIN 端之间; 管脚5:VIN,电源输入端,必须就近接旁路电容。(3大功率LED :可以选择1W 白光LED,其参数如下: • 功 率 :1W • 光 通 量:20-30LM • 顺向电压:3.5-3.8V • 额定电流:350mA
• 光 衰 :≤5%每千小时光衰。• 角 度 :120度
四、设计电路原理图如下:
原理图器件说明:
D1~D4组成单相桥式整流电路,将交流变成直流,即不管U1输出的是直流还是交流,经过这个整流桥之后输出的电流总是直流的,给驱动芯片PT4115输入稳定的直流,保证电路正常工作,桥式整流电路二极管常用1N4007。
C1是滤波电容,把脉冲直流变换成平滑的直流。应选电解电容,型号为100uF/25V。R1是取样电阻,控制PT4115输出电流的大小,它决定恒流源的绝对精度。R1的阻值与负载电流大小有关,一般用下面公式计算:
LED I R 1.01= 由于负载是3个串联的1W LED,额定电流为350mA,则采样电阻R1的大小为: Ω==2857.035
.01.01R 所以R1可以选择阻值约为0.2857欧姆的金属膜电阻。
L 是整流电感,是这个电路中的关键元件,功能是把100KHz 的脉冲电流变换成三角波电流,L 的电感量会影响工作电压范围内恒流源的稳定性。因为PT4115 的设计最佳工作频率在1MHz 以下,电感量大了小会影响其工作频率,本方案的电感设计在68uH 以上,这样系统工作频率可以控制到1MHz 以下。电感量小了,工作频率趋高,由于PT4115内部电流检测电路响应速度限制,对内部电流正常检测出现影响,不能更好的实现对内部开关的导通/关断控制。另外电感量太小还会导致PT4115的SW 端烧坏,而无输出。所以此设计中L 的电感量应选用68uH —100uH,Q 值大于50,饱和电流大于800mA 的磁路闭合电感器。D5是续流二极管,在晶片内部MOS 管处于截止状态时为储存在电感中的电流提供放电回路。由于工作在高频脉冲状态,D5应选用正向压降小,恢复速度快的肖特基二极管。芯片PT4115的DIM 端可外接PWM 脉冲或直流电压调光,也可以接热敏电阻作辅助温度控制和自动亮度控制。由于本设计中不用到调节LED 灯亮度,故DIM 端悬空。
五、PT4115的动态温度调节和过温保护
PT4115具有动态温度调节的功能,并且可以在此功能的基础上实现过温保护。动态温度调节的电路图如下左图所示。从图中可见,DIM 端内部是一个1M 的上拉电阻,连接到内部5V 电源上。所以DIM 端电压由内部上拉电阻和热敏电阻NTC 分压决定。从热敏电阻的特性可以知道,温度的变化会影响NTC 的阻值,进而影响DIM 端电压,以实现PT4115的动态温度调节。
过温保护的实现从如下右图中可见,相对于左图多了一个三极管,当温度升高时。NTC 电阻的阻值减小,其上的分压也减小,则相应的其下面电阻上的分压升高,当超过三极管的开通电压时,三极管导通,DIM 端接地,关断LED 电流,当温度降低时,PT4115重启,因此实现了PT41 15的过温保护。
六、设计总结: 设计总结: 本设计论文从 LED 的特性和驱动方式出发,论述了 LED 的各种驱动方式,并以流过 LED 的电流恒定为基本目的,设计了一个
简单的 LED 驱动电路。在整个设计中,首先阐述了该 驱动电路的基本原理,给出了理论依据。然后根据功能需要设计了一个驱动 3 × 1W 的 LED 驱动电路,并针对应用特点提出了设计中还存在的不足,用实验的方法论证了方案的可行性。在 LED 光源的设计中,考虑各种因素,成功的完成了用 LED 光源代替传统的光源,使光源 兼有节能、环保、长寿和美观等特点。以下是设计中需要注意的问题:
1、驱动芯片 PT4115 是 40V 的 CMOS 工艺制造的,电子功率器件要安全可靠地工作,必 须要留有足够的冗余度,这样才有利于器件的散热,所以输入电压最好在 12V 左右; 2.PT4115 内部自带过温保护功能,外部过温保护可设,对 LED 实现双重保护; 3.PT4115 可利用模拟调光的原理以及温度对 LED 电流的负反馈实现 LED 灯具动态温度控 制,只要在调光端(DIM)加一热敏电阻或 PN 结即可实现 PWM 调光,但 PWM 调光有其 劣势,主要反映在 PWM 调光很容易使得白光 LED 的驱动电路产生人耳听得见的噪声,所 以本设计中没有设计 PWM 调光。3.驱动 3 个 1W 的 LED 灯比只驱动一个 3W 的 LED 灯的发光效率更高。4.在以市电为输入电源的 LED 驱动方案中,有隔离型与非隔离型两种驱动方案,隔离型 驱动安全但效率较低,非隔离型驱动效率较高。5.交流 12V 整流管和续流二极管一定要选用低压降的肖特基二极管,以降低自身功耗; 6.PT4115 利用频抖技术较好地改善了 EMI。频率抖动技术(Frequency JiRer是一种从分散 谐波干扰能量着手解决 EMI 问题的新方法。频率抖动技术是指开关电源的工作频率并非固 定不变,而是周期性地由窄带变为宽带的方式来降低 EMI,来减小电磁干扰的方法。频率 抖动技术通过扩展电源噪声频谱的方式降低了窄带 EMI,频率抖动应不超过基本频率的 20%至 30%。