Stm32 L9110驱动风扇

一.原理图
 

二.示例代码
 

#include "pwm.h"


//PWM输出初始化
//arr:自动重装值
//psc:时钟预分频数
void TIM_PWM_Init(u16 arr,u16 psc)
{  
	GPIO_InitTypeDef GPIO_InitStructure;
	TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
	TIM_OCInitTypeDef  TIM_OCInitStructure;

	RCC_APB1PeriphClockCmd(UserPeriph_ADCx, ENABLE);// 
 	RCC_APB2PeriphClockCmd(UserPeriph_GPIOx , ENABLE);  //使能GPIO外设时钟使能
	                                                                     	

   //设置该引脚为复用输出功能,输出TIM1 CH1的PWM脉冲波形
	GPIO_InitStructure.GPIO_Pin = UserPeriph_PINx; //TIM_CH1
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(UserGPIOx, &GPIO_InitStructure);

	
	TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值	 80K
	TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值  不分频
	TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_tim
	TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式
	TIM_TimeBaseInit(UserTIMEx, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位

 
	TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //选择定时器模式:TIM脉冲宽度调制模式2
	TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能
	TIM_OCInitStructure.TIM_Pulse = 0; //设置待装入捕获比较寄存器的脉冲值
	TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高
	TIM_OC3Init(UserTIMEx, &TIM_OCInitStructure);  //根据TIM_OCInitStruct中指定的参数初始化外设TIMx

  TIM_CtrlPWMOutputs(UserTIMEx,ENABLE);	//MOE 主输出使能	

	TIM_OC3PreloadConfig(UserTIMEx, TIM_OCPreload_Enable);  //CH1预装载使能	 
	
	TIM_ARRPreloadConfig(UserTIMEx, ENABLE); //使能TIMx在ARR上的预装载寄存器
	
	TIM_Cmd(UserTIMEx, ENABLE);  //使能TIM1
}
#ifndef __PWM_H
#define __PWM_H
#include "sys.h"


#define UserTIMEx TIM3
#define UserPeriph_ADCx RCC_APB1Periph_TIM3
#define UserPeriph_GPIOx RCC_APB2Periph_GPIOB
#define UserGPIOx GPIOB
#define UserPeriph_PINx GPIO_Pin_0

#define close 100
#define one_step 80
#define two_step 60
#define three_step 40
#define four_step 20

void TIM_PWM_Init(u16 arr,u16 psc);

#endif

 

    TIM_PWM_Init(100,10);

    switch(pwm){
        case 0: TIM_SetCompare3(TIM3,close); break;
        case 1: TIM_SetCompare3(TIM3,one_step); break;
        case 2: TIM_SetCompare3(TIM3,two_step); break;
        case 3: TIM_SetCompare3(TIM3,three_step); break;
        case 4: TIM_SetCompare3(TIM3,four_step); break;
    }

三.注意点

PB0 占空比 为 100 关闭
pB1 占空比 为0 关闭

<think>好的,我现在需要帮助用户查询L9110驱动芯片的技术资料和应用电路。根据用户提供的引用内容,首先我需要整理这些引用中的关键信息,然后结合自己的知识库来生成详细的回答。 首先,用户引用了四个来源,其中引用1、2、3、4都提到了L9110S芯片的功能、参数和应用。需要注意的是,用户问的是L9110,而引用中提到的都是L9110S,这可能是一个型号的变种,或者可能存在拼写错误。不过根据常见的芯片命名规则,L9110和L9110S可能是同一系列的不同封装或版本,但需要确认。不过根据引用内容,特别是引用4,详细描述了L9110的参数,可能用户的问题中的L9110实际指的是L9110S。因此,在回答时需要指出这一点,并假设用户指的是L9110S。 接下来,需要从引用中提取关键信息: 1. 基本参数:输入电压2.5V-12V,输出电流800mA持续,峰值1.5A,工作温度-20°C到80°C,低静态电流,TTL/CMOS兼容输入,H桥驱动,内置钳位二极管,SOP8封装等。 2. 应用场景:智能锁、玩具、卫浴设备、小功率直流电机驱动,如电池供电的玩具、低压控制应用等。 3. 应用电路:引用2提到电机接在OA和OB引脚,引用4提到H桥结构,内置钳位二极管,可能需要外部电源和逻辑控制信号。 然后,用户需要应用电路,可能需要画一个典型的H桥连接图,但由于文本回答,需要用文字描述。例如,连接VCC和GND,输入控制信号到IA和IB,电机接在OA和OB之间,同时可能需要电源滤波电容和保护措施。 此外,还需要考虑技术资料中的典型应用电路,可能包括如何控制正反转,以及如何通过PWM调速。引用中提到控制逻辑,如IA=高,IB=低时正转,反之反转,或者同时高或低时停止或刹车。 需要验证这些信息是否在引用中存在。引用4提到“两个TTL/CMOS兼容电平的输入”,所以控制逻辑应该是通过IA和IB的高低电平组合来控制电机方向。同时,输出端OA和OB直接接电机,形成H桥。 另外,关于芯片手册的下载地址,引用1提供了项目地址,可能需要检查该链接是否有效,但用户可能无法访问外部链接,所以回答中可以提到该引用,并建议用户访问该地址获取手册。 在整理信息时,需要确保技术参数的准确性,例如输入电压范围、电流能力、封装类型等,这些在引用4中有详细说明。同时,应用电路部分需要描述如何连接电机、电源和控制信号,可能还需要提到外部元件如滤波电容,但根据引用3和4,L9110S是集成解决方案,外围电路可能较简单。 可能存在的疑问点:是否L9110和L9110S是同一个芯片的不同版本?根据引用内容,用户提供的资料都是关于L9110S的,但用户问的是L9110,可能需要指出这一点,并假设用户指的是L9110S,或者说明可能存在不同版本,建议用户确认型号。 总结回答的结构: 1. 技术参数:列出电压、电流、封装、控制逻辑等。 2. 应用电路:描述连接方式,控制信号逻辑,电机连接,电源部分,可能的外围电路。 3. 典型应用场景:如玩具、智能锁等。 4. 技术资料获取:引用1中的下载地址。 5. 相关问题:如优化散热、控制逻辑、替代方案等。 需要确保回答符合用户要求的格式:使用中文,行内公式用$...$,独立公式用$$...$$,但在这个问题中可能不需要数学公式,但如果有涉及计算的部分可能需要。例如,计算电流或功耗时可能需要公式,但根据引用内容,可能不需要。 最后,生成相关问题,如驱动电流不足怎么办,如何实现调速,替代芯片有哪些等。 检查是否有遗漏的信息,例如保护功能,如过流保护、过热保护,但根据引用4,芯片有管脚高压保护和内置钳位二极管,这可能已经足够,不需要外部保护电路。 可能还需要提到典型应用中的注意事项,如电源电压稳定性,电机负载不超过额定电流,散热措施等。</think>### L9110驱动芯片技术信息及应用电路 #### 一、L9110S芯片基本特性 L9110S是专为小功率直流电机设计的**双通道H桥驱动芯片**,主要参数如下: - **输入电压**:$2.5\text{V} \sim 12\text{V}$ - **输出电流**:持续$800\text{mA}$,峰值$1.5\text{A}$ - **控制逻辑**:TTL/CMOS电平兼容(输入引脚IA、IB) - **封装形式**:SOP8 - **保护功能**:内置钳位二极管(吸收感性负载反向电流)、引脚高压保护[^4]。 #### 二、典型应用电路 L9110S通过H桥电路控制电机正反转,典型连接方式如下: 1. **电源与地**: - 引脚$V_{CC}$接电源($2.5\text{V} \sim 12\text{V}$),$GND$接地。 - 建议在$V_{CC}$与$GND$之间添加$0.1\mu\text{F}$滤波电容以稳定供电[^1]。 2. **电机连接**: - 电机两端分别接芯片的$OA$和$OB$引脚[^2]。 3. **控制逻辑**: - 通过输入引脚$IA$和$IB$的电平组合控制电机状态: | IA | IB | 电机状态 | |-----|-----|----------| | 高 | 低 | 正转 | | 低 | 高 | 反转 | | 高 | 高 | 停止 | | 低 | 低 | 停止 | **示例代码(PWM调速)**: ```python # 通过PWM调节电机速度(以Arduino为例) analogWrite(IA_PIN, speed); # speed范围0-255 digitalWrite(IB_PIN, LOW); # 正转 ``` #### 三、典型应用场景 1. **智能锁**:驱动锁舌电机实现开关动作。 2. **玩具**:控制玩具车马达正反转[^3]。 3. **卫浴设备**:如自动感应水龙头的小功率阀门控制[^4]。 #### 四、技术资料获取 完整芯片手册可参考引用[1]中的项目地址: > https://gitcode.com/Open-source-documentation-tutorial/f1a6b ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值