使用 Python 计算 LP2980 调节电阻

LP2980-ADJ 是一个 50 mA LDO,可以使用一对电阻配置为 1.23V 到 15V 的输出电压。

数据手册列出了输出电压的公式,但没有提供易于使用的可定制软件来以可重现的方式直接计算正确的电阻。

本文附带了一个基于 UliEngineering 的脚本,它不仅计算最接近的 E96(默认,其他范围也可用)电阻值和实际 E96 电阻值的实际输出电压。底部包含用法示例。

lp2980_adjust_resistor.py
#!/usr/bin/env python3
"""
计算 LP2980-ADJ 调节电阻的脚本。
参见 https://www.ti.com/lit/ds/symlink/lp2980-adj.pdf 第 17 页

基于 Resistors.py,参见
https://techoverflow.net/2015/05/19/finding-the-nearest-e96-resistor-value-in-python/
"""
from UliEngineering.EngineerIO import *
from UliEngineering.Electronics.Resistors import *

__author__ = "Uli Köhler"
__license__ = "CC0 1.0 Universal"
__version__ = "1.0"

def computeLP2980OutputVoltage(r):
    """给定调节电阻计算 LP2980-ADJ 的实际输出电压"""
    return 1.23 + 1.23 * (r / 51.1e3)

def computeLP2980AdjResistor(u):
    """
    给定目标输出电压(伏特),
    计算 LP2980-ADJ 调节电阻的精确值。
    """
    #检查限制
    if u < 1.23: print("警告:LP2980-ADJ 不支持低于 1.23V 的输出电压")
    elif u > 15: print("警告:LP2980-ADJ 不支持高于 15V 的输出电压")
    #
    return (100 * u - 123) * 51100 / 123


# 用法示例:计算 U=4.00V 的 E96 Rlim
if __name__ == "__main__":
    # 计算理论值
    radj = computeLP2980AdjResistor(normalize_numeric("4.00 V"))
    # 计算最接近的实际值
    e96_rlim = nearest_resistor(radj, sequence=e96)
    actual_vout = computeLP2980OutputVoltage(e96_rlim)
    # 打印结果
    print("理论 Radj 值:%s" % (format_value(radj, "Ω")))
    print("最接近的 E96 值:%s" % (format_value(e96_rlim, "Ω")))
    print("最接近 E96 值时的输出电压:%s" % (format_value(actual_vout, "V")))

Check out similar posts by category: Electronics, Python