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
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow