打印
[STM32F1]

【转】STM32学习笔记之十六——题外话,自己做块工程板

[复制链接]
885|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一坨代码|  楼主 | 2016-8-31 00:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32学习笔记之十六——题外话,自己做块工程板

一、我的学习计划将STM32单片机的硬件设计工作:

第一步——用STM32F103CBT6的48脚芯片,为光电平台的简单控制为目标,实现基本外围硬件、PWM、串口、I/O。将SPI、I2C留插针。

第二步——为集成传感器应用为目标,在第一步硬件基础上制作功能性的套版,两板连接实现AD、SPI、I2C、RTC等等功能。

二、硬件规划

选用STM32F103CBT6,面积7×7mm,128K flash,16K RAM,4个16bit PWM,12个12bit PWM或CAP,2个SPI,2个I2C,3个串口,1个CAN,1个USB,),12ADC。

管脚分配目标1如图,之后的功能包括:4个AD,3个串口(1个与I2C复用),1个SPI,8个(两组)PWM输入输出,1个USB,1个I/O,1个MCO。

三、管脚分配:

下载 (32.83 KB)

2009-4-26 16:14



四、ALTIUM DESIGNER 6(Protel的第六个版本)操作笔记

之所以选择这个软件三个理由:1、界面习惯兼容Protel。2、操作习惯于Windows类似方便。3、可输出igs用于结构设计。

软件使用笔记如下:

a)        流程:新建工程,添加原理图,添加SCH库,画原理图,添加PCB库,设定封装,添加PCB,布线,检查,导出生产文件。

b)        新建工程:最好使用自己以前的同版本文档设置,会包含各种库省去大量工作

c)        添加器件到SCH,可使用复制粘贴的办法,注意管脚,有些需要外壳接地的器件把外壳的焊点画出来。完成后点击放置,改动后再器件名称点击右键更改。

d)        画原理图:操作类似其他windows软件,会自动检查错误连接和重复硬件。

e)        添加器件到PCB库,最好使用拷贝粘贴的办法,最好有官方的焊点图。没有的话可以按照封装的型号直接去搜索封装型号(不是器件型号),也有封装的相关尺寸和焊点图。

f)        双击原理图的器件,在右下角改封装名称。

g)        添加新的PCB到工程:

“设计/规则”改线宽、线距、器件距离……;

“设计/板子形状/重新定义板子形状”改工作区域大小,然后左键点击前置Keepout层,画电路板外形;

“设计/板参数选项”改网格大小,器件和走线中鼠标捕捉的间隔大小……;

“设计/Import changes From……”引入原理图的器件和连接方式,包括改动(出现对match提示选择继续就可以了);

“查看/切换单位”改公制和英制;

“工具/取消布线”取消已经布好的线;

“自动布线”计算机自动布线,功能比Protel增强不少;

“报告/测量距离”测量实际距离;

在层标签单击,前置这个层。右键有隐藏层和显示层比较常用。

屏幕中点击右键菜单中“设计/规则”、“选项/板参数选项”、 “选项/层叠管理”(添加和删除层)、“选项/显示掩藏”(针对各种类型进行显示和隐藏,查找未布的线就使用此功能后在操作框中点击“所有最终”然后点击“Apply”,再手工点击所有的选项为“隐藏的”再点“Apply”就能看到未布线的连线了)

快捷键:空格键旋转器件,TAB键切换线宽和放置过孔。左键单击选择,左键按住移动器件(多个重叠会有列表选择,未松开时右键取消操作),左键双击改器件属性(所在层、位置……),右键按住移动鼠标平移视野,滚轮上下移动,滚轮按住移动鼠标放大缩小

五、基本电路原理设计

抛弃复杂设计,专注于可独立调式的CPU板设计。计划设计模块包括:供电、JTAG、晶振、RTC(电池引出)。

注:未使用标准JTAG设计,原因有三:

1、原设计太占管脚,这个尺寸实在难实现

2、这只是CPU板具体应用会再做功能套版,上面可以连接标准JTAG

