【雕爷学编程】Arduino动手做(146)---SG3525 PWM频率模块
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百四十六:SG3525 PWM控制器模块 频率可调 占空比可调 波形发生器
知识点:SG3525芯片
是一种性能优良、功能齐全和通用性强的单片集成PWM控制芯片,它简单可靠及使用方便灵活,输出驱动为推拉输出形式,增加了驱动能力;内部含有欠压锁定电路、软启动控制电路、PWM锁存器,有过流保护功能,频率可调,同时能限制最大占空比。
管脚功能
直流电源 Vs 从脚 15 接入后分两路,一路加到或非门;另一路送到基准电压稳压器的输入端,产生稳定的元器件作为电源。振荡器脚 5 须外接电容 CT,脚 6 须外接电阻 RT。振荡器频率由外接电阻RT 和电容CT决定, 振荡器的输出分为两路,一路以时钟脉冲形式送至双稳态触发器及两个或非门;另一路以锯齿波形式送至比较器的同相输入端,比较器的反向输入端接误差放大器的输出,误差放大器的输出与锯齿波电压在比较器中进行比较,输出一个随误差放大器输出电压高低而改变宽度的方波脉冲,再将此方波脉冲送到或非门的一个输入端。或非门的另两个输入端分别为双稳态触发器和振荡器锯齿波。双稳态触发器的两个输出互补,交替输出高低电平,将PwM脉冲送至三极管VT1 及 VT2的基极,锯齿波的作用是加入死区时间,保证 VT1 及VT2不同时导通。最后,VTl及VT2分别输出相位相差为 180°的 PWM波。
1.Inv.input(引脚1):误差放大器反向输入端。在闭环系统中,该引脚接反馈信号。在开环系统中,该端与补偿信号输入端(引脚9)相连,可构成跟随器。
2.Noninv.input(引脚2):误差放大器同向输入端。在闭环系统和开环系统中,该端接给定信号。根据需要,在该端与补偿信号输入端(引脚9)之间接入不同类型的反馈网络,可以构成比例、比例积分和积分等类型的调节器。
3.Sync(引脚3):振荡器外接同步信号输入端。该端接外部同步脉冲信号可实现与外电路同步。
4.OSC.Output(引脚4):振荡器输出端。
5.CT(引脚5):振荡器定时电容接入端。
6.RT(引脚6):振荡器定时电阻接入端。
7.Discharge(引脚7):振荡器放电端。该端与引脚5之间外接一只放电电阻,构成放电回路。
8.Soft-Start(引脚8):软启动电容接入端。该端通常接一只5 的软启动电容。
9.pensation(引脚9):PWM比较器补偿信号输入端。在该端与引脚2之间接入不同类型的反馈网络,可以构成比例、比例积分和积分等类型调节器。
10.Shutdown(引脚10):外部关断信号输入端。该端接高电平时控制器输出被禁止。该端可与保护电路相连,以实现故障保护。
11.Output A(引脚11):输出端A。引脚11和引脚14是两路互补输出端。
12.Ground(引脚12):信号地。
13.Vc(引脚13):输出级偏置电压接入端。
14.Output B(引脚14):输出端B。引脚14和引脚11是两路互补输出端。
15.Vcc(引脚15):偏置电源接入端。
16.Vref(引脚16):基准电源输出端。该端可输出一温度稳定性极好的基准电压。
电流控制型脉宽调制器
随着电能变换技术的发展,功率MOSFET在开关变换器中开始广泛使用,为此美国硅通用半导体公司(Silicon General)推出的,SG3525是用于驱动N沟道功率MOSFET。其产品一推出就受到广泛好评。 SG3525是电流控制型PWM控制器,所谓电流控制型脉宽调制器是按照接反馈电流来调节脉宽的。在脉宽比较器的输入端直接用流过输出电感线圈的信号与误差放大器输出信号进行比较,从而调节占空比使输出的电感峰值电流跟随误差电压变化而变化。由于结构上有电压环和电流环双环系统,因此,无论开关电源的电压调整率、负载调整率和瞬态响应特性都有提高,是目前比较理想的新型控制器。
作为SG3524的改进型,更适合于运用MOS管作为开关器件的DC/DC变换器,它是采用双级型工艺制作的新型模拟数字混合集成电路,性能优异,所需外围器件较少。它的主要特点是:输出级采用推挽输出,双通道输出,占空比0-50%可调.每一通道的驱动电流最大值可达200mA,灌拉电流峰值可达500mA。可直接驱动功率MOS管,工作频率高达400KHz,具有欠压锁定、过压保护和软启动等功能。该电路由基准电压源、震荡器、误差放大器、PWM比较器与锁存器、分相器、欠压锁定输出驱动级,软启动及关断电路等组成,可正常工作的温度范围是0-700C。基准电压为5.1 V士1%,工作电压范围很宽,为8V到35V。
SG3525特点
(1)工作电压范围宽:8—35V。
(2)5.1(11.0%)V微调基准电源。
(3)振荡器工作频率范围宽:100Hz—400KHz.
(4)具有振荡器外部同步功能。
(5)死区时间可调。
(6)内置软启动电路。
(7)具有输入欠电压锁定功能。
(8)具有PWM琐存功能,禁止多脉冲。
(9)逐个脉冲关断。
(10)双路输出(灌电流/拉电流):500mA(峰值)。
SG3525 PWM控制器模块
1、板载SG3525A PWM 控制芯片
2、板载78M05稳压芯片,提供可靠的参考电压
3、板载两个精密可调电阻,R3控制占空比,R4控制频率
4、板载电源指示灯
5、工作电压:8~12V
6、板子尺寸:30.8(mm)x18(mm)1、板载SG3525A PWM 控制芯片
2、板载78M05稳压芯片,提供可靠的参考电压
3、板载两个精密可调电阻,R3控制占空比,R4控制频率
4、板载电源指示灯
5、工作电压:8~12V
6、板子尺寸:30.8(mm)x18(mm)
模块参考电原理图
Arduino实验开源代码
项目测试:波形发生器
模块接线:
SG3525 Arduino
OUT A0
VCC 5V
GND GND
/* 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验一百四十六:SG3525 PWM控制器模块 频率可调 占空比可调 波形发生器 项目测试:波形发生器 模块接线: SG3525 Arduino OUT A0 VCC 5V GND GND */ void setup() { Serial.begin(9600); pinMode(A0, INPUT); } void loop() { int val; val = analogRead(A0); Serial.println(val, DEC); delay(100); }
Arduino实验场景图
实验串口返回情况
串口输出的波形不对,估计这模块损坏了
一年半之后,重新又买了一块模块,准备继续做实验.......
SG3525 是一种脉宽调制控制电路,用于控制开关电源,特别有助于减少外部部件数量并提高性能。它是电压控制PWM控制器,其中反馈电压与参考值进行比较,然后控制PWM的占空比。它主要用于逆变器应用,并利用两个相互反转的主要 PWM 输出。
另一版本的参考电原理图
再次实验,测到了比较奇怪的波形
实验陷入僵局,目前为止,发现的问题有二个:
1、这模块的工作电压应该是7—12V,而不是5V;
2、使用测量模拟电压的简单程序,显然不适合用来测量PWM,需要合适的办法
看来这实验只能先放一放了
又找到一张模块的电原理参考图
一、尺寸:55mmX42mmX30mm
二、主要芯片:SG3525
三、工作电压:直流8V~12V
四、最大工作电流200mA
五、输出电压5V
六、特点:
1、频率可调(100~10KHZ)
2、占空比可调(0%~100%)
3、带电源指示灯
4、可直接驱动IGBT
5、可间接控制直流电机调速
找到一款适合做实验用的电源模块
主要参数如下
1 一路输入:直流6V--12V (输入电压必须比要输出电压高1V以上。)
2 三路输出:3.3V(+-0.05v误差),5.0V(+-0.05v误差),800mA (负载电流不能超过800ma),12V(输入12V直接转输出)
3 双面板设计,布局美观大方;
4 特别设计2个排针固定孔,可直接固定在洞洞板上进行扩展实验;
5 输入输出使用多个排针,方便使用和连接;
6 PCB板尺寸:4.5cm*4.5cm
7 带电源指示灯(红色)
特点:
模块上的这个DC-DC模块可以将12V转换成3.3V,也有12V输出。
两侧面板设计,实用又专业。
专门设计的两排针孔,可直接固定在通用PCB上,扩展实验。
采用多个输入输出引脚,方便使用和连接。
有一个红色的电源指示灯,可以在电源状态下查看。
输入电压可以是 DC 6 V 至 12 V,但输入电压应比输出电压高 1 V。
规格:
单通道 输入电压:DC 6 V 至 12 V
三路输出电压:3.3 V(± 0.05 V 误差)、5 V(± 0.05 V 误差)、12 V(12 V 输入直接到输出)
最大输出电流:800mA(负载电流不能超过800mA)
尺寸:32 x 32 x 13mm / 1.26 x 1.26 x 0.51"
依旧使用简单程序做实验
/* 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验一百四十六:SG3525 PWM控制器模块 频率可调 占空比可调 波形发生器 项目测试:波形发生器 模块接线: SG3525 Arduino OUT A0 VCC 5V GND GND */ void setup() { Serial.begin(9600); pinMode(A0, INPUT); } void loop() { int val; val = analogRead(A0); Serial.println(val, DEC); delay(100); }
实验串口返回情况(不知哪里出错了)
Arduino实验开源代码
/* 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验一百四十六:SG3525 PWM控制器模块 频率可调 占空比可调 波形发生器 项目之二: 模块接线: SG3525 Arduino OUT D3 VCC 5V GND GND */ byte PWM_PIN = 3; int pwm_value; void setup() { pinMode(PWM_PIN, INPUT); Serial.begin(115200); } void loop() { pwm_value = pulseIn(PWM_PIN, HIGH); Serial.println(pwm_value); }
实验串口返回情况