电路分析2-555振荡器

上一篇《电路分析1-单电池点亮白光LED》所分析的电路中有两个晶体管所组成的振荡电路,这一次则换用555芯片来做振荡器,这也是555芯片典型的应用之一。以前的一篇文章《认识元件(1)–555时基芯片也有提及555芯片工作于无稳态状态下做振荡器的电路,555具体的引脚定义等说明也可以看这个文章。

上图是555内部的原理框图,左边电源VCC串连的3个等阻值(5K)电阻,将电源电压分做3等份,然后分别连接到2个比较器上,比较器输出则接到一个带复位的触发器上,最后是连接一个缓冲放大作为输出,在触发器输出端还连接一个OC门,可用于电容放电等功能。在5脚CONT脚没有连接电压的情况下,当2脚电压降到1/3VCC电压时输出端3输出高电平,当6脚电压升到2/3VCC电压时,输出端3输出低电平。

根据上面的原理,可以快速的得出555典型的应用电路之一的振荡器电路,电路能产生比较稳定的脉冲输出,可以应用于各种需要连续脉冲或时钟信号的电路中。电路基本形式如下图。

首先Vcc8、Gnd1接入电源,电源滤波电容C3。Rst4连接Vcc,复位功能不使用。Ctrl5阈值电压控制也不使用,阈值电压使用默认的,用C2的10nF电容连接到Gnd防干扰。R2、C1组成RC充放电,Thr6阈值和Trig触发脚连到R2、C1间。Dis7放电引脚连在R2之上,可以对C1放电。为了更直观的观察分析电路,我们可以在电路中的设AB两点,然后用示波器对其进行观测,无论是实物电路或虚拟仿真,得到的结果都是一样。

当电路上电后,A点电压因有RC电路,会有个上升过程,A点连接到Thr和Trig,当上升到阀值电压的2/3(这里VCC是默认阀值),Thr6引脚电压为2/3Vcc,通过比较器和触发器调整后,这时输出端Out3输出低电平,同时会让Dis7所在的OC门导通到Gnd,这时C1开始放电,A点电压开始下降。当A点电压下降到1/3Vcc时,Trig2引脚触发,Out3输出高电平,Dis7上的OC门关闭,A点电压又开始上升,继续下一个循环周期。

修改R1、R2、C1的值,可改变其输出的频率。计算公式可以在《认识元件(1)–555时基芯片中查看。

电路分析1-单电池点亮白光LED

这是来自杂志Practial Electronics 202109期的文章《Night Keeper Lighthouse》中的电路图。这是一个简单的小电子玩具制作项目,电路的目的就是使用单一节AA或AAA电池(1.5V)驱动白光LED并使其定时闪烁,模拟灯塔的效果。

 

首先我们知道白光LED的典型额定正向电压在3-5V之间,而实际上小的白光LED管在2.5V左右就开始发光,亮度是随电压增大而增大。通常用的电路中会使用充电泵IC来把电池的电压升高来达到驱动单个或多个白光LED,如便携设备里的背光LED驱动。而文章中的电路则是为了制作简单使用一个经典的互补式振荡器来达到升压的目的。

当电源接通后1.5V通过10KΩ电阻加载到白光LED1正极,因电压不足,LED1不会发亮,同时100uF的电解电容会在充电慢慢到达电池电压1.5V。这时三极管Q1Q2不在导通状态,1.5V通过10MΩ电阻加载到Q1的基极,因基极还接了一个330nF,所以基极电压不会一下子到达导通电压,而是缓慢充电上升。当Q1基极达到0.6V之上时,Q1会导通,Q1导通则会导致Q2基极电压下降并使Q2导通,Q2的导通会使得100uF电解电容负极突然升高到1.5V,得到一个脉冲电压,这样使得电池和电解电容形成串连,这时电解电容的正极电压是两者电压的叠加达到差不多3V,从而使得LED1发光。LED1发光后,因有330nF,Q1基极电压不会一下跌到0.6V以下,而会经过一定时间。一旦Q1基级电压跌到0.6V以下,Q1Q2会截止,100uF负极电压跌到0V。LED1停止发光。下一个周期重新开始。

Raspberry Pi Pico C/C++语言开发环境搭建 Raspberry Pi Pico C/C++ SDK

Raspberry Pi Pico是树莓派基金会在2021年1月新发布的微处理器新品。使用基金会自己研发的RP2040芯片,国内现在整个开发板模块售价为30-40元左右。相较于树莓派的其它‘微电脑’型号,这一款产品因为是单片机MCU型的,其最高运行频率可达到133MHz,对IO及模拟信号的操作和处理有更低的时间延迟,可以弥补Raspberry Pi物理互动方面的不足,更类似于‘Arduino’开发板。