3、有可能向USB烧写和SW双线调式方向转变,所以以后不一定会使用标准JTAG


   STM32 GPIO应用笔记

1           STM32的输入输出管脚有下面8种可能的配置:(4输入+2输出+2复用输出)

① 浮空输入_IN_FLOATING

② 带上拉输入_IPU   

③ 带下拉输入_IPD            

④ 模拟输入_AIN
⑤ 开漏输出_OUT_OD      

⑥ 推挽输出_OUT_PP

⑦ 复用功能的推挽输出_AF_PP  

⑧ 复用功能的开漏输出_AF_OD

1.1         I/O口的输出模式下,有3种输出速度可选(2MHz、10MHz和50MHz),这个速度是指I/O口驱动电路的响应速度而不是输出信号的速度,输出信号的速度与程序有关(芯片内部在I/O口的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路)。通过选择速度来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的。高频的驱动电路,噪声也高,当不需要高的输出频率时,请选用低频驱动电路,这样非常有利于提高系统的EMI性能。当然如果要输出较高频率的信号,但却选用了较低频率的驱动模块,很可能会得到失真的输出信号。

关键是GPIO的引脚速度跟应用匹配(推荐10倍以上?)。比如:

1.1.1       对于串口,假如最大波特率只需115.2k,那么用2M的GPIO的引脚速度就够了,既省电也噪声小。

1.1.2       对于I2C接口,假如使用400k波特率,若想把余量留大些,那么用2M的GPIO的引脚速度或许不够,这时可以选用10M的GPIO引脚速度。

1.1.3       对于SPI接口,假如使用18M或9M波特率,用10M的GPIO的引脚速度显然不够了,需要选用50M的GPIO的引脚速度。

1.2         GPIO口设为输入时,输出驱动电路与端口是断开,所以输出速度配置无意义。

1.3         在复位期间和刚复位后,复用功能未开启,I/O端口被配置成浮空输入模式。

1.4         所有端口都有外部中断能力。为了使用外部中断线,端口必须配置成输入模式。

1.5         GPIO口的配置具有上锁功能,当配置好GPIO口后,可以通过程序锁住配置组合,直到下次芯片复位才能解锁。



2           在STM32中如何配置片内外设使用的IO端口

首先,一个外设经过 ①配置输入的时钟和 ②初始化后即被激活(开启);③如果使用该外设的输入输出管脚,则需要配置相应的GPIO端口(否则该外设对应的输入输出管脚可以做普通GPIO管脚使用);④再对外设进行详细配置。

对应到外设的输入输出功能有下述三种情况:
一、外设对应的管脚为输出:需要根据外围电路的配置选择对应的管脚为复用功能的推挽输出或复用功能的开漏输出。
二、外设对应的管脚为输入:则根据外围电路的配置可以选择浮空输入、带上拉输入或带下拉输入。
三、ADC对应的管脚:配置管脚为模拟输入。

如果把端口配置成复用输出功能,则引脚和输出寄存器断开,并和片上外设的输出信号连接。将管脚配置成复用输出功能后,如果外设没有被激活,那么它的输出将不确定。



3           通用IO端口(GPIO)初始化:

3.1            GPIO初始化

3.1.1       RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | B | C, ENABLE):使能APB2总线外设时钟

3.1.2       RCC_ APB2PeriphResetCmd (RCC_APB2Periph_GPIOA | B | C, DISABLE):释放GPIO复位

3.2            配置各个PIN端口(模拟输入_AIN、输入浮空_IN_FLOATING、输入上拉_IPU、输入下拉_IPD、开漏输出_OUT_OD、推挽式输出_OUT_PP、推挽式复用输出_AF_PP、开漏复用输出_AF_OD)

3.3            GPIO初始化完成



下面我就在做个抛砖引玉,根据ST手册上的内容,简单地综述一下GPIO的功能:
一、共有8种模式,可以通过编程选择:
  1. 浮空输入
  2. 带上拉输入
  3. 带下拉输入
  4. 模拟输入
  5. 开漏输出——(此模式可实现hotpower说的真双向IO)
  6. 推挽输出
  7. 复用功能的推挽输出
  8. 复用功能的开漏输出
