单片机I/O驱动,为什么一样平常选用三极管而不是MOS管?(作者:硬件条记本)
这里实在有两个问题:
1.单片机为什么不直接驱动负载?

2.单片机为什么一样平常选用三极管而不是MOS管?
图1
答:1.单片机的IO口,有一定的带负载能力。但电流很小,驱动能力有限,一样平常在10-20mA以内。以是一样平常不采取单片机直接驱动负载这种办法。
2.至于单片机为什么一样平常选用三极管而不是MOS管?须要理解三极管和MOS管的差异,如下:①三极管是电流掌握型,三极管基极驱动电压只要高于Ube(一样平常是0.7V)就能导通。②MOS管是电压掌握型,驱动电压必须高于阈值电压Vgs(TH)才能正常导通,不同MOS管的阈值电压是不一样的,一样平常为3-5V旁边,饱和驱动电压可在6-8V。
我们再来看实际运用:
处理器一样平常讲究低功耗,供电电压也越来越低,一样平常单片机供电为3.3V,以是它的I/O最高电压也便是3.3V。
①直接驱动三极管
3.3V电压肯定是大于Ube的,以是直接在基极串联一个得当的电阻,让三极监工作在饱和区就可以了。Ib=(VO-0.7V)/R2。
图2 驱动三极管示意图
②驱动MOS管
通过前面也理解到,MOS管的饱和电压>3.3V,如果用3.3V来驱动的话,很可能MOS管根本就打不开,或者处于半导通状态。
在半导通状态下,管子的内阻很大,驱动小电流负载可以这么用。但是大电流负载就弗成了,内阻大,管子的功耗大,MOS管很随意马虎就烧坏了。
以是,一样平常选择I/O口直接掌握三极管,然后再掌握MOS管。
图3 I/O口驱动三极管后再驱动MOS管
当I/O为高电平时,三极管导通,MOS管栅极被拉低,负载RL不事情。
当I/O为低电平时,三极管不导通,MOS管通过电阻R3,R4分压,为栅极供应得当的阈值电压,MOS管导通,负载RL正常事情……
实例剖析stm32单片机六大滤波算法(作者:liuxiaofei126)
本日禀享一下stm32单片机滤波算法
在某些特定场合,不可避免地要用到数学运算,只管单片机并不善于实现算法和进行繁芜的运算。下面紧张是先容如何用单片机实现数字滤波。
在单片机进行数据采集时,会碰着数据的随机偏差,随机偏差是由随机滋扰引起的,其特点是在相同条件下丈量同一量时,其大小和符号会现无规则的变革而无法预测,但多次丈量的结果符合统计规律。
为战胜随机滋扰引起的偏差,硬件上可采取滤波技能,软件上可采取软件算法实现数字滤波。滤波算法每每是系统测控算法的一个主要组成部分,实时性很强。
一、采取数字滤波算法战胜随机滋扰的偏差具有以下优点:
数字滤波无需其他的硬件本钱,只用一个打算过程,可靠性高,不存在阻抗匹配问题。尤其是数字滤波可以对频率很低的旗子暗记进行滤波,这是仿照滤波器做不到的。数字滤波利用软件算法实现,多输入通道可共用一个滤波程序,降落系统开支。只要适当改变滤波器的滤波程序或运算,就能方便地改变其滤波特性,这对付滤除低频滋扰和随机旗子暗记会有较大的效果。在单片机系统中常用的滤波算法有限幅滤波法、中值滤波法、算术均匀滤波法、加权均匀滤波法、滑动均匀滤波等。二、限幅滤波算法
该运算的过程中将两次相邻的采样相减,求出其增量,然后将增量的绝对值,与两次采样许可的最大差值A进行比较。
A的大小由被测工具的详细情形而定,如果小于或即是许可的最大差值,则本次采样有效;否则取上次采样值作为本次数据的样本。
算法的程序代码如下……
单片机编程:如何“喂狗”的灵魂拷问...(作者:嵌入式堆栈)
单片机程序写那么多,看门狗狗每天见,你的狗狗养的对么?一直的“喂狗 ”,只要狗不叫就完了嘛?真是这样么?事实上可能不是你想的那么大略.....
啥叫看门狗?看门狗也称为看门狗定时器,实质上是一种定时电路或者软件定时器机制。
事情事理:
看门狗的硬件根本是一个计数器,该计数器被设置为某个定时初值,然后递减至零。软件卖力常常将计数重置为其定时初值,以确保计数永久不会达到零。如果确实达到零,则意味着某种故障发生,该采纳对应方法应对,或重启或进入失落效安全状态,详细取决于系统的设计。
正常事情时,单片机、处理器或者线程,周期性重置看门狗定时器的定时值,定时器则在后台不断的计数,如果定时韶光到了且没有再次喂狗,则狗叫,意味着一些不屈常的事情发生了!
此时,狗狗对外发出指令,实行相应的动作。这里所谓的动作究竟是什么?取决于实际系统的设计。常见的看门狗芯片则会发出复位旗子暗记给单片机或者处理,对付软件定时器而言,具体会有何种动作,则灵巧多变,详细取决于采取何种安全策略。
普通讲也称为喂狗,这个定时值相称于狗粮,狗狗吃饱了,胃里不断花费狗粮,如果在花费完之前没有在喂狗粮,再狗狗饿得直叫喊,发出预警。反言之,一个一贯正常事情的系统,其看门狗总是被喂养的很好,不会饿了狂叫。
注:看到有文章把重置看门狗定时器叫踢狗(kick watchdog),嗯嗯,这不太好,要对狗狗好一点,不要踢,叫喂吧~
看门狗机制在电子系统中浸染非常之主要,这里举个极度的栗子,火星车如果程序挂了,就相称于失落联,如果没有看门狗电路。你想象一下是什么场景,无法通讯无法唤醒,秒变太空垃圾~
能看住哪些缺点呢?栈或堆溢出,程序跑飞某段程序非常无法返回或陷入去世循环强电磁滋扰毁坏数据导致系统非常,这你或许不好理解,你就想象一下军事领域,或者航空航天领域很多电子系统,常事情在强电磁滋扰环境中bug导致的系统宕机多任务系统中去世锁......
缘故原由切切千,憋慌!
你还有个好狗狗在帮你,让看门狗来整顿残局吧。在一个繁芜的嵌入式系统中,不可能担保没有bug,但是通过利用看门狗,您可以担保没有任何bug会无限期地挂起系统。
常见的处理策略有哪些呢……
STM32单片机最小系统详解(作者:程序员小哈)
STM32F103RCT6:
STM32F103RCT6是一种嵌入式-微掌握器的集成电路(IC),32位 Cortex-M3内核处理器,速率是72MHz,程序存储器容量是256KB,程序存储器类型是FLASH,RAM容量是48K,封装LQFP64。
STM32单片机命名规则:
STM32单片机最小系统:
所谓单片机最小系统,便是让单片机能够正常运行,最少且必须的器件所组成的系统。
单片机最小系统上电之后,单片机可以正常复位,下载程序,除此之外没有其他任何功能。
在最小系统担保精确的根本上,可以依次添加其他功能模块或器件,使之单片机具有实际功能。
STM32单片机最小系统包括一个复位电路和一个时钟电路。如下图1所示。
图中复位电路利用的是上电复位电路,STM32单片机NRST引脚输入低电平,则发生复位。
标题图1 STM32F103单片机最小系统
电源引脚:
VDD是单片机的数字电源正极,VSS是数字电源负极,共有5个VDD引脚,5个VSS引脚。VDDA是单片机的仿照电源正极,卖力给内部的ADC、DAC模块供电,VSSA是仿照电源负极。
还有一个电源引脚,便是VBAT,BAT便是Battery(电池),这个引脚用来连接电池的正极的。STM32带RTC功能(实时时钟),以是有VBAT引脚。
事理图上预留了一个CR1220纽扣锂电池,当主电源供电存在的情形下,由系统中的VCC3.3给VBAT供电;
当主电源断电之后,由CR1220纽扣电池给STM32自带的RTC模块供电,从而能够担保实时时钟模块在主电源掉电的情形下还能够正常事情。
但是这样设计的话,这里有一个抵牾须要办理。如果VBAT引脚直接与VCC3.3和CR1220连接的话,会存不才面问题:
1、当电池电压高于3.3V,电池就会输出电流到AMS1117,使得芯片发烫,还会很快花费电池电量。
2、如果电池电压低于3.3V,AMS1117产生的3.3V,就会给电池充电,而这种CR1220电池是不能够充电的。
为理解决上面问题,我们将VBAT引脚的供电电路设计如下:
D1防止电池的电流流向AMS1117,D2防止AMS1117产生的3.3V流向电池。
之以是这样设计,用的便是“二极管的单引导通性”。
正常产品设计的时候,每个电源引脚阁下,最好放置一个0.1uF的电容滤波,用来滤除电源的噪声杂波。
复位引脚NRST
复位便是重启。STM32复位引脚是低电平复位,正常事情状态,复位引脚是高电平。
单片机的置位和复位,其目的都是为了把电路初始化到一个确定状态。复位时在单片机内部单片机是将存储设备和一些寄存器装入生产厂商预设的一个值。一样平常来说,单片机复位电路的浸染是把一个状态机初始化到一个空的状态……
STM32单片机PVD(掉电检测)的先容及其主要浸染(作者:玩转单片机与嵌入式)
有时在一些运用中,我们须要检测系统是否掉电了,或者要在掉电的瞬间须要做一些处理。STM32就有这样的掉电检测机制——PVD(Programmable Voltage Detecter),即可编程电压检测器。通过PVD我们可以设定一个基准电压,当芯片的供电电压高于或低于该基准电压时便产生PVD中断,我们可以在PVD中断里做一些处理。
PVD先容
本文以STM32F1x为例,来解释PVD的利用。
用户可以利用PVD对VDD电压与电源掌握寄存器(PWR_CR)中的PLS[2:0]位进行比较来监控电源,这几位选择监控电压的阀值。
通过设置PVDE位来使能PVD。电源掌握/状态寄存器(PWR_CSR)中的PVDO标志用来表明VDD是高于还是低于PVD的电压阀值。
该事宜在内部连接到外部中断的第16线,如果该中断在外部中断寄存器中是使能的,该事宜就会产生中断。当VDD低落到PVD阀值以下和(或)当VDD上升到PVD阀值之上时,根据外部中断第16线的上升/低落边沿触发设置,就会产生PVD中断。例如,这一特性可用于用于实行紧急关闭任务。
由PLS[2:0]的先容可以创造PVD的电压阈值共有8个等级,实际利用时可根据自己的实际情形进行选择。
对付软件编程中详细如何实现可以自行编写干系代码,也可关注【玩转单片机与嵌入式】"大众号,在后台获取干系代码。
PVD的浸染
在实际做产品/项目的过程中,可能大家对PVD的浸染会忽略掉,下面列举PVD的浸染:
1. 记录设备掉电韶光
这个很好理解,可能业务上就有这个需求,或者可以利用这一点来完成低功耗设备的待机时长测试。
2. 关照其他处理离线
如果设备中有由干电池供电的MCU1和由锂电池供电的MCU2,MCU1的部分功能可能须要MCU2来完成,MCU1须要知道MCU2是否离线(由于锂电池可拔插,可能随时被拔)。这种情形就可以在MCU2上利用PVD来关照MCU1。关照的办法有很多,例如串口直接关照另一方自己将要断电了。
PS:当然也可通过MCU2监听MCU1的电源来实现……
STC 单片机入门 利用 Keil C51(作者:飞多学堂)
作为国货之光,STC 单片机以其价格便宜、内置接口多等特性在一些大厂不屑一顾的角落茁壮发展。本日我们来学习一下基于 Keil C51 的开拓环境搭建,然后编写一个大略的闪灯程序。
先对一些术语去魅:
Microcontroller Unit(MCU)微掌握器单元,又称单片机(Single-chip Microcomputer)。Integrate Development Environment(IDE)集成开拓环境,一种集成了代码编辑器、编译器、链接器等的开拓工具。In System Programming(ISP)在系统可编程,一种在不移除的条件下烧录程序到已经焊接在电路板上的 MCU 的方法。In Circuit Serial Programming(ICSP)串口在系统可编程,ISP 的一种。烧录软件我们利用 STC-ISP 作为烧录软件。
STC-ISP 下载地址如下:http://www.stcmicro.com/rjxz.html 。STC-ISP 我没有从 STC 官网下载,那个网站实在是太那个啥了,一言难尽。我选择的是 v6.86E 版本,最新的版本我的浏览器不让下,说是有毒,官网也是如此。
下载解压完后,不用安装,直接运行,界面如下:
界面非常的朴实无华,恰好是酷炫吊炸天的反面。
STC-ISP 这个软件除了烧录程序,还有它用,等会儿我们再说……
单片机如何能运行如飞?高效实现数学函数的办法!
(作者:小麦大叔)
本日给大家分享一下如何在资源紧张,算力较低的单片机上实现三角函数的算法。
之前发过一篇关于IQMath的文章,这个是ti公司平台上的一个数学运算库,里面封装了很多高效的数学运算方法。
例如在不具备浮点运算器的定点处理器利用定点运算,以前写过一篇Q格式的文章,有大略先容过这些知识。
那么问题来了,有一个读者朋友的硬件平台无法利用IQMath,但是他要进行一些三角函数的运算,那么该如何自己动手实现呢?
下面我们来大略先容一下整体的思路吧,由于硬件平台的资源比较紧张。
RAM比较少ROM比较少CPU处理速率比较慢以是这里比较常用的方法便是通过空间换韶光,预先将sin,cos的值存储到数组中,须要用的时候,访问数组就可以得到详细的数据。这也便是我们常常会提到的查表法。
下面我们来详细先容一下。
正弦表这个正弦函数表达式是这样的,
详细如下图所示;
正弦波
首先我们来大略剖析一下这个波形:
在蓝色框内是一全体周期的波形;在赤色框内是四分之一个周期的波形;实在不难创造,我们只要表示出这四分之一个波形的数据,别的剩下的波形都可以通过换算表示出来。
这样做就大大节省了查表法所须要的空间。
下面我们来先容一下详细如何实现;
首先我们得搞清楚一个点,便是量纲,统一用归一化的形式来做。
y的范围是 [-1, 1];x的范围是[0, 2π],当然,x的范围[-π, π]也是没问题的,下面会连续先容;而在实际的程序中,我们是无法这样去做的,这些数值我们期望通过整形类型去访问,以是我们要做到几点:
只管即便避免利用浮点运算;只管即便避免除法;只管即便避免乘法;以是这里有必要先理解一下Q格式,用左移和右移去代替乘法和除法,提高运算效率;
对付X轴的数据,于是可以将[0, 2π]细分成 128 ,256,512或者 1024 等等;
这里我们先细分成1024等份,正如前面提到的,只须要选择前四分之一周期的内容即可……
STM32单片机和51单片机有何差异?(作者:巧学模电数电单片机)
单片机大略来说便是集CPU(运算、掌握)、RAM(数据存储-内存)、ROM(程序存储)、输入输出设备(串口、并口等)和中断系统处于同一芯片的器件。
在个人电脑中,CPU、RAM、ROM、I/O这些都是单独的芯片,然后这些芯片被安装在一个主板上,这样就构成了我们的PC主板,进而组装成电脑,而单片机将这些都集中在了一个芯片上。
51单片机:
运用最广泛的8位单片机,当然也是初学者们最随意马虎上手学习的单片机。
最早由Intel推出,由于其范例的构造和完善的总线专用寄存器的集中管理,浩瀚的逻辑位操作功能及面向掌握的丰富的指令系统,堪称为一代“经典”,为往后的其它单片机的发展奠定了根本。0151单片机特性51单片机之以是成为经典,成为易上手的单片机紧张有以下特点:
从内部的硬件到软件有一套完全的按位操作系统,称作位处理器,处理工具不是字或字节而是位。
不但能对片内某些分外功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,利用起来得心应手。
同时在片内RAM区间还特殊开辟了一个双重功能的地址区间,利用极为灵巧,这一功能无疑给利用者供应了极大的方便。
乘法和除法指令,这给编程也带来了便利,很多的八位单片机都不具备乘法功能,做乘法时还得编上一段子程序调用,十分不便。
51单片机缺陷:
AD、EEPROM等功能须要靠扩展,增加了硬件和软件包袱。虽然I/O脚利用大略,但高电平时无输出能力,这也是51系列单片机的最大软肋。运行速率慢,特殊是双数据指针,如能改进能给编程带来很大的便利。51保护能力很差,很随意马虎烧坏芯片。51单片机运用范围:
目前在传授教化场合和对性能哀求不高的场合大量被采取。
利用最多的器件:8051、80C51。
STM32单片机:
由ST厂商推出的STM32系列单片机,行业的朋友都知道,这是一款性价比超高的系列单片机,该当没有之一,功能及其强大。
其基于专为哀求高性能、低本钱、低功耗的嵌入式运用专门设计的ARM Cortex-M内核;同时具有一流的外设,1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI等。
在功耗和集成度方面也有不俗的表现,当然和MSP430的功耗比起来是轻微逊色的一些,但这并不影响工程师们对它的热捧程度。由于其大略的构造和易用的工具,再合营其强大的功能,在行业中赫赫有名。
STM32单片机特性:
内核:ARM 32位Cortex-M3 CPU,最高事情频率72MHz,1.25DMIPS/MHz,单周期乘法和硬件除法。存储器:片上集成32-512KB的Flash存储器,6-64KB的SRAM存储器。时钟、复位和电源管理:2.0-3.6V的电源供电和I/O接口的驱动电压,POR、PDR和可编程的电压探测器(PVD),4-16MHz的晶振,内嵌出厂前调校的8MHz RC振荡电路,内部40 kHz的RC振荡电路,用于CPU时钟的PLL,带校准用于RTC的32kHz的晶振。调试模式:串行调试(SWD)和JTAG接口,最多高达112个的快速I/O端口、最多多达11个定时器、最多多达13个通信接口……意犹未尽,查看更多精彩文章→→https://www.dianyuan.com/eestar/