LP2980-Abgleichwiderstand mit Python berechnen

English Deutsch

Der LP2980-ADJ ist ein 50-mA-LDO, der mit einem Widerstandspaar für eine Ausgangsspannung von 1,23V bis 15V konfiguriert werden kann.

Das Datenblatt enthält eine Formel für die Ausgangsspannung, jedoch wird keine einfach zu verwendende, anpassbare Software bereitgestellt, mit der sich der korrekte Widerstand auf reproduzierbare Weise direkt berechnen lässt.

Diesem Beitrag ist ein Skript angefügt, das auf UliEngineering basiert und nicht nur den nächsten E96-Widerstandswert (Standard, andere Reihen ebenfalls verfügbar) berechnet, sondern auch die tatsächliche Ausgangsspannung mit dem E96-Widerstandswert. Ein Anwendungsbeispiel ist am Ende enthalten.

lp2980_adjust_resistor.py
#!/usr/bin/env python3
"""
Ein Skript, das den LP2980-ADJ-Abgleichwiderstand berechnet.
Siehe https://www.ti.com/lit/ds/symlink/lp2980-adj.pdf Seite 17

Basierend auf Resistors.py, siehe
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):
    """Berechne die tatsächliche Ausgangsspannung eines LP2980-ADJ gegeben den Abgleichwiderstand"""
    return 1.23 + 1.23 * (r / 51.1e3)

def computeLP2980AdjResistor(u):
    """
    Berechne den genauen Wert für den LP2980-ADJ-Abgleichwiderstand,
    gegeben eine Soll-Ausgangsspannung in Volt.
    """
    #Grenzen prüfen
    if u < 1.23: print("Warnung: LP2980-ADJ unterstützt keine Ausgangsspannungen unter 1,23V")
    elif u > 15: print("Warnung: LP2980-ADJ unterstützt keine Ausgangsspannungen über 15V")
    #
    return (100 * u - 123) * 51100 / 123


# Anwendungsbeispiel: Berechne E96 Rlim für U=4.00V
if __name__ == "__main__":
    # Theoretischen Wert berechnen
    radj = computeLP2980AdjResistor(normalize_numeric("4.00 V"))
    # Nächsten tatsächlichen Wert berechnen
    e96_rlim = nearest_resistor(radj, sequence=e96)
    actual_vout = computeLP2980OutputVoltage(e96_rlim)
    # Ergebnisse ausgeben
    print("Theoretischer Radj-Wert: %s" % (format_value(radj, "Ω")))
    print("Nächster E96-Wert: %s" % (format_value(e96_rlim, "Ω")))
    print("Ausgangsspannung am nächsten E96-Wert: %s" % (format_value(actual_vout, "V")))

Check out similar posts by category: Electronics, Python