模式7和模式8需根据具体的复用功能决定。

二、专门的寄存器(GPIOx_BSRR和GPIOx_BRR)实现对GPIO口的原子操作,即回避了设置或清除I/O端口时的“读-修改-写”操作,使得设置或清除I/O端口的操作不会被中断处理打断而造成误动作。

三、每个GPIO口都可以作为外部中断的输入,便于系统灵活设计。

四、I/O口的输出模式下,有3种输出速度可选(2MHz、10MHz和50MHz),这有利于噪声控制。

五、所有I/O口兼容CMOS和TTL,多数I/O口兼容5V电平。

六、大电流驱动能力:GPIO口在高低电平分别为0.4V和VDD-0.4V时,可以提供或吸收8mA电流;如果把输入输出电平分别放宽到1.3V和VDD-1.3V时,可以提供或吸收20mA电流。

七、具有独立的唤醒I/O口。

八、很多I/O口的复用功能可以重新映射。

九、GPIO口的配置具有上锁功能,当配置好GPIO口后,可以通过程序锁住配置组合,直到下次芯片复位才能解锁。此功能非常有利于在程序跑飞的情况下保护系统中其他的设备,不会因为某些I/O口的配置被改变而损坏——如一个输入口变成输出口并输出电流。


沙发
一坨代码|  楼主 | 2016-8-31 00:18 | 只看该作者
STM32第一个例子

//**********************************************************************
// 作者:YYYtech
// 时间:2007/12/14
//***********************************************************************
/***********************************************************************
main文件,GPIO操作,完成最简单的IO操作实验,就是控制LED灯
4个LED分别对应PC的6、7、8、9引脚。4个LED流水显示
**************************************************************************/
#include "stm32f10x_lib.h"


GPIO_InitTypeDef GPIO_InitStructure;

void LED_Init(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);

}

void LED_TurnOn(u8 led)
{
  
}

void Delay(vu32 nCount)
{
for(; nCount != 0; nCount--);
}

main()
{

//RCC_Configuration();
LED_Init();

while(1)
{
   GPIO_SetBits(GPIOC, GPIO_Pin_9);
   Delay(0x8ffff);
   GPIO_ResetBits(GPIOC, GPIO_Pin_9);
   Delay(0x8ffff);
   GPIO_SetBits(GPIOC, GPIO_Pin_10);
   Delay(0x8ffff);
   GPIO_ResetBits(GPIOC, GPIO_Pin_10);
   Delay(0x8ffff);
   GPIO_SetBits(GPIOC, GPIO_Pin_11);
   Delay(0x8ffff);
   GPIO_ResetBits(GPIOC, GPIO_Pin_11);
   Delay(0x8ffff);
   GPIO_SetBits(GPIOC, GPIO_Pin_12);
   Delay(0x8ffff);
   GPIO_ResetBits(GPIOC, GPIO_Pin_12);
   Delay(0x8ffff);
}
}
注意:在这里用到了RCC和GPIO的库函数,所以必须把这两个函数加入工程。
  
关于固件库函数在文件夹:C:\Keil\ARM\RV31\LIB\ST\STM32F10x
为了不在操作过程中避免改变KEIL文件夹下的库函数,可以固件函数库放到其他文件夹下,如:E:\jy\work\STM\WxlStm32\LAB\library
其中stm32f10x_lib.c文件是整个库的一些定义,是必须要的。
加入后的工程为:

