周末了 也挺不痛快的 带家人看病一天生气一天 找个合伙人也很不容易 也许也不试能有出息的命工作自己工作都不行 很服气
一、单片机中常用的负电压
负电压的产生电路图原理
在电子电路中我们常常需要使用负电压,比如说我们在使用运放的时候常常需要建立一个负电压。下面就简单的以正5V电压到负电压5V为例说一下它的电路。
通常需要使用负电压时一般会选择使用专用的负压产生芯片,但这些芯片都比较贵,比如ICL7600,LT1054等。差点忘了MC34063了,这个芯片使用的最多了,关于34063的负压产生电路这里不说了,在datasheet中有的。下面请看我们在单片机电子电路中常用的两种负电压产生电路。
现在的单片机有很多都带有了PWM输出,在使用单片机的时候PWM很多时候是没有用到的,用它辅助产生负压是不错的选择。
上面的电路是一个最简单的负压产生电路了。使用的原件是最少的了,只需要给它提供1kHz左右的方波就可以了,相当简单。这里需要注意这个电路的带负载能力是很弱的,同时在加上负载后电压的降落也比较大。
由于上面的原因产生了下面的这个电路:
负电压产生电路分析
电压的定义:电压(voltage),也称作电势差或电位差,是衡量单位电荷在静电场中由于电势不同所产生的能量差的物理量。其大小等于单位正电荷因受电场力作用从A点移动到B点所做的功,电压的方向规定为从高电位指向低电位的方向。
说白了就是:某个点的电压就是相对于一个参考点的电势之间的差值。V某=E某-E参。一般把供电电源负极当作参考点。电源电压就是Vcc=E电源正-E电源负。
想产生负电压,就让它相对于电源负极的电势更低即可。要想更低,必须有另一个电源的介入,根本原理都是利用两个电源的串联。电源2正极串联在参考电源1的负极后,电源2负极就是负电压了。
一个负电压产生电路:利用电容充电等效出一个新电源,电容串联在GND后,等效为电源2,则产生负电压。
1、电容充电:当PWM为低电平时,Q2打开,Q1关闭,VCC通过Q2给C1充电,充电回路是VCC-Q2-C1-D2-GND,C1上左正右负。
2、电容C1充满电。
3、电容C1作为电源,C1高电势极串联在参考点。C1放电,从C2续流,产生负电压。
当PWM为低电平时,Q2关闭,Q1打开,C1开始放电,放电回路是C1-C2-D1,这实际上也是对C2进行充电的过程。C2充好电后,下正上负,如果VCC的电势为5点几伏,就可以输出-5V的电压了。
产生负电压(-5V)的方案。
7660和MAX232输出能力有限,做示波器带高速运放很吃力,所以也得用4片并联的方式扩流。第一版是7660两片并联的。
用普通的DC/DC芯片都可以产生负电压,且电压精确度同正电压一样,驱动能力也很强,可以达到300mA以上。
一般的开关电源芯片都能产生负电压,实在不行用开关电源输出的PWM去推电荷泵,也可以产生较大的电流,成本也很低,不知纹波要求多少,电荷泵用LC滤波之后纹波相当小的。7660是电荷泵,所以电流很小。
整个示波器的设计,数字电源的+5V和模拟电源的+5V是分开供电的,但是数字地和模拟地应该怎么处理呢?
数字地和模拟地是一定要连在一起的,不然电路没法工作。
数字部分的地返回电流不能流过模拟部分地,两个地应该在稳定的地参考点连在一起。
负电压的意义
- 人为规定
例如电话系统里是用-48V来供电的,这样可以避免电话线被电化学腐蚀。当然了,反着接电话也是可以工作的,无非是电压参考点变动而已。 - 通讯接口需要
例如RS232接口,就必须用到负电压。-3V~-15V表示1,+3~+15V表示0。这个是当初设计通讯接口时的协议,只能遵守咯。PS:MAX232之类的接口芯片自带电荷泵,可以自己产生负电压。 - 为(非轨到轨)运放提供电源轨
老式的运放是没有轨到轨输入/输出能力的,例如OP07,输入电压范围总是比电源电压范围分别小1V,输出分别小2V。这样如果VEE用0V,那么输入端电压必须超过1V,输出电压不会低于2V。这样的话可能会不满足某些电路的设计要求。为了能在接近0V的输入/输出条件下工作,就需要给运放提供负电压,例如-5V,这样才能使运放在0V附近正常工作。不过随着轨到轨运放的普及,这种情况也越来越少见了。whaosoft aiot http://143ai.com - 自毁电路
一般来说芯片内部的保护电路对于负电压是不设防的,所以只要有电流稍大,电压不用很高的负电压加到芯片上,就能成功摧毁芯片。
二、在晶振两边各接一对地电容的原因
很多开发者对晶振两边要各接一个对地电容的做法表示不理解,因为这个电容有时可以去掉。参考很多书籍,却发现书中讲解的很少,提到最多的往往是:对地电容具稳定作用或相当于负载电容等,都没有很深入地去进行理论分析。
另外一方面,很多爱好者都直接忽略了晶体旁边的这两个电容,他们认为按参考设计做就行了。但事实上,这是振荡电路,又称“三点式电容振荡电路”,如下图所示。
MCU三点式电容振荡电路
其中,Y1是晶体,相当于三点式里面的电感;C1和C2是电容,而5404和R1则实现了一个NPN型三极管(大家可以对照高频书里的三点式电容振荡电路)。
接下来将为大家分析一下这个电路
首先,上面电路图中5404必须搭一个电阻,不然它将处于饱和截止区,而不是放大区,因为R1相当于三极管的偏置作用,能让5404处于放大区域并充当一个反相器,从而实现NPN三极管的作用,且NPN三极管在共发射极接法时也是一个反相器。
其次将用通俗的方法为大家讲解一下这个三点式振荡电路的工作原理。
众所周知,一个正弦振荡电路的振荡条件为:系统放大倍数大于1,这个条件较容易实现;但另一方面,还需使相位满足360°。而问题就在于这个相位:由于5404是一个反相器,因此已实现了180°移相,那么就只需C1、C2和Y1再次实现 180°移相就可以了。恰好,当C1、C2和Y1形成谐振时,就能实现180移相;最简单的实现方式就是以地作为参考,谐振的时候,由于C1、C2中通过的电流相同,而地则在C1、C2之间,所以恰好电压相反,从而实现180移相。
再则,当C1增大时,C2端的振幅增强;当C2降低时,振幅也增强。有时即使不焊接C1、C2也能起振,但这种现象不是由不焊接C1、C2的做法造成的,而是由芯片引脚的分布电容引起,因为C1、C2的电容值本来就不需要很大,这一点很重要。
那么,这两个电容对振荡稳定性到底有什么影响呢?
由于5404的电压反馈依靠C2,假设C2过大,反馈电压过低,这时振荡并不稳定;假设C2过小,反馈电压过高,储存能量过少,则容易受外界干扰,还会辐射影响外界。而C1的作用与C2的则恰好相反。在布板的时候,假设为双面板且比较厚,那么分布电容的影响则不是很大;但假设为高密度多层板时,就需要考虑分布电容,尤其是VCO之类的振荡电路,更应该考虑分布电容。延庆川北小区45孙老师 收卖废品破烂垃圾炒股 废品孙 再回收
因此,那些用于工控的项目,建议最好不要使用晶体振荡,而是直接接一个有源的晶振。
很多时候大家会采用32.768K的时钟晶体来做时钟,而不是通过单片机的晶体分频来做时钟,其中原因想必很多人也不明白,其实上这是和晶体的稳定度有关:频率越高的晶体,Q值一般难以做高,频率稳定度也比较差;而 32.768K晶体在稳定度等各方面的性能表现都不错,还形成了一个工业标准,比较容易做高。另外值得一提的是,32.768K是16 bit数据的一半,预留最高1 bit进位标志,用作定时计数器内部数字计算处理也非常方便。
三、STM32最小系统电路
STM32最小系统硬件组成
最小系统为单片机工作的最低要求,不含外设控制,原理简单,分析最小系统是STM32入门的基础。
组成:
- 电源
- 复位
- 时钟
- 调试/下载接口
- 启动
电源
3.3V的电源从这里接入,其中电容起到滤波的作用。
复位电路
当RESET引脚被拉低产生外部复位时,产生复位脉冲,从而使系统复位。
有三种复位方式:
- 上电复位
- 手动复位
- 程序自动复位
上电复位,在上电瞬间,电容充电,RESET出现短暂的低电平,该低电平持续时间由电阻和电容共同决定,需求的复位信号持续时间约在1ms左右,计算方式如下:
t = 1.1RC(固定计算公式)
1.1*10K*0.1uF=1.1ms
手动复位:按键按下时,RESET与地导通,从而产生一个低电平,实现复位。
时钟
晶振的作用是为最小系统提供最基本的时钟信号,电容的作用是保证晶振输出的震荡频率更加稳定。
BOOT启动电路
STM32 芯片的 BOOT0 和 BOOT1 引脚,可使用跳线帽设置它们的电平从而控制芯片的启动方式,它支持从内部 FLASH 启动、系统存储器启动以及内部 SRAM 启动方式。
一般使用JTAG或者SWD调试下载程序,会下载到闪存里,所以可以直接将BOOT0引脚和BOOT1引脚置为低电平。
STM32三种启动模式对应的存储介质均是芯片内置的,它们是:
- 用户闪存 = 芯片内置的Flash。
- SRAM = 芯片内置的RAM区,就是内存啦。
- 系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区,它是使用USART1作为通信口。
调试接口
STM32有两种调试接口,JTAG为5针,SWD为2线串行(一共四线)。
此外还有采用USB进行程序烧写和数据输出:和电脑USB口连接也可以进行小负载驱动供电
通常采用CH340G的芯片,实现USB转串口。使用该芯片将电脑的USB映射为串口使用,注意电脑上应安装串口驱动程序,否则不能正常识别。