简易的带隙基准电路主要有两种结构,电压模结构和基于OP的电流模结构,但是电压模结构的主要问题在于无法生成任何适合的电压,所以目前采取主要是基于电流模的带隙基准电路,如下图所示:

在室温下PNP晶体管的PN结二极管产生的电压为Vbe ,且具有一定的温度系数,约为-1.5 mV/℃~-2mV/℃,同时也产生了一个热电压 VT ( =kT/q),与绝对温度成一个正比的关系,可以看出这两者的大小随着温度的变化成相反的关系,所以可以使用合适的电路将这种关系叠加起来。通过M2的电流一部分是因为通由于Vbe 在 R2上产生的,还有一部分两个晶体管的 ΔVbe在R0 产生的电流 :

其中M3和M2的宽长比之为M,使得总的温度系数为零,就制成了稳定的偏置电路,偏置电压不随温度变化。但实际中VBE还存在着高阶的温度变化量,在温度较高的时候,Vbe随电压变化的趋势更加明显,所以实际的基于一阶的带隙基准的电压偏置电路在较大范围内仍然会出现电压的偏移,需要更高阶的补偿方式。
而所有的电路需要一个提供电流的偏置电路,目前常见的自偏置电路有基于Vgs/R,ΔVgs/R的电路结构,这里采用的是峰值型ΔVgs/R电路,如下图所示:

从上到下,从左到右依次是M1,M2,M3,M4,这里需要注意的是需要使得所有的晶体管处于饱和区,则电流为:

OP电路为了提高增益采用两级结构:

通过合适的宽长比使得自偏置电路为OP提供电流偏置,需要注意的是密勒电容对带宽影响极大,而若OP的带宽比较小容易使带隙基准电路在较高频干扰信号影响下使OP失去钳位能力,但是带宽较大容易使得OP的相位裕度较小,需要进行折衷考虑。
将所需的结构结合在一起何以得到如下的电路结构,为带隙基准的总体电路,亦可加如启动电路使整体电路防止锁定无法启动。

通过HSPICE软件使用smic 0.5um设计此电路,一般来说一阶带隙基准电路的温度系数最小也有10ppm/℃以上,这里设计的带隙基准电路产生的偏置电压约为1.25V,这是最常用的电压之一,仿真的温度范围为-40℃到125℃得出的仿真图如图所示:

通过直流扫描可以得到通过vdd的静态电流为31.4uA,经过计算温度系数约 =15.5ppm/℃
更详细的分析和网表代码编写可参考如下文档:https://download.csdn.net/download/lxssfpy/85226432?spm=1001.2014.3001.5503
当然,现在更加常用的是virtuoso软件进行电路设计,使用TSMC18工艺同样搭建带隙基准电路如下图所示

左侧使用了一个自偏置电流基准电路用以给运放提供偏置电流。除了由运放还需要给此运放电路加入偏置电路,本次电路中所采用的电路为普通的自偏置型,如下图所示。M1和M2宽长比相同,因此产生的电流是相同的。而M3和M2的宽长比为4:1,所以同样的电流会使得过驱动电压产生区别,从而产生了ΔVgs,产生的偏置电流即为ΔVgs/R0 ,通过控制OP电流源PMOS宽长比就能控制OP的电流。此电路未添加启动电路,会存在简谐点的问题,在tt下仿真如下所示

常见的启动电路的设计是通过两个开关来实现的,第一个使用nmos或者pmos使得某个异常状况下的电压能使此管子导通,并将后级拉到低电平或者高电平,同时使得后级的导通,将电路某些节点拉离此状态,而当到达稳定状态会关闭第一个管子的同时关闭后级的管子,从而使得电路达到稳定状态。
如下图所示就是在原基础上添加了一个简单的启动电路,同时简单调节了一下电路的参数。在简谐点时电阻R1上端电压很低,而M10和M11的电压很高,整个PNP管相当于于没有通过电电流产生的参考电压自然很小。现在添加了此参考电路之后,就可以将电路拉离此状态。首先M15管导通,将M16的栅极电压拉低,使M16导通,就会将M10和M11栅极电压拉低,从而使带隙基准电路开始正常工作。此时PNP管的电压会上升,从而关闭M15,从而关闭M16,进入工作状态。整个启动电路的环路必须是负反馈的,不然无法稳定。电阻的选择需要一定的考虑,使启动电路能成功开启和关闭。当然添加此电路后会使其他性能恶化如PSRR。

在这里插入图片描述
如下图所示,此问题已被解决

我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
我在我的项目中有一个用户和一个管理员角色。我使用Devise创建了身份验证。在我的管理员角色中,我没有任何确认。在我的用户模型中,我有以下内容:devise:database_authenticatable,:confirmable,:recoverable,:rememberable,:trackable,:validatable,:timeoutable,:registerable#Setupaccessible(orprotected)attributesforyourmodelattr_accessible:email,:username,:prename,:surname,:
因为我现在正在做一些时间测量,我想知道是否可以在不使用Benchmark类或命令行实用程序time的情况下测量用户时间或系统时间。使用Time类只显示挂钟时间,而不显示系统和用户时间,但是我正在寻找具有相同灵active的解决方案,例如time=TimeUtility.now#somecodeuser,system,real=TimeUtility.now-time原因是我有点不喜欢Benchmark,因为它不能只返回数字(编辑:我错了-它可以。请参阅下面的答案。)。当然,我可以解析输出,但感觉不对。*NIX系统的time实用程序也应该可以解决我的问题,但我想知道是否已经在Ruby中实
我正在尝试创建密码规则来设计可恢复的密码更改。我通过passwords_controller.rb做了一个父类(superclass),但我需要在应用规则之前检查用户角色,但我所拥有的只是reset_password_token。 最佳答案 假设您的模型是用户:User.with_reset_password_token(your_token_here)Source 关于ruby-on-rails-设计通过reset_password_token获取用户,我们在StackOverflow
我已经使用Apartment设置了一个Rails5应用程序(1.2.0)和Devise(4.2.0)。由于某些DDNS问题,应用只能在app.myapp.com下访问(请注意子域app)。myapp.com重定向到app.myapp.com。我的用例是每个注册该应用的用户(租户)都应该通过他们的子域(例如tenant.myapp.com)访问他们的特定数据。用户不应限定在其子域内。基本上应该可以从任何子域登录。重定向到租户的正确子域由ApplicationController处理。根据Devise标准,登录页面位于app.myapp.com/users/sign_in。这就是问题开始的
我在关注RyanbatesRailsCast的devise和omniauth(第235集-devise-and-omniauth-revised)。当我尝试使用Twitter登录时,标题中不断出现错误。defself.new_with_session(params,session)ifsession["devise.user_attributes"]new(session["devise.user_attributes"],without_protection:true)do|user|user.attributes=paramsuser.valid?end完整跟踪:C:/Ruby20
我为Devise用户和管理员提供了不同的模型。我也在使用Basecamp风格的子域。除了我需要能够以用户或管理员身份进行身份验证的一些Controller和操作外,一切都运行良好。目前我有authenticate_user!在我的application_controller.rb中设置,对于那些只有管理员才能访问的Controller和操作,我使用skip_before_filter跳过它。不幸的是,我不能简单地指定每个Controller的身份验证要求,因为我仍然需要一些Controller和操作才能被用户或管理员访问。我尝试了一些方法都无济于事。看来,如果我移动authentica