GPIO库函数简单说明:
函数名称 功能描述
GPIO_DeInit 重新初始化外围设备GPIOx相关寄存器到它的默认复位值
GPIO_AFIODeInit 初始化交错功能(remap, event control和 EXTI 配置) 寄存器
GPIO_Init 根据GPIO_初始化结构指定的元素初始化外围设备GPIOx
GPIO_StructInit 填充GPIO_初始化结构(GPIO_InitStruct)内的元素为复位值
GPIO_ReadInputDataBit 读指定端口引脚输入数据
GPIO_ReadInputData 读指定端口输入数据
GPIO_ReadOtputDataBit 读指定端口引脚输出数据
GPIO_ReadOtputData 读指定端口输出数据
GPIO_SetBits 置1指定的端口引脚
GPIO_ResetBits 清0指定的端口引脚
GPIO_WriteBit 设置或清除选择的数据端口引脚
GPIO_Write 写指定数据到GPIOx端口寄存器
GPIO_ANAPinConfig 允许或禁止 GPIO 4 模拟输入模式
GPIO_PinLockConfig 锁定GPIO引脚寄存器
GPIO_EventOutputConfig 选择GPIO引脚作为事件输出
GPIO_EventOutputCmd 允许或禁止事件输出
GPIO_PinRemapConfig 改变指定引脚的影射
GPIO_EMIConfig 允许或禁止GPIO 8 和 9 的EMI 模式
拓展实验:
在上面LED灯流水显示的基础之上加上按键程序,首先来看看按键的原理图:

当然这个原理图也是相当之简单的,不用读解释了,唯一注意的是OK键与其他三个键的区别是按下为高电平,其余三个按下为低电平。
加入后的完整清单如下:
//**********************************************************************
// 作者:JingYong
// 时间:2008/4/24
//***********************************************************************
/***********************************************************************
GPIO操作,完成最简单的IO操作实验,用按键控制LED灯闪烁
**************************************************************************/
#include "stm32f10x_lib.h"

GPIO_InitTypeDef GPIO_InitStructure;
//键盘定义
#define    KEY_OK     GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)
#define    KEY_DOWN    GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1)
#define    KEY_UP     GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_2)
#define    KEY_ESC    GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3)
//LED初始化
void LED_Init(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
}
//按键初始化
void KEY_Init (void)
{
    GPIO_InitTypeDef gpio_init;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    gpio_init.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;
    gpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIOA, &gpio_init);
}
//延迟函数
void Delay(vu32 nCount)
{
for(; nCount != 0; nCount--);
}
//主函数
main()
{
//RCC_Configuration();
LED_Init();
KEY_Init ();

while(1)
{
   if(!KEY_ESC)
   {
    while(!KEY_ESC) ;
    GPIO_SetBits(GPIOC, GPIO_Pin_9);
    Delay(0x8ffff);
    GPIO_ResetBits(GPIOC, GPIO_Pin_9);
    Delay(0x8ffff);
   }
   else if(!KEY_UP)
   {
    while(!KEY_UP) ;
    GPIO_SetBits(GPIOC, GPIO_Pin_10);
    Delay(0x8ffff);
    GPIO_ResetBits(GPIOC, GPIO_Pin_10);
    Delay(0x8ffff);
   }
   else if(!KEY_DOWN)
   {
    while(!KEY_DOWN) ;
    GPIO_SetBits(GPIOC, GPIO_Pin_11);
    Delay(0x8ffff);
    GPIO_ResetBits(GPIOC, GPIO_Pin_11);
    Delay(0x8ffff);
   }
   else if(KEY_OK)
   {
    while(KEY_OK) ;
    GPIO_SetBits(GPIOC, GPIO_Pin_12);
    Delay(0x8ffff);
    GPIO_ResetBits(GPIOC, GPIO_Pin_12);
    Delay(0x8ffff);
   }
}
}
该例子是按下不同的按键,闪烁对应的LED灯。
                                              STM32的GPIO口的输出:开漏输出和推挽输出 收藏
推挽输出与开漏输出的区别:

>>推挽输出:可以输出高,低电平,连接数字器件

>>开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////          三极管的开漏输出有什么特性,和推挽是不是一回事,
问题:
    很多芯片的供电电压不一样,有3.3v和5.0v,需要把几种IC的不同口连接在一起,是不是直接连接就可以了?实际上系统是应用在I2C上面。
