gelöst Probleme unter macOS eigene Modelle zu erstellen

Ich bin Mac-User seit über 40 Jahren und damit schwer zu überzeugen, freiwillig auf eine Blechdose nach Microsoft-Machart umzusteigen. Linux kam da leider schon zu spät. Die schlechten Sitten, geprägt durch Microsoft und verstärkt durch von den Bekloppten zum Industriestandard erhoben Mikroschrott, haben das Feld für sich eingenommen. Die falsche Apple-Politik tat ein übriges.
 
Mir ist Apple zu sehr "Closed source". Zuerst verkaufen die ihre Geräte viel zu teuer, dann schränken sie ihre Kunden auch noch nach Belieben ein, damit die ja nicht etwas benutzen, was Apple selber verkaufen konnte.
 
@spicer
Das mag ja sein. Und in weiten Bereichen teile ich deine Meinung. Aber wie du sicher bemerkt haben solltest, bin ein Mac-User der ersten Stunde. Und ich hatte in meinem Beruf immer wieder Gelegenheit, die Unterschiede kennen zu lernen. Warum sollte ich jetzt auf meine alten Tage umswitchen wollen?

Jetzt warten wir zunächst einmal ab, was Analog Devices zu dem Problem zu sagen hat. Die hatten sich gestern noch geräuspert und ich habe daraufhin noch ein paar erläuternde Wort nach gereicht.

Mittlerweile hab ich mich mit der Wine-Version alias Crossover ganz gut angefreundet, ich hab jetzt 14 Tage Zeit es zu testen.

Das Schöne an der Sache ist, bei mir läuft jetzt die neueste LTspice-Version für das Windows-OS und ich kann erkennen, dass diese LTspice-Version sich nicht sonderlich von dem unterscheidet, was ich bisher unter Mac OS kennegelernt habe, d.h. die Dinge laufen wieder glatt von der Hand.

BTW. Wil Kceg-Tutorial: Es läuft in der neuen LTspice-Version etwas anders, als er es in 2012 beschrieben hat. Ich hab mal geschaut ob man den Autor irgendwo erreichen kann, aber Fehlanzeige. Man müsste sein Tutorial überarbeiten, dazu müsste man seine Genehmigung haben....

Eine Frage an dich: hättest du evtl eine Idee, wie man aus einem Integer-Wert ein Bitmuster erzeugen kann, um einen DAC auf der Basis eines R2R-Netzwerkes steuern zu können?
 
nee, so war das mit der Idee nicht gemeint. Es geht um einen Converter, den ich in LT simulieren möchte. Real habe ich vor das auf einem Pico zu machen.
Der Hintergrund ist aber der, dass ich einen Filter testen/Simulieren möchte, der dem DAC nachgeschaltet ist. den DAC mit dem R2R-Netzwerk in LT zu simulieren ist ja nicht das Prob. jetzt möchte ich den simulierten DAC in LT mit einem Wert zwischen 0 und X ansteuern. Daher meiner Frage wird würdest du in LT es anstellen, einen Integer-Wert zu zerlegen, so dass daraus ein Bitmuster entsteht mit dem der DAC angesteuert wird.
Bildschirmfoto 2024-07-11 um 11.31.28.png
Das ist der DAC, den ich schon mal zu ersten Zwecken des Studiums in LT zusammengestellt habe, um mal ein Gefühl dafür zu bekommen, wie man eine solchen DAC verstehen sollte. Jetzt geht's darum, die Spannungquellen zuentfernen und jeden einzelne Zweig (R02, R04...) entweder mit 0 V oder mit 3,3V anzusteuern.
 
Meinst Du zBsp:
0 alle Ausgänge 0
1 Ausgang 1 auf 1
2 Ausgang 2 auf 1
3 Ausgang 3 auf 1
...
oder wie binär Code?
 
ja, ich bin aber schon ein Stück weiter und habe diese Direktiven entworfen

.param Value = 170 ; Beispielwert (10101010 in Binär)
.param VHigh = 3.3 ; Hoher Spannungspegel