官网上的性能介绍:

  • 双核Arm Cortex M0 +处理器,运行频率高达133 MHz
  • 264KB的SRAM和2MB的板载闪存
  • 模块允许直接焊接到载板
  • 具有设备和主机支持的USB 1.1
  • 低功耗睡眠和休眠模式
  • 通过USB使用大容量存储进行拖放编程
  • 26个多功能GPIO引脚
  • 2个SPI,2个I2C,2个UART,3个12位ADC,16个可控PWM通道
  • 片上准确的时钟和计时器
  • 温度感应器
  • 片上加速浮点库
  • 8个可编程I / O(PIO)状态机,用于自定义外围设备支持
  • 可通过 Micro USB 供电,也支持 1.8-5.5 V 直流电源供电。
  • 配备 1 个 LED 灯和一个开关按钮。按钮用于BootSel,也就是向 Pico 烧录程序时控制 Pico 进入 USB 大容量存储模式,也可用于通用的输入按键。使用Pico开发,开发用的设备可以使用树莓派微电脑Linux也可以PC机上的Windows。对于大多人来说使用PC机来开发相对会方便些,当然如果你是树莓派的重度爱好者,使用树莓派微电脑也是得心应手。编程语言可以使用Python,也可以使用C/C++,它们都需要安装相应的SDK和相关的支持软件。安装步骤烦多,不如其它知名MCU的开发环境来的简单。下面就来分享一下Windows操作系统下的C/C++开发环境的搭建。首先是需要安装五个支持工具软件。比较多,建议先全部下载相应的版本。注意的是官方提示这些只在WIN10环境下使用,在WIN7等不保证能正常使用。五个支持软件,为方便下载这里同时给出下载地址。
    ARM GCC compiler
    https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
    CMake
    https://cmake.org/download/
    这个需要下载3.19.5版本,新的3.20似乎没法正常工作可以在Github下找到
    https://github.com/Kitware/CMake/releases
    Build Tools for Visual Studio 2019
    https://visualstudio.microsoft.com/zh-hans/downloads/
    可以选择社区版

    Python 3.9
    https://www.python.org/downloads/windows/

    Git
    https://git-scm.com/download/win

    ARM GCC compiler的安装
    这个编译器安装没什么好说的,直接下一步、下一步就完事了。在安装完成时,最后的选项选择时,全选。

    CMake

    在安装过程中,当安装程序提示时,将CMake添加到所有用户的系统路径中。

    Build Tools for Visual Studio 2019

    这里我是安装VS2019社区版,安装选项为‘使用C++的桌面开发’,‘Windows10 SDK’必须要打勾。

    Python 3.9

    在安装过程中,选择“为所有用户”安装了该软件,并选择将Python 3.9添加到系统PATH中。 在Python末尾提示时,应该选择禁用MAX_PATH长度限制。

    Git

    注意下面3个选项要选上。


    获取SDK和例程
    以上软件安装完成后,重启一下PC。
    重启后在硬盘上新建一个文件夹,我这里是在C盘中新建一个名为‘SDK’的目录。

    选定‘SDK’后按鼠标右键,选‘Git Bash Here’。

    进入Git界面后,分别输入如下指令

    git clone -b master https://github.com/raspberrypi/pico-sdk.git
    cd pico-sdk
    git submodule update –init
    cd ..
    git clone -b master https://github.com/raspberrypi/pico-examples.git

    执行时的界面如下。

    上面已经安装完工具链软件以及Pico的C/C++SDK,编译源代码时如果要使用命令行方式会比较麻烦,这里不说,下面介绍的是使用微软的Visual Studio Code去编译源代码。如果你没有安装VS Code,还需要到https://code.visualstudio.com/download下载安装。(关于如何在VS Code安装中文汉化包请自行了解)

    安装完成后还需要为其设置之前的工具链软件和SDK路径。

    首先在开始菜单找到Visual Studio 2019的Developer Command Prompt菜单并打开。

    在打开的指令窗口中输入code,则会打开设置了所有正确环境变量的Visual Studio Code,以便正确配置工具链。注意不要直接点桌面的VSCode打开它,这会可能导致配置的失败,除非你足够的熟悉了解它和相关的工具链软件。

    在打开的VS Code中安装,CMake Tools。

    安装CMake Tooks扩展后,点齿轮状图标,打开设置项进行SDK路径设置。

    找到Cmake:Configure Environment项,并增加一个PICO_SDK_PATH项,项目的值就为上面下载SDK时的路径。

    找到Cmake:Generator项,加值’NMake Makefiles’ 。

    至此完成了环境的搭建。

    下面就可以用下载下来的SDK例子进行编译测试。
    在VS Code打开下载的pico-examples目录,打开后CMake自动配置。

    活动工具包需要选择 ‘GCC for arm-none-eabi’。生成后,则进行编译。编译完成的文件会被放在例子目录下的build目录下。注意,如果编译不能进行,则要尝试用Visual Studio 2019的Developer Command Prompt菜单来打开VS Code。


    编译中的界面。

    编译完成后,则可以下载文件到Pico下进行测试。为了直观查看,可以使用blink例子,这个例程就是让板上连接到GPIO25的LED闪烁。首先在pico-examples\build\blink目录下找到编译好的blink.uf2文件。

    然后按着Pico的BootSel按钮,把Pico接入PC的USB端口,这时会在PC上出现一个名为RPI-RP2的存储盘,把blink.uf2拖入该盘中,写入后,Pico自动重启并运行程序,让LED闪烁。