Class-AB Amplifier 笔记

Reading Notes from Mikko Loikkanen “Design and Compensation of High Performance Class AB Amplifiers”

Input stages 输入级

一般Class-AB放大器常有输入轨至轨的要求,关于rail-to-rail的输入级的实现:

1. N/PMOS 互补输入对

NMOS和PMOS互补输入是比较常见的rail-to-rail的实现方法,但他也有一些缺点,如offset随输入共模变化,在低压下的实现问题(Vsupply > VGS-N+VGS-P+2VDS), 额外的恒定跨导的控制电路等。具体恒定跨导的方式:

a.输入对管工作于弱反型(恒定电流的方式)

b.输入对管工作于强反型(恒定Vgs的方式)

2. 基于单输入对管
a. 基于charge-pump的结构:

利用low-noise,low-ripple的电荷泵得到超出电源电压的电压供给放大器从而提高整个输入范围

b.输入管加体区偏置(bulk bias):

通过bulk bias减小其阈值电压(约100-200mV)从而提高输入范围

c. 输入级加resistive level shifter

利用上图所示的resistive level shifter,或 common-mode adapter的方法

Class AB 输出级

一个的合适的class-AB 输出级应该有足够的线性度,同时引进可能满足下面的要求:

1. 精确控制输出管的静态(最小)电流,并不受电源影响

2. 有足够大的最大电流与静态电流之比

3. 不会影响信号通路直流增益

4. 在任何电流水平都不会导致稳定性的下降

5. 可以在低电压下工作

6. 结构简单,不会显著增加面积

关于具体的Class-AB output stage的实现方法,大致可以分为四类:

1. Cross-coupled quad 形式连接的super-source follower结构

2. 从低阻抗节点驱动一个或全部输出管,并用反馈控制输出管静态电流

3. 通过local class-AB 反馈来控制静态电流

4. 通过translinear loops的方法

**关于cross-couple quad的结构一般多用于输入以提升slew-rate,其具体原理在P.R.Gray的书中有具体的分析;至于其他的几种class-AB的结构,Sansen的‘Designg-Essental’中关于Class-AB的章节也有相应介绍

Amplifier stability with class AB output stagesclass-AB amplifier的稳定性问题

放大器应在每一电流水平都能稳定,对米勒补偿及其扩展的方法而言,这通常是通过在Class-AB的输出级加入对称的频率补偿网络来实现的。

在信号通路的稳定性之外,class-AB的控制环路的稳定性也需要保证,如下图中所示(一般根据miller电容本身大小,CAB也可以略去)。

1.Miller compensation米勒补偿

在负载电阻减小时,由于第二极点向高频方向移动(负载电阻和第二级跨导的并联),稳定性会有改善,即miller补偿在改阻性负载时工作良好。但是由于第二极点和右半平面零点,在大电容负载时有所限制。

2.Miller compensation with a nulling resistor调零电阻的米勒补偿

主要问题是准确的零极点对消的实现,依赖于输出级的跨导,因而会受不同负载电流影响。同时左半平面零点出现在非主极点之前也会是phase margin变坏。

3.Miller compensation with a feed-forward stage 带前馈的米勒补偿

与米勒补偿相同的极点,但有额外的左半平面零点(前馈跨导),大电容负载下亦需注意

4.Miller compensation with a current buffer 带电流 buffer 的米勒补偿

由于缺少 miller 电容的作用,需考虑 Class-AB 控制回路的稳定问题.

5.其他方法

上图中是基于 miller 补偿的扩展,这里的 HBW- high bandwidth stage 相当于在第二级跨导乘以 HBW 的增益, 故而增强了在大电容负载下的稳定性