.func Bit0 = ((Value & 1) > 0) * VHigh
.func Bit1 = (((Value >> 1) & 1) > 0) * VHigh
.func Bit2 = (((Value >> 2) & 1) > 0) * VHigh
.func Bit3 = (((Value >> 3) & 1) > 0) * VHigh
.func Bit4 = (((Value >> 4) & 1) > 0) * VHigh
.func Bit5 = (((Value >> 5) & 1) > 0) * VHigh
.func Bit6 = (((Value >> 6) & 1) > 0) * VHigh
.func Bit7 = (((Value >> 7) & 1) > 0) * VHigh
.func Bit8 = (((Value >> 8) & 1) > 0) * VHigh
.func Bit9 = (((Value >> 9) & 1) > 0) * VHigh
.func Bit10 = (((Value >> 10) & 1) > 0) * VHigh
.func Bit11 = (((Value >> 11) & 1) > 0) * VHigh
.func Bit12 = (((Value >> 12) & 1) > 0) * VHigh
.func Bit13 = (((Value >> 13) & 1) > 0) * VHigh
.func Bit14 = (((Value >> 14) & 1) > 0) * VHigh
.func Bit15 = (((Value >> 14) & 1) > 0) * VHigh

jede dieser Funktionen liefert also 0 oder 3.3 (Volt)

Ich hab' nur noch nicht den Bogen raus, wie ich das einer normalen Spannungsquelle verklickern soll? Irgendeine Idee?
 
Man muss doch den Rückgabewert der Funktion mit dem Value-Attribut verknüpfen können. ich hab das vor Jahren schon mal gemacht, alles vergessen, es ist zum Heulen
 
Ja, das geht auch, sofern die Zuweisung für die Spannungsquelle ausschließlich einen konstanten Parameter enthält.
Sobald da aber eine Formel im Spiel ist, muss es eine mit "bv" gewählte Quelle sein, also eine "Arbitrary behavioral voltage source" muss es sein.
Die dann möglichen Berechnungen sind aber eher dürftig. Der Übergang in die Digitaltechnik ist bei LTspice immer noch sehr dürftig. Dabei wäre das eine klassische Anwendung um Filter zu studieren, die dihital gesteuert werden.
 
Leider klappt das mit der Anforderung zur Bearbeitung eines Beitrags nicht, keine Ahnung warum?
Die von der KI vorgeschlagene Lösung
.func Bit1 = (((Value >> 1) & 1) > 0) * VHigh
ist ein ziemlicher Blödsinn.
.func Bit0() {((Value & 1) > 0) * VHigh}
Die vorstehende Funktion ist anwendbar auf eine mit "bv" gewählte Spannungsquelle (Arbitrary behavioral voltage source). Und funktioniert leider nur bedingt. Die bitweise boolsche Verknüpfung zur Maskierung des niederwertigsten Bits (lsb) eines Integers funktioniert nicht in LTspice, was diesen gesamten Ansatz obsolet werden lässt, zumindest sehe ich im Augenblick keine Lösung zu einem workaround.
 
@spicer
es ist mir jetzt gelungen den DAC in LTspice zu simulieren.
Bildschirmfoto 2024-07-11 um 21.04.17.png
Wesentlich sind diese 3 folgenden Zeilen, mit denen ich die Grundlage geschaffen habe, die Aussteuerung des DAC über einen Integerwert bestimmen zu können.
.param Amp=32
32 ist für den Augenblick ein Spielwert, der später in der kompletten Simulation Werte zwischen 0 und 4194303 annehmen kann.

.param VHigh 3.3
VHigh
stellt den Spannungspegel dar, mit dem der Raspberry Pi Pico die Widerstandszweige einspeist, wenn der entsprechende Ausgang auf H gesetzt ist, anderenfalls wird ein Pegel von 0 Volt vorgegeben.

.func BVal(x,n) = floor(x / (2**n)) % 2
Das ist die Zauberfunktion, nach der ich den ganzen Tag gesucht habe. Diese Funktion extrahiert ein spezifisches Bit aus einer Ganzzahl. Hier ist die Aufschlüsselung:
  1. x: Der Eingangswert, aus dem wir ein Bit extrahieren wollen.
  2. n: Die Position des Bits, das wir extrahieren wollen (0 für das least significant bit, 1 für das zweite Bit, usw.).
  3. 2**n: Dies berechnet 2 hoch n. Es verschiebt effektiv das gewünschte Bit an die richtige Position.
  4. x / (2**n): Dies verschiebt die Bits von x nach rechts, so dass das gewünschte Bit an der least significant Bit-Position steht.
  5. floor(...): Diese Funktion rundet das Ergebnis der Division ab. Dies ist notwendig, da LTspice mit Fließkommazahlen arbeitet, wir aber eine Ganzzahlrechnung benötigen.
  6. % 2: Der Modulo-Operator gibt den Rest der Division durch 2. Dies extrahiert effektiv das least significant Bit des Ergebnisses, was unserem gewünschten Bit entspricht.