简答:
1、部分3.3V器件有5V兼容性,可以利用这种容性直接连接
2、应用电压转换器件,如TPS76733就是5V输入,转换成3.3V、1A输出。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

开漏电路特点及应用

    在电路设计时我们常常遇到开漏(open drain)和开集(open collector)的概念。所谓开漏电路概念中提到的“漏”就是指MOSFET的漏极。同理,开集电路中的“集”就是指三极管的集电极。开漏电路就是指以MOSFET的漏极为输出的电路。一般的用法是会在漏极外部的电路添加上拉电阻。完整的开漏电路应该由开漏器件和开漏上拉电阻组成。

组成开漏形式的电路有以下几个特点:
1. 利用 外部电路的驱动能力,减少IC内部的驱动。当IC内部MOSFET导通时,驱动电流是从外部的VCC流经R pull-up ,MOSFET到GND。IC内部仅需很下的栅极驱动电流。如图1。
2. 可以将多个开漏输出的Pin,连接到一条线上。形成 “与逻辑” 关系。如图1,当PIN_A、PIN_B、PIN_C任意一个变低后,开漏线上的逻辑就为0了。这也是I2C,SMBus等总线判断总线占用状态的原理。
3. 可以利用改变上拉电源的电压,改变传输电平。如图2, IC的逻辑电平由电源Vcc1决定,而输出高电平则由Vcc2决定。这样我们就可以用低电平逻辑控制输出高电平逻辑了。
4. 开漏Pin不连接外部的上拉电阻,则只能输出低电平(因此对于经典的51单片机的P0口而言,要想做输入输出功能必须加外部上拉电阻,否则无法输出高电平逻辑)。
5. 标准的开漏脚一般只有输出的能力。添加其它的判断电路,才能具备双向输入、输出的能力。

应用中需注意:
1.   开漏和开集的原理类似,在许多应用中我们利用开集电路代替开漏电路。例如,某输入Pin要求由开漏电路驱动。则我们常见的驱动方式是利用一个三极管组成开集电路来驱动它,即方便又节省成本。如图3。
2. 上拉电阻R pull-up的 阻值 决定了 逻辑电平转换的沿的速度 。阻值越大,速度越低功耗越小。反之亦然。

   Push-Pull输出就是一般所说的推挽输出,在CMOS电路里面应该较CMOS输出更合适,应为在CMOS里面的push-pull输出能力不可能做得双极那么大。输出能力看IC内部输出极N管P管的面积。和开漏输出相比,push-pull的高低电平由IC的电源低定,不能简单的做逻辑操作等。 push-pull是现在CMOS电路里面用得最多的输出级设计方式。
at91rm9200 GPIO 模拟I2C接口时注意!!

一.什么是OC、OD

集电极开路门(集电极开路 OC 或源极开路OD)
open-drain是漏极开路输出的意思,相当于集电极开路(open-collector)输出,即ttl中的集电极开路(oc)输出。一般用于线或、线与,也有的用于电流驱动。
open-drain是对mos管而言,open-collector是对双极型管而言,在用法上没啥区别。
开漏形式的电路有以下几个特点:
1.利用外部电路的驱动能力,减少IC内部的驱动。 或驱动比芯片电源电压高的负载.
2. 可以将多个开漏输出的Pin,连接到一条线上。通过一只上拉电阻,在不增加任何器件的情况下,形成“与逻辑”关系。这也是I2C,SMBus等总线判断总线占用状态的原理。如果作为图腾输出必须接上拉电阻。接容性负载时,下降延是芯片内的晶体管,是有源驱动,速度较快;上升延是无源的外接电阻,速度慢。如果要求速度高电阻选择要小,功耗会大。所以负载电阻的选择要兼顾功耗和速度。
3.可以利用改变上拉电源的电压,改变传输电平。例如加上上拉电阻就可以提供TTL/CMOS电平输出等。
4.开漏Pin不连接外部的上拉电阻,则只能输出低电平。一般来说,开漏是用来连接不同电平的器件,匹配电平用的。
5.正常的CMOS输出级是上、下两个管子,把上面的管子去掉就是OPEN-DRAIN了。这种输出的主要目的有两个:电平转换和线与。

