【建议保存】TI官方 全差分运放设计入门
写在前面 什么是“全差分” 比单端多出来的第二个输出如何使用 TI官方的匹配设计软件 Vocm 又是什么 🌈持续更新~欢迎转发关注🌈 🌈搜卫星号关注:鱼先生理论🌈 Fully Differential Op Amps Made Easy 什么是“全差分”? 单端运算放大器有两个输入——一个正输入和一个负输入——这本质上就是差分结构。它们只有一个输出,这个输出是相对于系统地(ground)而言的。 而全差分运算放大器则增加了第二个输出端: 这两个输出分别称为正输出(Vout+)和负输出(Vout–),与输入端的命名方式类似。 它们是差分输出:两个输出电压大小相等,但极性相反(参考电平为电路的共模工作点)。 这种结构使得输出信号在共模干扰下具有更强的抗噪能力,非常适合高速、高精度的模拟信号链设计。 第二个输出怎么用 运算放大器通常作为闭环器件使用。 作为单端运放闭环: 无论是反相还是同相模式,反馈回路都是从输出端连接到反相输入端。 全差分运放的增益 那么,全差分运放如何闭环呢?由于它有两个输出,因此必须对两个输出都进行闭环操作。 正确的做法是为两个输出各自建立反馈回路。 如果两个反馈环路不匹配,会导致明显的二次谐波失真。 对于全差分运放,每个反馈环路都是反相的。 顶部反馈环路:从正输出连接到负输入,产生180°相位反转。 底部反馈环路:从负输出连接到正输入,同样产生180°相位反转。 因此,全差分运放没有“同相”增益电路的概念,所有反馈都是反相的。 差分增益的计算公式为: 单端转差分转换 全差分运算放大器的一个常见用途是将单端信号转换为差分信号。 许多高速模数转换器(ADC)都采用差分输入结构,因此需要一个差分驱动器。 设计这种单端信号转换为差分信号的放大器要: 将单端信号输入连接到一个输入端(例如负输入端 Vin–)。 另一个输入端(例如正输入端 Vin+)连接到地或参考电压。 通过两个匹配的反馈电阻(Rf)和两个输入电阻(Rg)构建闭环,使两个输出端(Vout+ 和 Vout–)形成差分信号。 这种结构可以将单端信号有效地转换为对称的差分输出,适用于驱动差分ADC或差分传输线。 单端转差分与全差分配置的唯一区别在于,输入电压的一侧以地为参考。 德仪官方匹配软件 进行终端匹配设计可以利用德州仪器 (TI) 在其网站上提供了一个在线计算器。 该工具可以通过“模拟和混合信号知识库”或 TI 网站“模拟和混合信号”部分的“工程设计工具”访问。 (鱼先生注:该在线软件网站地址https://www.ti.com/download/kbase/adc/DifGain.htm) (鱼先生注:该TI官方工具仅提供直流工作点——无法交流仿真) 全差分运算放大器的共模电平 这一节我们只讨论 Vcom 管脚。 有的叫 Vcm、CM等,只要功能是设置全差分运算放大器的输出共模电平(set the output common-mode level of the fully differential op amp.)电气功能和设计目的类似即可。 Vocm 不可以用作第三个输入 Vocm 不可以用于设置直流工作点 Vout- Vout+ 的电平增益 不受 Vocm 电平的影响 当输入电压 Vocm 从零值增大时,输入电压 Vout- Vout+ 也会发生相同的变化。Vout- Vout+的差分电压也保持不变——由 Rf、Rg 的值决定。 Vocm 实际关系如下公式 {Vocm} = \frac{Vout_++Vout_-}{2} 下图更直观 上图👆是一个有持续峰峰值为 2v 的输入信号,电路增益为 1。 但芯片限制输出电压摆幅范围为 3.7v ~ -4.3v 之间 在 Vocm 为 0 时 两个轨都有余量、且设计有效 在 Vocm 为 3 时 交替地达到芯片电压上限,并在 3.7V 处被削波。 在 Vocm 为 -3.5 时 交替地达到芯片电压下限,并在 -4.3V 处被削波。 (鱼先生注:原应用笔记 PDF 文档可复制下方链接、点击原文,查看详情。) https://www.ti.com/lit/an/sloa099/sloa099.pdf 给自己挖了不少坑了 但不想文章灌水 有的很多需要打磨研究 🌈持续更新~欢迎关注互访互评,无限进步🌈 欢迎关注鱼先生理论
鱼先生理论
1 6 硬创社
电池电压 ≠ 电量
写在前面 电池电压 ≠ 电量 解释:大电流、老化、低电量会造成电压大幅跌落? 解释:停止使用后,电池电压会”自动”恢复? 🌈持续更新~欢迎转发关注🌈 电池电压≠电量 锂电池的电量 ≠ 电压!!! 测试电池是:镍钴锰酸锂523三元锂电池600mAh + 电芯保护板 先不说理论,先看现象! 在小电流100mA的输出👇,电压从初始的3.2v 仅仅小幅微跌到3.1v 在大电流500mA的输出👇 可以看出电压从初始的3.2v 跌落到2.8v,“突然没电” 但是 输出停止后会立即恢复,“过了一会儿还可以开机” 就像一个没电的手机,我们突然打开摄像头or游戏,就会突然关机 但是过了十几分钟,还能再开机一会儿 为什么会“突然没电” 看看里面怎么了 从现象来看,同一块电池,输出电流越大,端电压跌落是越大。 好像是“因为使用了更大的电流 → 所以电池突然没电了” 但里面有一个很多人忽略的内因 “现实的电池并不是一个理想的电源”——《电路》 我们手里的“电池”是“电源 + 内阻”(电极材料、电解液等、电芯保护板等)等效模型 很干的公式 我们测量到的电池两端的实际电压,应该叫做端电压 (V_terminal)。 直接端出欧姆定律:端电压 = 理想电压 + 内阻压降,而输出电流的端电压计算公式为: V_端电压 = V_内电压 - (I × R_内阻) V_端电压: 你实际测量到的电池电压 V_内电压: 电池的理想电压(恒定值) I: 电路中的电流 电芯保护板引入了 MOS 保险等元器件在通路中,其本身就有一些内阻 锂电池保护板——电芯的“防弹衣” 电芯电化学性质:电流越大 → 正极-电解液界面极化加快 → 电芯内阻变大 → 内部电流增大 → 表面极化越快 → … 下图是电池侧切面的显微图👇 下图是正极-电解质极化界面显微图👇 他是一种“疏松多孔”的结构,电解液会通过缝隙与正极接触置换电子 电芯剩余容量:剩余容量越少 → 电池界面层越厚 → 内阻越大 → 分压越多 → … 电芯体质:电池越老 → 无法恢复的锂杂质副产物越多 → 内阻越大 → 分压越多 → … 如果只是拿电池的端电压来判断剩余电量并不十分精准。 我的手机也是这样!! !!这也是手机电池为什么会有电池电量跳变的情况!! iPhone 的电量检测是用 端电压 + 库仑计 + 软件算法 一同做校准测试 但在: 高输出功率:手机在打开相机、玩游戏、重负载应用的时候,手机会动态给cpu更高的功率来支撑小范围超频处理应用 老化的电池:如果这个时候,叠加老化高内阻的电池 就很容易大范围电池端电压跌落 但很明显,面对电化学物理规律,强如Apple,也拉不住锂电池突然雪崩的电压。 为什么会“慢慢恢复” 从现象看,停用电池一阵子,他好像“自己给自己充电”了 一段时间不使用电池,其化学性质稳定后电池电压会慢慢恢复 正极-电解液界面会自己熵增的宇宙规律慢慢恢复 电极附近锂离子从高浓度内部向表面扩散,补充低浓度的锂离子。 还有咱们的电路公式 电流消失或者变小了:关闭相机、关闭游戏、 虽然内阻还是很大,但电池会“更耐用”些,不至于电压低到关机。 文章已上传 两天后 《锂电池电量检测》 🌈持续更新~欢迎关注互访互评,无限进步🌈
鱼先生理论
2 4 硬创社
锂电池充电——一切为了安全
字数 687,阅读大约需 3 分钟 写在前面 • 监控发热是重中之重。 • 锂电池充电用五个阶段保证安全,预充、热控、恒流、恒压、监测停止 持续更新~欢迎关注互访互评,无限进步 搜卫星关注:鱼先生理论 第二道保护——安全第一 预处理 为什么电池充电还要预处理阶段? 说明情况前 我们要明确一个客观前提: 从充电管理芯片的角度看:他的电池端口有一个 电压非常低(约2.5V)的东西 这个电压不像是一个正常的电池的电压区间 (3.2V~4.2V) 这个时候会有三种情况 • 并没有连接 4.2v单芯锂电池,接入了一个不知道什么的东西 • 连接电路 或 电池已经损坏,电压异常降低 • (。・∀・)ノ゙嗨,这傻电池就是过放了~ 但是作为一个充电芯片,他不能确定,他只能尝试。 充电芯片会先尝试施加一个非常非常小的电流(正常电流10% 或约 10mA) 如果接入的是锂电池,并且电池状态是正常的 这个时候 电池端的电压应该是慢慢的不断的上升,直到最低电池充电电压 为什么预处理充电阶段要慢慢的充呢? 一个极低的电量的单芯锂离子电池 他的内阻更大 一个正常电量的电阻 ⚠️干巴公式警告⚠️ 根据功率公式 P = I² × R · P 是 发热功率 · I 是 流过内阻的电流 · R 是内阻值 充电芯片当然也知道这一点 保持极低的电流 ➡️ 保持极低的发热功率 ➡️ 保证电池的安全 !这也是部分手机长时间没用,关机后无法开机,或者需要花两三个小时才能充电开机的原因! 慢慢,电池端电压提升到稳定的电压,才会到下一步,开始正常充电。 热控制 电池电压已经升到正常范围内来,芯片会尝试用设定的最大电流尝试充电。 根据功率公式,刚开始的发热很快,有可能很快到达很高的温度 这段时候充电芯片会根据电池的温度判断: • 电池发热严重 → 降低充电电流 • 电池温度正常 → 逐渐提升电流值 → 达到设定电流 随着充电的深入,电池的内阻逐渐降低 根据 功率公式 P↓ = I² × R↓ 发热功率也在下降,可以安全的慢慢提升电流直到内阻可以忽略不计 恒流升压 锂电池充电芯片会按照设定的最大电流值进行充电,这时电芯电压会逐渐爬升,直到电池电压接近4.2v。 这一段会保持很长时间,直到4.2v后,进入下一阶段。 恒压降流 当电芯进入 4.2V 后,充电电流会逐渐减小,直到 10%。 结束充电 到最后,当充电电流下降到截止电流时候,停止充电。 !不可以到充电电流为0,才停止! 因为这已经是电池过充了,刻意的充电不足,是延长电池的寿命的要求。 文章已上传 两天后 《锂电池电量为什么总是不准?》 🌈持续更新~欢迎关注 鱼先生理论🌈 互访互评,无限进步
鱼先生理论
1 7 硬创社
锂电池保护板——电芯的“防弹衣”
持续更新~欢迎关注互访互评,无限进步 搜卫星关注:鱼先生理论 写在前面 锂电池绿色PCB保护板通过控制回路上的 MOS 通断,来防止电芯的过充、过放、短路极端情况 巧妙利用 MOS 特性,不额外增加器件,防止过流。 第一道保护——电芯的“防弹衣” 锂电池填充物易燃易爆,化学性质并不十分稳定,电压电流过大过小都有问题。 每一块正规锂电池出厂都会带有保护板 这个保护板的功能十分有限。仅仅是最低防护。 在输入电压高于4.4V、电压低于2.1V、短路(瞬态电流过大),做最基础方面保护。 充电保护板都是使用最基础的元器件保证模组的高可靠性、高灵敏度。 根据原理图,由 控制IC 监控锂电池状态,控制 MOS管 的通断来控制充电回路通断。 由 保险丝 防止 控制IC 失效 如果短路大电流,迅速断开充电回路 正常充电 过充保护 控制 IC Pin5检测到过压 → 关闭 Q2 → 充电回路关断 恢复条件 外部充电电压下降 电芯放电一部分,电芯电压下降 正常放电 过放保护 控制 IC VCC-VSS电压检测到欠压 → 关闭 Q1 → 放电回路关断 短路过流保护 保险丝——瞬态大电流会断开,这是防止控制IC失效,他是纯物理防护,是最后的保障。 现在普遍做法是利用 MOS 的内阻特性,来判定过流。 在介绍前,要先明确 MOS 管内部有约 30mΩ 内阻,两个 MOS 一共是60m 理论:当一个电阻通过10mA电流 和 通过1A电流,两端电压压差是不同的。 控制IC 通过 MOS 两端压差 Vds MOS 内阻 Rds 控制IC 内部设置的阈值 一般是 0.1v 根据欧姆定律 I = Vds / Rds = 0.1V / 0.06Ω ~ 2A 这就是控制IC 通过 Pin2 检测电压,只要有一点点压差就可以触发厂家预设的阈值 超过 P2 超过电压阈值 → 判定过流>1A → 关断 MOS管 → 断开回路。 保护板在不增加额外器件,还能判定过流。 文章已上传 两天后 《锂电池充电总共分几步?》 🌈持续更新~欢迎关注 鱼先生理论 互访互评,无限进步🌈
鱼先生理论
6 11 硬创社
【应用】NPN+PMOS的IO控制
🌈持续更新~欢迎关注互访互评,无限进步🌈 柯搜卫星关注:鱼先生理论 在一次DEMO板测试的时候 出现了直接用IO控制可以拉高,但拉低后仍有1.5V电压的情况 写在前面 最后方案:用控制NPN管加速PMOS管电源 主要阐述了对于整体模型的阻容调整 使用的NPN管 SS8050 特性 使用的PMOS管 CJ2301 S1 特性 最后通过的方案 调整各部分电阻值 最后效果 t上升时间(80%Vhigh)是3us左右 可以支持到更快速的到50kHz的开关 写在前面的建议 中高频应用,PMOS 应该选用更低 Ciss Coss。 为了保证开关的迅速,NPN部分耗能约10mA,无法使用在低功耗设备上。 最早的问题 整体电路图是STM32L011使用LPTIMER输出一个1kHz的方波 我是打算用IO直接控制PMOS,PMOS去控制LED灯 IO输出直接拉了 可以看到实际上IO的电压是一个缓慢爬升的过程,示波器检测的IO最高电压只到600mV MOS管没有饱和:我的MCU电源是3V,完全没有到达最大的电压 升压时间过长:升压的时间远超设定的1kHz的区间,需要更长的时间才能饱和 其实我在设计需要极低功耗的电路,我把很多能限流的地方都限流了,应该是电流过小导致的 排查、调整 IO 我断开了IO和后端的连接,并调整到更高的频率16kHz,先测试MCU IO输出是否正常 MCU 输出的波形没有什么问题 是完美的 16kHz 50% 的方波 IO→NPN 然后将 IO 口接到 NPN 的 B级 上 搭建电路的原理图 测量 C级 的电压 波形又出现了缓慢上升的趋势,但最高只到 2.6v,且每个 20us 左右都会有一个尖刺出现。 分析 最高 2.6V 原因:SS8050 未完全饱和,且考虑饱和压降是 0.5V。 集级电压不足:C级电阻过大。为了低功耗,过低的减小了集电极的电流,进入饱和速度太慢。 基极电流不足:B级电阻和下拉电阻过大。过低的减小了基极的电流和电压。 尖刺产生:可能是测试飞线产生的,先不纠结,下一步处理 调整 调整基极驱动:基极电阻降低到 1kΩ,基极电流大约是 3mA,使三极管深度进入饱和。 调整基极下拉电阻与基极驱动电阻的比值:调整为 47kΩ,下拉电阻比值大( 1:50) 调整集电极电路:集电极电阻降低到 10kΩ,降低对电源电压的分压影响。 调整后的电路原理图 C级的波形 t上升时间 (80%Vhigh) 是 3us 左右 最高电压 2.96V 接近电源电压 3V 基本实现了调整目标 IO→NPN→PMOS→LED 原理图 测量出漏级 PMOS G级 与 NPN C级 的电压 很明显 PMOS 接入后又出现了上升缓慢、尖刺、波形不平整 分析 没有考虑 PMOS管 内电容 Cgs:内部的电容 与 集电极的电阻 形成了 RC延迟电路。 尖刺产生:是测试飞线产生的,在 NPN管 集电极 与 PMOS 栅极之间串联一个阻抗,减少干扰。 调整 集电极的电阻再减小至470Ω:加快 栅极-源级 级间放电速度。 栅极串联负载 22Ω:消除振铃 调整后的原理图 调整后 PMOS管 G端的开通波形 t上升时间 (80%Vhigh) 是3us左右。 PMOS管 D端 - LED+ 波形 整体功耗达到了 10mA*n% (PWM占空比) 写在后面 考虑 PMOS 打开更迅速 适当降低三极管C端电阻 470Ω → 220Ω 注意功耗增加到了约 15mA 考虑 NPN 到仍然还有干扰 接入 22Ω → 47Ω
鱼先生理论
5 15 硬创社
这几种情况就别用I2C了
🌈持续更新~欢迎关注互访互评,无限进步🌈 搜卫星关注:鱼先生理论 I2C作为最方便、接口最简单的板载通讯方式,哪些场景不适用,有哪些需要注意的时序 写在前面 不在意多几根线PCB空间,需要更快的数据读取频率 实时性差:每次只能和 所有从机 其中一个 一对一通讯,其他从机必须静默,在等待主机读取期间的数据可能丢失。 通讯开销大:每次需要声明从机地址,发 1byte 后就要等待 1bit ACK,效率低。 在较低速度下,通讯的相对单位时间内传输的有效数据就很少了 可以看到下图 “前置通讯准备” 是占据一部分通讯容量, 需要多主机访问从机芯片 鲁棒性差:总线被某异常拉低(最后一位时钟脉冲丢失、某芯片超时、SCL死锁低电平等),主机失去控制权,整组通讯暂停 多主机设备仲裁复杂:主机对待丢失总线控制权后尽快重新仲裁控权,防止数据丢失或上报错误 软件开销大:硬件简单、软件复杂。需要完备的容错、仲裁、总线监听、错误修复、Data加密校验等算法。 对保密性有要求,从机采集的数据敏感 总线劫持 Bus Hijacking:从机不会校验主机身份,可以轻松伪装主机,读取其他从机数据。 硬件接口 硬件接口简单 只需要两根线 SCL 串行时钟 / SDA 串行数据 通讯速率不高 通讯要求低 快速 400KHz / 标准 100KHz / 超高速 5MHz(要双方硬件支持) / 高速 3.4MHz(要双方硬件支持) 只要 SCL 的高电平 就能确认数据线数据,方波速率要求不严格 通讯协议 图表展示了主机和从机在 一字节写入 多字节写入 一字节读取 多字节读取 四个通讯状况下的通讯协议约定 打个比方: 主机就像一个老师 一组I2C接口是一个教室 并联在一起的从机就是一起坐在教室里的学生 老师可以给全部学生说话 大部分时候是一个老师和一个学生一对一说话 别的同学是安静的是不说话 以下对多字节的读和写过程 主机写多字节数据过程 教室都没人说话——两根线都默认高电平 老师说 “我现在要说话”——主机发起起始状态 ST(SCL高的时候 下拉SDA SDA产生一个下降沿) 所有从机监听 老师点名 “张三我要你记笔记”——主机发送从机地址“SAD[6:1]”+最后一位是写命令”SAD[0]/W=0“ 张三回复“听到了”——从机回复 SAK(在下一个时钟脉冲高电平前将SDA拉低) 老师说“从笔记本第100页开始”——主机声明将写入数据的第一个位置 张三回复“听到了”——从机回复 SAK “记一组数据 50”——主机声明第一个地址写入的数据值 张三回复“听到了”——从机回复 SAK “记一组数据 51”——主机声明第二个地址写入的数据值 张三回复“听到了”——从机回复 SAK 老师说”结束了“——主机发起结束状态 SP(SCL高的时候 上拉SDA SDA产生一个上升沿) 教室都没人说话——两根线恢复默认高电平 SA — Slave Address 从机地址【只有7位】 主机读多字节数据过程 教室都没人说话——两根线都默认高电平 老师说 “我现在要说话”——主机发起起始状态 ST(SCL高的时候 下拉SDA SDA产生一个下降沿) 所有从机监听 老师点名 “张三我要让你读一段数字”——主机发送从机地址“SAD[6:1]”+最后一位是写命令”SAD[0]/W=0“ 张三回复“听到了”——从机回复 SAK(在下一个时钟脉冲高电平前将SDA拉低) 老师说 ”把书翻到…“——主机声明要写入 要读数据的起始地址 张三回复“听到了”——从机回复 SAK “第100页”——主机要读数据的起始地址值 张三回复“听到了”——从机回复 SAK 老师说 ”大家安静“——主机发起重复起始状态 SR = 其实是恢复默认状态 + ST起始状态 SCL在时钟脉冲高电平**之前,**释放SDA,SDA高电平 SCL在时钟脉冲高电平时候,两条线有一刻恢复默认状态(高电平)。 紧接着,主机 再发起一个起始状态 ST (SDA产生一个上升沿) 【从机不需要SAK】 老师说 ”张三 你开始读“——主机发送从机地址“SAD[6:1]”+最后一位是读命令”SAD[0]/R=1“ 张三回复“听到了”——从机回复 SAK 张三说 ”50“ ——从机发送1字节数据 老师回复“听到了”——主机回复 MAK(在下一个时钟脉冲高电平前将SDA拉低) 张三说 ”51“ ——从机发送1字节数据 老师回复“听到了”——主机回复 MAK 张三说 ”52“ ——从机发送1字节数据 老师不说话、同学停止读数据——从机没有接收 MAK 而停止发送数据 老师说”结束了“——主机发起结束状态 SP(SCL高的时候 上拉SDA SDA产生一个上升沿) 教室都没人说话——两根线恢复默认高电平 需要注意的几件事 每次传输数据都是 8 位,而是最高位先发送 SCL低电平的时候 SDA数据无效,SCL高电平的时候,SDA数据保持不变。 除了主机可以发起 起始状态 ST 结束状态 SP 重复起始状态 SR 这三个状态外,其他情况不允许在SCL高电平的变更SDA的电平,否则会触发这三个状态,导致通讯混乱。 从机是不可以主动说话的,所有对话都是主机主动发起。 主机结束发送后 需要释放SDA,让其保证默认状态(高电平),让从机可以正确发送 SAK 有的情况从机没有 SAK(没有在下一个时钟脉冲高电平前将SDA拉低),从机是正忙,也就是 NSAK
鱼先生理论
11 12 硬创社