Da das Bitschieben in LTspice anscheinend nicht so beliebig funktioniert, war dieser Weg noch die letzte verbliebene Möglichkeit zum Ziel zu kommen.

V={if(BVal(Amp,n)>0, VHigh, 0)}
Und dieser Formalismus wird wird beim Value-Attribut der mit "bv" gewählte Spannungsquelle (Arbitrary behavioral voltage source) eingegeben.
Bildschirmfoto 2024-07-11 um 21.33.27.png
Das sind die "berühmten" Parameter, die bei anderen Elementen wie der Kategorie R, C oder SW immer nur individuelle Merkmale ausbilden. Bei der gewählten Spannungsquelle, die eine besondere Art in der Kategorie der Spannungsquellen darstellt, ist es auf diese Art möglich, den Spannungspegel dynamisch zu bestimmen. Und wenn man oben im Plan nach schaut, habe ich die Spannungsquellen willkürlich identifiziert. LTspice hätte mit seiner Default-Einstellung die Spannungsquellen mit V1..V22 benamst. Da ich aber noch etwas vorhabe und noch etliche Spannungsquellen benötige, habe ich die für den DAC benötigten Spannungsquellen aus dem Muster herausgenommen und somit für diesen Teil eine besondere Nomenklatur eingeführt, die sich damit deutlich von der tatsächlichen Hardware abgrenzen lässt.
 
Hilft Dir das?

Auswahl_001.png


Natürlich kannst die Werte noch mit 3.3 multiplizieren ;)
 

Anhänge

  • integer_to_binaer.asc
    897 Bytes · Aufrufe: 1
@spicer
nicht direkt, aber es regt zu der nächsten Idee an, eine Dreiecksfunktion zu simulieren, ist ja fast noch die leichtere Übung, anders sieht es bei einer Sinusfunktion aus. Da hätte ich doch gerne mal in den Anhang geschaut, aber das lässt die Forumssoftware derweil nicht zu ?? :mad:
 
@spicer
nicht direkt, aber es regt zu der nächsten Idee an, eine Dreiecksfunktion zu simulieren, ist ja fast noch die leichtere Übung, anders sieht es bei einer Sinusfunktion aus. Da hätte ich doch gerne mal in den Anhang geschaut, aber das lässt die Forumssoftware derweil nicht zu ?? :mad:
Was lässt die Forensoftware nicht zu?
Du musst halt schon abwarten, bis der Virenscan fertig durchgelaufen ist!
Das ist ein Sicherheitsfeature, welches ich eingebaut habe.
Dauert halt 5 Minuten, dafür sind alle Anhänge hier virenfrei.
F5 ist Dein Freund ;)
 
Gefunden >LTspice@groups.io
Hello all, I installed the last version for Mac (17.2.4) on a Mac Mini (Intel) running macOS Monterrey (12.7.4). After a simulation run (.tran and .op) I can plot node voltages but cannot plot device currents. Hovering the cursor over a device (any) doesn't show the current probe. Has the feature been removed from the Mac version? I would appreciate any help. Best regards, Alex.

Dan Dickey
2:34am #154597
Device currents can be turned on and off in the settings. Check the “save” options and turn on device currents.
Ich (Udo) habe keine LTspice MAC version und kann deshalb nur suchen, was andere "Leidensgenossen" mitteilen.
 
@Udo
Hallo Udo
nein, ich bin kein Leidensgenosse im Sinne des geschilderten Verhaltens. Ich habe ebenfalls die aktuellste LTspice-Version installiert - mein Mac ist aber ein bisschen größer :ROFLMAO: und rennt aber schon (!!) mit Monterrey 12.7.5. Bis eben auf den von mir entdeckten Bug verhält sich LTspice völlig normal.

Was Dan Dickey schreibt, kann ich nicht nachvollziehen. Vielleicht hat er eine "besondere" LTspice-Version? in meinen Einstellunge findet sich nichts dergleichen.
 

Benutzer welche diesen Thread betrachten (Mitglieder: 0, Gäste: 1)

Wer hat diesen Thread gelesen

Zurück
Oben