6.由于漏级开路,所以后级电路必须接一上拉电阻,上拉电阻的电源电压就可以决定输出电平。这样你就可以进行任意电平的转换了。
7.线与功能主要用于有多个电路对同一信号进行拉低操作的场合,如果本电路不想拉低,就输出高电平,因为OPEN-DRAIN上面的管子被拿掉,高电平是靠外接的上拉电阻实现的。(而正常的CMOS输出级,如果出现一个输出为高另外一个为低时,等于电源短路。)

8.OPEN-DRAIN提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。因为上升沿是通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。所以如果对延时有要求,则建议用下降沿输出。

二.什么是线或逻辑与线与逻辑?

   在一个结点(线)上, 连接一个上拉电阻到电源 VCC 或 VDD 和 n 个 NPN 或 NMOS 晶体管的集电极 C 或漏极 D, 这些晶体管的发射极 E 或源极 S 都接到地线上, 只要有一个晶体管饱和, 这个结点(线)就被拉到地线电平上.
因为这些晶体管的基极注入电流(NPN)或栅极加上高电平(NMOS), 晶体管就会饱和, 所以这些基极或栅极对这个结点(线)的关系是或非 NOR 逻辑. 如果这个结点后面加一个反相器, 就是或 OR 逻辑.

注:个人理解:线与,接上拉电阻至电源。(~A)&(~B)=~(A+B),由公式较容易理解线与此概念的由来 ;

如果用下拉电阻和 PNP 或 PMOS 管就可以构成与非 NAND 逻辑, 或用负逻辑关系转换与/或逻辑.

注:线或,接下拉电阻至地。(~A)+(~B)=~(AB);
这些晶体管常常是一些逻辑电路的集电极开路 OC 或源极开路 OD 输出端. 这种逻辑通常称为线与/线或逻辑, 当你看到一些芯片的 OC 或 OD 输出端连在一起, 而有一个上拉电阻时, 这就是线或/线与了, 但有时上拉电阻做在芯片的输入端内.
顺便提示如果不是 OC 或 OD 芯片的输出端是不可以连在一起的, 总线 BUS 上的双向输出端连在一起是有管理的, 同时只能有一个作输出, 而其他是高阻态只能输入.

三.什么是推挽结构
一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.要实现线与需要用OC(open collector)门电路 .如果输出级的有两个三极管,始终处于一个导通、一个截止的状态,也就是两个三级管推挽相连,这样的电路结构称为推拉式电路或图腾柱(Totem- pole)输出电路(可惜,图无法贴上)。当输出低电平时,也就是下级负载门输入低电平时,输出端的电流将是下级门灌入T4;当输出高电平时,也就是下级负载门输入高电平时,输出端的电流将是下级门从本级电源经 T3、D1 拉出。这样一来,输出高低电平时,T3 一路和 T4 一路将交替工作,从而减低了功耗,提高了每个管的承受能力。又由于不论走哪一路,管子导通电阻都很小,使RC常数很小,转变速度很快。因此,推拉式输出级既提高电路的负载能力,又提高开关速度。供你参考。
推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小效率高。

输出既可以向负载灌电流,也可以从负载抽取电流

使用特权

评论回复
板凳
mmuuss586| | 2016-8-31 09:33 | 只看该作者
谢谢分享

使用特权

评论回复
地板
一坨代码|  楼主 | 2016-8-31 23:13 | 只看该作者

多谢支持!

使用特权

评论回复
5
daheshangshang| | 2016-9-2 13:24 | 只看该作者
辛苦楼主整理的这么好

使用特权

评论回复
6
一坨代码|  楼主 | 2016-9-3 23:19 | 只看该作者
daheshangshang 发表于 2016-9-2 13:24
辛苦楼主整理的这么好

过奖了过奖了!
能给别人提供帮助就好!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

52

主题

109

帖子

2

粉丝