(原文地址:http://blog.sina.com.cn/s/blog_4a3c1dbd01018f55.html)

[转载]Class-AB Amplifier 笔记的更多相关文章

  1. 【转载】SpringMVC学习笔记

    转载于:SpringMVC笔记 SpringMVC 1.SpringMVC概述 MVC: Model(模型): 数据模型,提供要展示的数据,:Value Object(数据Dao) 和 服务层(行为S ...

  2. 【转载】Java学习笔记

    转载:博主主页 博主的其他笔记汇总 : 学习数据结构与算法,学习笔记会持续更新: <恋上数据结构与算法> 学习Java虚拟机,学习笔记会持续更新: <Java虚拟机> 学习Ja ...

  3. 【转载】Java系列笔记(3) - Java 内存区域和GC机制

    Java系列笔记(3) - Java 内存区域和GC机制 转载:原文地址http://www.cnblogs.com/zhguang/p/3257367.html 目录 Java垃圾回收概况 Java ...

  4. 转载的C#学习笔记

    转载地址:http://www.cnblogs.com/renyanlei/p/4075065.html 最近在一个培训机构里面教授Net知识.每天都会带领学生学习c#知识.我希望把每天学习的笔记记录 ...

  5. 【原创】复制知乎“禁止转载”的内容做笔记 - 基于oncopy监听器的简单解决方案

    原理:移除所有oncopy的监听器. 使用: 新建书签,地址设为: javascript: getEventListeners(document).copy.forEach(({listener}) ...

  6. 【转载】AB测试结果分析

    AB测试,200个请求,20个并发.这样的测试强度,CPU占了70-80%,w3p占用了70多M内存,本想多测几次,看看它的内存会不会涨上去,没 有测试机器没办法,开发机要干活.我估计CPU就有问题了 ...

  7. 【转载】Markdown使用笔记

    献给写作者的 Markdown 新手指南 http://www.jianshu.com/p/q81RER 「简书」作为一款「写作软件」在诞生之初就支持了 Markdown,Markdown 是一种「电 ...

  8. 【转载】linux内核笔记之进程地址空间

    原文:linux内核笔记之进程地址空间 进程的地址空间由允许进程使用的全部线性地址组成,在32位系统中为0~3GB,每个进程看到的线性地址集合是不同的. 内核通过线性区的资源(数据结构)来表示线性地址 ...

  9. 【转载】linux内核笔记之高端内存映射

    原文:linux内核笔记之高端内存映射 在32位的系统上,内核使用第3GB~第4GB的线性地址空间,共1GB大小.内核将其中的前896MB与物理内存的0~896MB进行直接映射,即线性映射,将剩余的1 ...

随机推荐

  1. 如何将xml转为python中的字典

    如何将xml转为python中的字典 import cElementTree as ElementTree class XmlListConfig(list): def __init__(self, ...

  2. JSON字符串转换为Map

    本文是利用阿里巴巴封装的FastJSON来转换json字符串的.例子如下: package com.zkn.newlearn.json; import com.alibaba.fastjson.JSO ...

  3. 关于block的回调使用-防止内存泄露问题

    block 一般用于回调,比方请求数据我们把asi封装好,仅仅用block调数据就方便很多 获取到得数据假设要给之加入数据,切记不能够使用self.(这个数组) 或者_(这个数组) addObject ...

  4. Linux远程上传、下载文件的方法

    主要内容: ftp命令 scp命令 WinScp Putty (PSCP) Xshell 一.ftp命令 服务器有安装ftp Server,另外一台linux可以使用ftp的client程序来进行文件 ...

  5. Java从零开始学九(数组)

    一.什么是数组 数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组.二维数组.多维数组.同一数组中的变量数据类型相同 二.数组的优点 不使用数组定义100个整型变量 ...

  6. 算法笔记_194:历届试题 翻硬币(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 小明正在玩一个“翻硬币”的游戏. 桌上放着排成一排的若干硬币.我们用 * 表示正面,用 o 表示反面(是小写字母,不是零). 比如,可能情 ...

  7. PHP匿名函数如何理解,什么是匿名函数

    揭秘PHP匿名函数 定义:匿名函数就是没有名字的函数. 有2种形式的匿名函数: 形式1:将一个匿名函数"赋值"给一个变量——此时该变量就代表该匿名函数了! 形式2: 是直接将一个匿 ...

  8. bazel、tensorflow_serving、opencv编译问题

    1.出现该错误表示opencv冲突,该机器上有多个opencv版本. 解决方法:卸载低版本opencv 2.bazel中BUILD的写法: copts中放置-I/usr/include/.-D lin ...

  9. Oracle 去重查询

      Oracle 去重查询 CreateTime--2018年2月28日15:38:45 Author:Marydon (一)使用distinct --查询指定区间内表停诊字段的值 SELECT DI ...

  10. 【Linux】数组与关联数组

    数组 数组的定义: variable=(arg1 arg2 arg3 -) 中间用空格分开,数组的下标从0开始 1.获取下标为n的元素 variable[n] 不存在数组溢出的情况,如果下标n> ...