Ich verwende einen PWM-Timer im UC, um ein Analogsignal zu erzeugen, das
ausserhalb der Platine gefiltert und dort zur Anzeige gebracht wird.
Jetzt reicht der mir von der Auslösung her nicht mehr und der Timer
packt das nicht. Ausserdem sollen mehrere Kanäle zusammengefasst werden.
Daher wird ein PLD programmiert, dass vom UC beschrieben wird und eine
eigene PWM machen soll. Es sind 6 Kanäle angedacht.
Jetzt kam noch folgende Idee: Um Störungen vorzubeugen, soll das Signal
schon in der Nähe des PLD analog gefiltert werden. Damit es nun nicht
störanfällig wird, soll es symmetrisch, also statt mit etwa 0,3 ... 3,0V
mit -1,5 .. 1,5 Volt übertragen werden. Der Emfänger hat einen
OP-Eingang, den man differentiell betreiben kann. Es ist also sowas wie
LVDS im Analogen. Als Lösung wird vorgeschlagen, alles zeimal aufzubauen
und die eine Hälfte der Werte negativ auszugeben. Wären dann 6x2 Kanäle
und 12 Filter. Das scheint mir aber unnötig!
Frage: Kann Ich nicht einfach den Ausgang des Pins duplizieren und im
PLD mit einem Inverter negieren und dann nur jeweils einen Filter auf
die beiden Pins ohne GND schalten?
Die Pins schalten doch dann gegensinnig 0/1 oder 1/0 und hätten mit dem
GND nichts mehr zu tun, was eigentlich Sinn der differentiellen
Übertragung ist.
Oder?
Was meinst Du mit "analog gefiltert"?
Willst Du digital oder analog übertragen?
Oder beides, indem der Empfänger die Digitalsignale nicht auffrischt vor
dem glätten?
Ein Inverter verzögert das Signal und führt möglicherweise zu Glitches.
Zu TTL-Zeiten gab es Bausteine, auf denen sowohl Inverter als auch
Nicht-Inverter drin waren.
Analogsignale kriegst du aus einem Digitalbaustein grundsätzlich nicht
raus, aber moderne FPGAs können differentielle Signale auch direkt
ausgeben. Die kannst du auch durch zwei Offsetverstärker schicken, aber
ob das sinnvoll ist, kann ich nicht einschätzen.
S. R. schrieb:> aber moderne FPGAs können differentielle Signale auch direkt ausgeben
Allerdings liegt der Witz dabei im Wort "differentiell", denn bei dieser
Art Signalübertragung ist bezogen auf GND keine negative Spannung
beteiligt. Die negative Spannung ergibt sich nur durch ein Impotent der
Signalleitungen (siehe auch CAN, RS422, RS458, LVDS...),.
Programmierer schrieb:> Damit es nun nicht störanfällig wird, soll es symmetrisch, also statt> mit etwa 0,3 ... 3,0V mit -1,5 .. 1,5 Volt übertragen werden
Warum sollte ein Signal, das einfach nur um 1,5V in negative Richtung
verschoben wurde, weniger störanfällig sein?
Welche Leitumgslängen hast du vom PWM Ausgang bis zum Empfänger, dass du
dir da über Störungen Gedanken machst?
Ich habe mich möglicherweise falsch ausgedrückt. Also:
Momentan geht eine "normale" PWM zwischen 0 und 3,3V (real wegen der
Schaltschwellen 0,3 bis 3,0) in Richtung des Analogmoduls. Die Leitung
hat fast 1m Länge und emitiert Störungen. Vor dem Analogmodul sitzt ein
filter, das das Signal mittelt. Also kann das Analogmodul eine analoge
Spannung "sehen". Ich steuere es zwischen 0,5 und 2,0 Volt an, weil das
die Messwerte sind. Das Ergebnis ist eine Anzeige von -50% bis + 100%.
Das Modul zeichnet alles auf und zeigt es auch an.
Die Schaltfrequenz beträgt etwa 100kHz. Der Filter liegt bei 1kHz
Grenzfrequenz. Das Analogmodul hat eine Bandbreite von 2kHz. Wir
brauchen maximal 1000 Werte die Sekunde, sodass das passt.
Um die Störungen zu mindern, soll nun der digitale Teil verkürzt werden,
d.h. der Filter kommt auf die andere Platine. Damit wird nicht mehr
100kHz digital mit Oberwellen in die Welt gesendet, sondern nur noch
1kHz und ein bissl was :-)
Da die Spannung aber nun analog ist, unterliegt sie den Einstreuungen
des Gerätes. Man muss noch sagen, dass vor dem Filter ein Schmitttrigger
sitzt, der das digitale Signal aufgefrischt hat und es unempfindlicher
gemacht hat. Das fällt nun weg.
Stattdessen will man den OP nicht mehr als ST fahren, sondern als
differentiellen Analogverstärker. Dazu braucht es jetzt das symmetrische
Signal. Also die halbe Spannung mit +/- . Der Offset wird durch den OP
eingestellt und kalibiert, d.h. Ich kann z.B. von -0,5 bis +1,0 direkt
ausdrücklich übertragen, womit die Offestkalibierung auch wegfallen
würde und Ich es im Chip machen kann, weil Ich ja nun erstmals echte
negative Spannungen übertragen kann, indem die PWM unter 50% läuft.
Vorher war die 50% ja etwa 0,3 + 3,0/2 = 1,8V. Jetzt ist 50% gleich 0!.
Was Ich nur wissen muss:
Brache Ich zwei Filter die invertiert verschaltet sind oder reicht
einer?
deine Grundidee hab ich jetzt verstanden, aber bei manchen Details bin
ich mir immer noch nicht sicher:
Programmierer schrieb:> Die Leitung> hat fast 1m Länge und emitiert Störungen.
Das hast du real beobachtet oder das befürchtest du nur? Vielleicht
würde ja eine passende Terminierung der digital getriebenen Leitung
schon helfen.
Programmierer schrieb:> weil Ich ja nun erstmals echte> negative Spannungen übertragen kann, indem die PWM unter 50% läuft.
Meinst du damit negative Differenzspannungen zwischen den beiden
differentiellen Signalleitungen? Oder meinst du wirklich negative
Spannungen (also mit einer negativen Spannungsversorgung)?
Programmierer schrieb:> Um die Störungen zu mindern, soll nun der digitale Teil verkürzt werden,> d.h. der Filter kommt auf die andere Platine.
Sprechen wir hier von einem passiven Filter? Oder soll der OPV, der in
Zukunft am Leitungsende einen Differenzverstärker bildet, als aktiver
Filter beschaltet werden?
Programmierer schrieb:> Frage: Kann Ich nicht einfach den Ausgang des Pins duplizieren und im> PLD mit einem Inverter negieren und dann nur jeweils einen Filter auf> die beiden Pins ohne GND schalten?
Das klingt nach einem passiven Filter zwischen komplementär schaltenden
Digitalsignalen am Leitungsanfang? Ja, kannst du machen. Ein steiles
Filter für 1kHz wäre so zwar vielleicht etwas unhandlich zu bauen. Die
evtl. störende Abstrahlung stammt aber ja von sehr viel höheren
Frequenzen, die du auch mit einem simplen Filter niedriger Ordnung stark
wegdämpfst. Du darfst dann neben dem Kondensator zwischen dem diff.
Leitungspaar durchaus auch noch jeweils einen gegen GND verwenden.
Wenn du das gemeint hast, dann achte bei einem passiven Filter am
Leitungsanfang darauf, dass die Treiberimpedanz für die Leitung nicht zu
hochohmig wird, und dass die Übertragung auch wirklich symmetrisch ist.
Dass also z.B. der Diffamp am Leitungsende die beiden Leitungen nicht
unterschiedlich stark belastet. Und dass natürlich die Treiberimpedanz
für beide Leitungen des diff. Leitungspaares gleich ist.
Programmierer schrieb:> weil Ich ja nun erstmals echte> negative Spannungen übertragen kann, indem die PWM unter 50% läuft.
Wie eigentlich klar sein sollte kannst Du nur eine virtuelle negative
Spannung als Information übertragen, nicht aber eine negative Spannung
selbst. Das würde schon eine echte negative Spannungsquelle erfordern
und nur dann würde auch ein Filter reichen. Dein symmetrischer
Verstärker im Empfänger braucht ja ein Bezugspotenzial, da dessen
Ausgang zwar die Differenz verstärkt - sonst aber in der Luft hängt. Der
braucht also noch irgendeine Masse. Wenn Du dort den Offset verdrehen
kannst, kannst Du ja schon jetzt eine negative Spannung erzeugen (?)
Dasselbe gilt für den Ausgang des Senders: Du kannst den Filterausgang
jederzeit als "symmetrisch" interpretieren, wenn Du ein entsprechendes
Bezugspotenzial mitlieferst. Dazu brauchst Du aber die halbe Spannung
oder genauer: Das, was Nullpunkt sein soll. Dann könntest Du auch damit
kalibrieren. Aber:
Das erfordert, dass dein Empfänger eine andere Masse haben darf! Frage:
Darf er das? Wahrscheinlich nicht! Wenn beide auf demselben GND hängen,
dann müssen auch beide Ausgangsspannungen der symmetrischen
Signalführung auf diesen bezogen sein. Du brauchst also entweder nur
einen Filter, der das Analogsignal aus der PWM macht aber danach einen
invertierenden Analog-OP mit negativer Versorgung, wie es beim
professionellen Audio gemacht wird-
oder Du erzeugst mit zwei Pins und zwei Filtern ein gegenphasiges Signal
mit jeweils demselben Offset im Positiven, der dann vom Empfänger
eliminiert wird, soweit er eine gute common mode rejection hat, was noch
zu prüfen wäre!
Ob Du Deine Pins dann mit einem OP oder direkt im PLD invertierst, ist
Wurscht. Es bleibt eine negierte Spannungsinformation, die physikalisch
immer im Positiven ist. Wo Ich ein Problem sehe, ist der Ausgangspegel
des Pins: Der ist nicht notwendigerweise in der Mitte zwischen den Rails
von daher muss dessen Offset auch noch wegkalibriert werden. Ich habe
das hier mal durchexerziert, als es um das indirekte AD-Wandeln mit PDM
ging:
Analog-IO mit digitalen Bausteinen
Da muss auch die PWM von den 50:50 weggeschoben werden, um den echten
Nullpunkt zu treffen. Vielleicht kann man das Problem in Deinem Fall
durch kapazitive Ankopplung lösen.
Schau Dir in jedem Fall mal an, wie solche Verstärker im Audiobereich
aufgebaut sind.
Für eine saubere symmetrische Übertragung muss das Signal aber
vollkommen Offsetfrei sein, d.h. die Stufen müssten 100% invertiert
schalten. Mit PWM ist das wohl eher nicht hinzubekommen. Und bei Audio
wäre Ich auch vorsichtig.
Programmierer schrieb:> Jetzt kam noch folgende Idee: Um Störungen vorzubeugen, soll das Signal> schon in der Nähe des PLD analog gefiltert werden. Damit es nun nicht> störanfällig wird, soll es symmetrisch, also statt mit etwa 0,3 ... 3,0V> mit -1,5 .. 1,5 Volt übertragen werden.
Wie Lothar bereits sagte, das ist kein differenzielles Signal.
Programmierer schrieb:> Momentan geht eine "normale" PWM zwischen 0 und 3,3V (real wegen der> Schaltschwellen 0,3 bis 3,0) in Richtung des Analogmoduls.
Dann ist also der Mittelwert 1.65V, und das differenzielle Signal würde
dann auf der positiven Leitung von +0.3..+3.0V gehen, und das negative
von +3.0..+0.3V.
Programmierer schrieb:> Kann Ich nicht einfach den Ausgang des Pins duplizieren und im> PLD mit einem Inverter negieren
Ja, so würde ich das auch machen.
Dass der Inverter ein paar Nanosekunden Delay erzeugt ist meiner Meinung
nach bei 1-2 KHz komplett egal. Viele Audio-Symmetrierschaltungen
arbeiten mit einem nachgeschalteten Op-Amp für das invertierte Signal,
der erzeugt mit Sicherheit wesentlich mehr Phasenverschiebung.
> und dann nur jeweils einen Filter auf> die beiden Pins ohne GND schalten?
Vorteil von nur einem Kondensator: bessere Symmetrierung.
Bei 2 Filtern sieht das Ausgangssignal aufgrund der Kondensator-Toleranz
etwas unterschiedlich aus.
Joe F. schrieb:>> und dann nur jeweils einen Filter auf>> die beiden Pins ohne GND schalten?>> Vorteil von nur einem Kondensator: bessere Symmetrierung.> Bei 2 Filtern sieht das Ausgangssignal aufgrund der Kondensator-Toleranz> etwas unterschiedlich aus.
Wie soll denn diese Schaltung aussehen?
Joe F. schrieb:> Vorteil von nur einem Kondensator: bessere Symmetrierung.> Bei 2 Filtern sieht das Ausgangssignal aufgrund der Kondensator-Toleranz> etwas unterschiedlich aus.
Dann greift aber wieder die schon gestellte Frage nach der virtuellen
Masse beim Empfänger. Die muss dann erst einmal geschaffen werden (oder
sie erschafft sich selber) und dort passiert Dasselbe an Unsymmetrie,
wie beim Senden.
Widerstände mit 100k definieren erfahrungsgemäß noch keine gute Masse.
Das müsste niederohmiger sein, vor allem hochfrequenzmäßig.
Ich werfe mal die angehängte Schaltung in die Diskussion.
Beim Senden hat man zudem die Möglichkeit, den Ausgang abzusampeln und
zu regeln, um so kanalweise eine präzise Mitte zu erzeugen.
Ein einzelnes Filter wäre natürlich besser, ginge aber wie gesagt nur,
wenn sie auch vollsymmetrisch, also mit +/- angesteuert wird.
Markus W. schrieb:> Mit PWM ist das wohl eher nicht hinzubekommen. Und bei Audio> wäre Ich auch vorsichtig.
Warum sollte das nicht gehen?
Wenn die PWM Frequenz hochgenug ist, kriegt man einen recht glatten
DC-Wert für Anzeigen raus und die Einstellbarkeit ist auch geben,
spätestens, wenn man dithert. Mit PDM im Megaherzbereich wird ja sogar
Audio übertragen. Ich benutze das als preiswerte Ausgabe für meine
Synthies. Bei der Übertragung in symmetrischer Form werden alle
Störungen auf den Leitungen durch den Verstärker wieder weggenommen. Da
kann man sogar mit 50Hz-Brumm aus einem Trafo rangehen und hört nichts.
Auch hochfrequente Störungen sind zu unterdrücken. Es bietet sich ja an,
vor den Verstärker nochmals einen Audio-Tiefpass hinzusetzen, der die
gegenphasigen Wellen der PDM kurzschließt.
Ich habe auch schon mal die Lautstärke für die Höhen ab z.B. 2 kHz
stetig angehoben und komme dann bei 16kHz mit + 18dB raus. Dann kann Ich
die Grenzfrequenz für das Filter auf eben jene 2 kHz herabsetzen und die
PDM Wandelfrequenz inklusive HF nochmals besser unterdrücken. Verfolgt
man die Strategie linear weiter, gelangt man zu einem invertierten
Spektum und einer preiswerten aber hochgenauen Ausgabe für
Basslautsprecher.
Wer bei einer Übertragung z.B. Probleme mit Brumm hat, kann auch mal
eben ein Filter bei 50Hz einsetzen und diesen Bereich dann additiv
anheben. Der Empfänger bekommt dann ein Notchfilter mit moderater Güte,
das den Effekt wieder kompensiert. Nennt sich lineare Vorverzerrung.
Programmierer schrieb:> Brache Ich zwei Filter die invertiert verschaltet sind oder reicht> einer?
Beide Lösungen sind nicht übermäßig gut. Du brauchst einen
Symmetrierverstärker, der einen echten stabilen GND halten kann.
Programmierer schrieb:> Frage: Kann Ich nicht einfach den Ausgang des Pins duplizieren und im> PLD mit einem Inverter negieren und dann nur jeweils einen Filter auf> die beiden Pins ohne GND schalten?
Mit zwei Pins kommt nur doppelter Pegel aber nicht mehr Entstörung. Du
kannst das vergleichen mit einer kapazitiven Koppelung. Bei dem
Empfänger reicht ein Differenzverstärker gegen GND.