Kann man so einen kleinen €0,95 Lautsprecher mit 0,5W und 8Ohm an einem
FPGA direkt betreiben? Die Lautsprecher haben doch einen Tiefpass,
müsstens also per PWM ansteuerbar sein.
PWM 50 MHz / 12 Bit = 12 bit @ 10kHz - sollte reichen
FPGA Ausgänge haben bis zu 25mA Strom. 3,3V mal 0,025 = 0,07 W.
Dann 8 Ausgänge parallel und man kann ihn treiben?
Jeder Ausgang der FPGAs hat maximal 60 Ohm, wenn er schaltet, macht als
Parallelschaltung 8 Ohm. Stimmt also anpassungsmässig ungefähr.
Oder sollte man besser jedem Ausgang noch einen kleinen R spendieren
wegen Kurzschluss?
Mag zwar sein, dass einzelne Pins am FPGA bis zu 25mA können, aber du
musst auch mal im Datenblatt nach dem maximalen Strom für den gesamten
FPGA schauen. Der hat auch eine Beschränkung wie viel alle Ports
gemeinsam maximal Treiben dürfen. Ich würde mal sagen da sind 250mA zu
viel...
PS: Welcher FPGA kann den 25mA? Die großen Xilinx CPLDs können gerade
mal 15mA und bei den kleinen Xilinx FPGA ist bei 10mA erst mal Schluss.
Idee gehabt schrieb:> Kann man so einen kleinen €0,95 Lautsprecher mit 0,5W und 8Ohm an einem>> FPGA direkt betreiben? Die Lautsprecher haben doch einen Tiefpass,> müsstens also per PWM ansteuerbar sein.> FPGA Ausgänge haben bis zu 25mA Strom. 3,3V mal 0,025 = 0,07 W.>> Dann 8 Ausgänge parallel und man kann ihn treiben?>
Hallo Idee gehabt,
lass so Experimente lieber...
1) Das Parallelschalten von IOs im FPGA um die Treiberleistung zu
erhöhen: NOGO - Die ausgänge haben leicht unterschiedliche
Innenwiderstände und auch die Routingverzögerung ist leicht
unterschiedlich so dass Du zumindest kurzfristig die Ausgänge
überfährst. Wenn sie nicht schon kurzfristig sterben, so wird das
Bauteil auf jeden Fall deutlich schneller altern und irgendwann (evtl.
mit unerklärlichen fehlern) ausfallen.
2) Ein Lautsprecher ist kein ohmscher verbraucher. Seine Induktivität
wird Dir im Einschalt- und Ausschaltmoment ein vielfaches des
Nennstromes abfordern und Spannungsspitzen erzeugen welche deinen FPGA
ohne wirkungsvolle Schutzmassnahmen killen.
3) schau mal z.B. bei TI nach einem Class-D verstärker baustein. Dort
gibt es schnuckelige Verstärker für den Mobilmarkt welche teilweise
direkt einen I2S akzeptieren und dir via PWM den Lautsprecher ansteuern.
Die Teile sind recht preiswert. Ggfs gibt es sogar bezahlbare Evalboards
von TI.
Gruß Vanilla
Bevor du lange rumexperimentierst: Xilinx' XAPP154
ist eine APP für einen DAC zur Ansteuerung von
Phonos aller Art. Zur Ansteuerung des Lautsprechers
vieleicht noch ein Transistor etc. und gut ist.
Nimm lieber einen Leistungs-OPA, den du an die Versorgungsspannung
hängen kannst => suche im ANA-Forum. AC-Kopplung des Lautsprechers mit
einem möglichst großen Bipolaren Kondensator und du bekommst ein
brauchbares Ergebnis ohne Aufwand.
Den LS direkt an den FPGA ist Murks!
Sigi schrieb:> Bevor du lange rumexperimentierst: Xilinx' XAPP154>> ist eine APP für einen DAC zur Ansteuerung von>> Phonos aller Art.
Dat ist aber nur der DAC in Form eines Sigma-Delta-Wandlers. Den brauche
ich nicht, da die PWM schon vorliegt.
Ich habe keinen Platz auf der Platine und muss das hinzurüsten. OPA
nachrüsten geht also nicht.
Das mit der PWM müsste doch so gehen, wenn die Grenzfrequenz des
Tiefpasses (LS + Vorbeschaltung passt).
Bei den 1-Bit-Verstärkern machen sie es doch auch so,
Bei so einem Kleinlautsprecher fliesst doch nicht viel Strom. die 0,5
Wmax sollte man nur mit 60% = 0,3W belasten, wenn es noch klingen soll.
Das macht bei 3V nur 100 mA für Maxleistung.
FPGA-Ausgänge treiben locker 20mA. Da sollte schon ein einziger reichen,
um was zu hören.
@ Idee gehabt (Gast)
>Kann man so einen kleinen €0,95 Lautsprecher mit 0,5W und 8Ohm an einem>FPGA direkt betreiben?
Nein. Rechne mal die nötige Spannung und Strom aus, damit aus dem Ding
ANSATZWEISE was zu hören ist. Man kann bestenfalls hochohmige Kopfhörer
ansteuern, die gibt es in 32 Ohm und höher, 200 oder so wären OK.
> Die Lautsprecher haben doch einen Tiefpass,>müsstens also per PWM ansteuerbar sein.
Ja.
>FPGA Ausgänge haben bis zu 25mA Strom. 3,3V mal 0,025 = 0,07 W.>Dann 8 Ausgänge parallel und man kann ihn treiben?
Naja, kann man machen, schön ist was anderes.
>Jeder Ausgang der FPGAs hat maximal 60 Ohm,
Welches FPGA?
>Oder sollte man besser jedem Ausgang noch einen kleinen R spendieren>wegen Kurzschluss?
Das geht schon, wenn es nicht gerade ein 500 Euro FPGA ist ;-)
JBB schrieb:> Bei so einem Kleinlautsprecher fliesst doch nicht viel Strom. die 0,5> Wmax sollte man nur mit 60% = 0,3W belasten, wenn es noch klingen soll.> Das macht bei 3V nur 100 mA für Maxleistung.>> FPGA-Ausgänge treiben locker 20mA. Da sollte schon ein einziger reichen,> um was zu hören.
Ja ja ja, das stimmt alles. ABER: Dein Lautsprecher ist kein Widerstand,
der bei 3V einfach 20 mA zieht oder so. Der Lautsprecher ist eine
Induktivität. Das kann z.B. dazu führen, dass sich die Spannung deutlich
überhöht - vgl. Spule, deren Strom plötzlich abgeschaltet wird. Das
mögen die filigranen FPGA-Ausgänge überhaupt nicht. Bei Gleichspannung
wiederum hast du praktisch einen Kurzschluss, der Strom wird also weit
über 20 mA sein.
Und was das Verbinden von Ausgängen angeht: Auf gar keinen Fall :-)
Ich kann mir nur schwer Vorstellen das da nichtmal nen platz für nen
popeligen Transistor ist. Der würde ja schon reichen. Und erspart dir ne
Menge Ärger bzw Probleme.
fdisk schrieb:> Ja ja ja, das stimmt alles. ABER: Dein Lautsprecher ist kein Widerstand,> der bei 3V einfach 20 mA zieht oder so. Der Lautsprecher ist eine> Induktivität. Das kann z.B. dazu führen, dass sich die Spannung deutlich> überhöht - vgl. Spule, deren Strom plötzlich abgeschaltet wird.
Ich würde sagen, dann sind die FPGA-Ausgänge so ziemlich erledigt. Das
halten die Clamp-Dioden nicht. Die vertragen es ja nicht mal, wenn man
sie blöde anfasst.
Ein Kopfhörer müsste gehen. Diese haben um die 30 ... 40 Ohm und könnten
direkt betrieben werden, wenn man Z-Dioden beischaltet.
Falk Brunner schrieb:> Rechne mal die nötige Spannung und Strom aus, damit aus dem Ding> ANSATZWEISE was zu hören ist.
Naja, mit einem 100 Ohm Vorwiderstand ist so ein Lautsprecher schon gut
hörbar...
Das habe ich beim Testaufbau dort beim SAB0600-Nachbau so gemacht:
Beitrag "Re: Warum ist hier weniger los als."fdisk schrieb:> Der Lautsprecher ist eine Induktivität.> Das kann z.B. dazu führen, dass sich die Spannung deutlich> überhöht - vgl. Spule, deren Strom plötzlich abgeschaltet wird.
Soweit die Theorie. In der Praxis wird das allerdings wesentlich weniger
heiß gegessen, als es in der Theorie gekocht wird.
> Und was das Verbinden von Ausgängen angeht: Auf gar keinen Fall :-)
Warum nicht?
Falk Brunner schrieb:>>Jeder Ausgang der FPGAs hat maximal 60 Ohm> Welches FPGA?
Und in welchem Datenblatt sind da Widerstände angegeben?
Idee gehabt schrieb:> Die Lautsprecher haben doch einen Tiefpass,> müsstens also per PWM ansteuerbar sein.
Wo haben die den Tiefpass?
Oder meinst du "sie wirken als Tiefpass"?
Aber ich würde auch sagen: wer Platz für einen Lautsprecher hat, der
findet auch Platz für einen Treiber mit ein paar SMD-Transen...
Vanilla schrieb:> 2) Ein Lautsprecher ist kein ohmscher verbraucher. Seine Induktivität> wird Dir im Einschalt- und Ausschaltmoment ein vielfaches des> Nennstromes abfordern.
Nana, da hat aber jemand nicht aufgepasst ... Wo kommt der Strom vor der
Spannung? ;-)
Fetz schrieb:>> Seine Induktivität wird Dir im Einschalt- und Ausschaltmoment>> ein vielfaches des Nennstromes abfordern.> Nana, da hat aber jemand nicht aufgepasst ... Wo kommt der Strom vor der> Spannung? ;-)
Und warum sollte der Strom an einer Spule beim Ein- und Ausschalten
schlagartig ansteigen? Gerade der Strom versucht doch in einer Spule
möglichst konstant zu bleiben, und sich nicht plötzlich zu ändern...
:-o
fdisk schrieb:> ein Lautsprecher ist kein Widerstand,> der bei 3V einfach 20 mA zieht oder so. Der Lautsprecher ist eine> Induktivität. Das kann z.B. dazu führen, dass sich die Spannung deutlich> überhöht - vgl. Spule, deren Strom plötzlich abgeschaltet wird.
Ein Lautsprecher ist in erster Linie schon ein Widerstand, der
zusätzlich auch noch eine Induktivität hat.
Theoretisch erhöht sich die Spannung, wenn man den Strom plötzlich
abschaltet, aber warum sollte man das tun.
Bei einem PWM-Signal wird man den Ausgang zwischen High- und Low-Pegel
hin und her schalten, da kann der Strom immer fließen und es gibt keine
Spannungsüberhöhung.
Es sollte aber auf jeden Fall ein Kondensator in Reihe geschaltet
werden, um DC-Spannung zu blocken.
Ich denke schon, dass das funktioniert wenn man es richtig macht. Ob es
sinnvoll ist, kann ich nicht beurteilen; da spielen viele Faktoren eine
Rolle.
Johannes E. schrieb:> Theoretisch erhöht sich die Spannung, wenn man den Strom plötzlich> abschaltet, aber warum sollte man das tun.
Damit ein Ton rauskommt muss der Strom im Lautsprecher geändert werden.
Der Trick am Lautsprecher ist ja, dass er Stromänderungen in
Magnetfeldänderungen und dadurch in Bewegung umwandelt. Seine
Hauptaufgabe ist also nicht die Speicherung von Energie, sondern die
Abgabe. Schon aus diesem Grund wird an einen Lautsprecher keine
übermäßige Überspannung auftreten.
Johannes E. schrieb:> Bei einem PWM-Signal wird man den Ausgang zwischen High- und Low-Pegel> hin und her schalten, da kann der Strom immer fließen
Nur eben manchmal in die falsche Richtung...
Nehmen wir mal diese Beschaltung:
1
Vcc
2
---o------------------.
3
| |
4
| _____ =|-- Highside-Fet
5
| \ / |
6
'-------|_|--->----o
7
|
8
=|-- Lowside-Fet
9
|
10
----------------------'
11
GND
Wenn dann der Strom (angeregt durch Einschalten des L-Fets) in
Pfeilrichtung fließt, dann wird er nach dem Abschalten des L-Fets
verkehrt herum durch den P-Fet fließen (wollen/müssen)...
Lothar Miller schrieb:> Fetz schrieb:>>> Seine Induktivität wird Dir im Einschalt- und Ausschaltmoment>>> ein vielfaches des Nennstromes abfordern.>> Nana, da hat aber jemand nicht aufgepasst ... Wo kommt der Strom vor der>> Spannung? ;-)> Und warum sollte der Strom an einer Spule beim Ein- und Ausschalten> schlagartig ansteigen? Gerade der Strom versucht doch in einer Spule> möglichst konstant zu bleiben, und sich nicht plötzlich zu ändern...> :-o
Genau das meinte ich! Vanilla hat Spule und Kondensator verwechselt :)
Johannes E. schrieb:> fdisk schrieb:>> ein Lautsprecher ist kein Widerstand,>> der bei 3V einfach 20 mA zieht oder so. Der Lautsprecher ist eine>> Induktivität. Das kann z.B. dazu führen, dass sich die Spannung deutlich>> überhöht - vgl. Spule, deren Strom plötzlich abgeschaltet wird.>> Ein Lautsprecher ist in erster Linie schon ein Widerstand, der> zusätzlich auch noch eine Induktivität hat.> Theoretisch erhöht sich die Spannung, wenn man den Strom plötzlich> abschaltet, aber warum sollte man das tun.
Weil das bei PWM so ist, dass man das ein- und abschaltet?
> Bei einem PWM-Signal wird man den Ausgang zwischen High- und Low-Pegel> hin und her schalten, da kann der Strom immer fließen und es gibt keine> Spannungsüberhöhung.
Ja, du widersprichst dir selbst ... Schon gemerkt? :)
Bitte beim Thema bleiben... ;-)
Ich habe meinen Lautsprecher zwischen jeweils 4 Pins des FPGAs gehängt,
die dann gegenphasig angesteuert werden. Das bringt dann noch mehr
Spannungshub... :-o
Fetz schrieb:>> Theoretisch erhöht sich die Spannung, wenn man den Strom plötzlich>> abschaltet, aber warum sollte man das tun.>> Weil das bei PWM so ist, dass man das ein- und abschaltet?>>> Bei einem PWM-Signal wird man den Ausgang zwischen High- und Low-Pegel>> hin und her schalten, da kann der Strom immer fließen und es gibt keine>> Spannungsüberhöhung.>> Ja, du widersprichst dir selbst ... Schon gemerkt? :)
Nö, Johannes E. widerstpricht sich nicht selbst, sondern er hat schlicht
Recht. Du verwechselst "an und ausschalten" mit "zwischen High- und
Low-Pegel hin und her schalten".
Beim Ausschalten (High-Z) wird die Quelle hochohmig und die Induktivität
bringt die Spannung auf einen überhöhten Wert, bis der Strom (über eine
Freilaufdiode oder über die ESD-Diode) nachkommt.
Beim hin- und herschalten bleibt der Ausgang immer niederohmig (mal
gegen VCC_IO, mal gegen GND). Der Strom kann immer fließen. Dabei wird
mal das FPGA Energie an den Lautsprecher abgeben, und mal der
Lautsprecher Energie ins FPGA zurückspeisen. So kann man PWM schon auch
nutzen.
Die einzige Spannungsüberhohung, zu der es im Betrieb kommen kann,
entspricht dem Spannungsabfall am RDS_on eines Augangs-MOSFet des FPGA.
Und wenn "Idee gehabt" seine Schaltung richtig dimensioniert (d.h.
genügend IOs parallelschaltet) und ausreichend Pufferkondensatoren an
VCC_IO einbaut, kann diese Spannungsüberhöhung dem FPGA nicht gefährlich
werden.
Gefährlich könnte es höchstens beim Auschalten der Versorgung werden,
wenn die Logikversorgung V_int schneller absinken sollte als die
IO-Versorgung VCC_IO und der Treiber in High-Z geht. Und insgesamt wäre
eine kleine Treiberstufe für den Lautsprecher also schon die netter.
schöne Grüße
Achim S.
Lothar Miller schrieb:> Wenn dann der Strom (angeregt durch Einschalten des L-Fets) in> Pfeilrichtung fließt, dann wird er nach dem Abschalten des L-Fets> verkehrt herum durch den P-Fet fließen (wollen/müssen)...
Und wo ist das Problem? Für einen Mosfet ist es ziemlich egal, in welche
Richtung der Strom fließt. Üblicherweise kann ein Mosfet in der
"falschen" Richtung sogar einen höheren Strom als anders herum.
Johannes E. schrieb:> Für einen Mosfet ist es ziemlich egal, in welche Richtung der Strom fließt.
Stimmt, da war ich zu bipolar unterwegs... :-(
> Üblicherweise kann ein Mosfet in der "falschen" Richtung> sogar einen höheren Strom als anders herum.
Warum?
Lothar Miller schrieb:>> Üblicherweise kann ein Mosfet in der "falschen" Richtung>> sogar einen höheren Strom als anders herum.> Warum?
Eine physikalische Erklärung, warum das so ist, habe ich nicht.
Allerdings kann man zumindest bei diskreten Leistungsmosfets durch
Messung sehen, dass der Rds_on in Rückwärstrichtung niedriger ist als in
Vorwärtsrichtung.
Deshalb kann man da einen (geringfügig) höheren Strom fahren, solange
die Erwärmung des Halbleiters den Strom begrenzt. In der Praxis spielt
das aber keine so große Rolle, da oftmals der Strom durch die
Bond-Drähte oder das Gehäuse begrenzt ist.
Integrierte Mosfet (z.B. im FPGA) sind vermutlich symmetrisch aufgebaut,
da gibt es dann keinen Unterschied zwischen Drain und Source. Deswegen
gilt meine Aussage eher nicht für Mosfets innerhalb eines FPGAs.
Johannes E. schrieb:> Integrierte Mosfet (z.B. im FPGA) sind vermutlich symmetrisch aufgebaut,> da gibt es dann keinen Unterschied zwischen Drain und Source. Deswegen> gilt meine Aussage eher nicht für Mosfets innerhalb eines FPGAs.
Doch, die gilt auch für integrierte MOSFets. Die werden bei gleicher
Ansteuerung ebenfalls niederohmiger, wenn der Strom falsch rum fließt.
Die Erklärung am Beispiel des N-Kanal: bei umgedrehter Stromrichtung
wird die Drainspannung negativ. Da der integrierte MOSFet symmetrisch
ist, tauschen einfach Drain und Source ihre Rolle. Der Strom fließt vom
neuen Drain zur neuen Source, aber die Gate-Source-Spannung ist um den
Spannungsabfall an der Drain-Source-Strecker erhöht (der Transistor also
stärker ausgesteuert).
Beim Leistungs-MOSFet kann man nicht so ohne weiteres von einer
Vertauschung von Drain und Source sprechen. Aber auch dort sinkt RDS_on,
weil das vor allem durch die schmalste Stelle des Kanals bestimmt wird.
Bei richtiger Stromrichtung ist der Kanal beim Drain am schmalsten (oder
er schnürt sogar ganz ab, wenn die Drainspannung zu nahe an die
Gatespannung kommt). Aber wenn der Strom in der "falschen" Richtung
fließt, wird das Drain negativ, die Differenzspannung zwischen Gate und
Drain größer, und der Kanal entsprechend weiter und niederohmiger.
Wie wäre es denn damit? Das reicht für einen kleinen Lautsprecher von
der 32 Ohm Sorte. Spitzenwert sind rund 20mA je FPGA-Ausgang. Bei Sinus
im Mittel keine 10mA. Spitzenleistung 150mW. Der Lautsprecher sollte
mindestens 0,5 W abkönnen. (Und die Ohren >100dB, weil's recht laut
wird).
Wem es zu gefährlich ist, kann an beiden Klemmem des Lausprechers noch 2
Z-Dioden gegen GND und VDD anbringen - gegen das Problem der
leerlaufenden Spulen und der Überspannung, wenn der LS kaputt geht.
Achim S. schrieb:> Nö, Johannes E. widerstpricht sich nicht selbst, sondern er hat schlicht> Recht. Du verwechselst "an und ausschalten" mit "zwischen High- und> Low-Pegel hin und her schalten".
Ich hatte gerade daran gedacht, wieso man dann bei Relais Freilaufdioden
braucht.
Aber das ist ja klar ... Meistens schaltet man einen Pin des Relais mit
einem Transistor gegen Masse. Aber beim Ausschalten wird der Transistor
hochohmig und das macht den Unterschied.
Fetz schrieb:> Aber beim Ausschalten wird der Transistor> hochohmig und das macht den Unterschied.
Dies könnte hier aber auch passieren, wenn die Stufe abgeschaltet wird.
?
Audio Hans schrieb:> Fetz schrieb:>> Aber beim Ausschalten wird der Transistor>> hochohmig und das macht den Unterschied.>> Dies könnte hier aber auch passieren, wenn die Stufe abgeschaltet wird.> ?
Theoretisch schon, die Frage ist, wie hoch die Überspannung dabei
tatsächlich wird. Bei einem 3,3V-FPGA geht der Ausganstreiber nicht
sofort kaputt, wenn da mal kurzzeitig 3,5V anliegen.
Das würde z.B. dann passieren, wenn bei hohem Strom im Lautsprecher die
FPGA-Versorgungsspannung unter den minimalen Wert absinkt und dieser
einen Reset macht; dabei werden alle Pins hochohmig.
Solange die Überspannung nicht viel zu groß ist und dieser Fall relativ
selten auftritt, dann ist die Lebensdauer eine Frage der Häufigkeit, wie
oft so etwas passiert. Die FPGA-Hersteller haben da Tabellen, wie oft
eine bestimmte Überspannung innerhalb der Lebensdauer des FPGAs zulässig
ist.
Ob das funktioniert, kann man eigentlich nur durch Ausprobieren bzw.
Messen herausfinden.
Johannes E. schrieb:> unter den minimalen Wert absinkt und dieser>> einen Reset macht; dabei werden alle Pins hochohmig.
Du meinst, sie gehen kaputt, weil sie hochohmig werden und der Treiber
nichts mehr abführt, sodass die Clamp-dioden zerstört werden?
Oder dass die Versorgung nach unten geht und die Clamp nicht mehr gegen
3.3V abführt, sondern gegen 0 und damit mehr Strom führt?
Eigentlich geht erst mal die Diode kaputt, oder?
Audio Hans schrieb:> Du meinst, sie gehen kaputt, weil sie hochohmig werden und der Treiber> nichts mehr abführt, sodass die Clamp-dioden zerstört werden?
Ich habe nicht gesagt, dass etwas kaputt geht. Nur, dass in diesem Fall
eine Spannungs-Spitze entstehen könnte.
Audio Hans schrieb:> Eigentlich geht erst mal die Diode kaputt, oder?
Bei modernen FPGAs können die Clamp-Dioden üblicherweise per
Konfiguration ein- und ausgeschaltet werden. Im Reset-Zustand, also wenn
der FPGA nicht konfiguriert ist, sind die Dioden üblicherweise
ausgeschaltet. Deswegen ist der Pin tatsächlich hochohmig.
Bei FPGAs mit ständig aktiver Clamp-Diode sollte es kein Problem geben.
Es fließt dann kurzzeitig ein Strom durch die Diode, aber dafür sind die
ja da.
Johannes E. schrieb:> Bei modernen FPGAs können die Clamp-Dioden üblicherweise per> Konfiguration ein- und ausgeschaltet werden.
Bei welchen FPGAs ist das so?
Also selbst, wenn die Clamp-Dioden vorhanden sind, ist der Pin hochohmig
...
Rene B. schrieb:> Ich kann mir nur schwer Vorstellen das da nichtmal nen platz für nen> popeligen Transistor ist. Der würde ja schon reichen. Und erspart dir ne> Menge Ärger bzw Probleme.
Wenn noch Platz für zwei Transistoren ist kann man auch sowas nutzen:
http://www.hanneslux.de/avr/divers/melody/melody02.html
(zweite Schaltung, anstelle eines AVR Pins einfach den FPGA Pin denken).
Fetz schrieb:> Johannes E. schrieb:>> Bei modernen FPGAs können die Clamp-Dioden üblicherweise per>> Konfiguration ein- und ausgeschaltet werden.>> Bei welchen FPGAs ist das so?
z.B. bei den aktuellen Cyclone (II, III, IV, V) von Altera ist das so.
Mit Xilinx-Bausteinen habe ich keine Erfahrung, aber vermutlich machen
die das gleich.
Der Grund dafür ist vermutlich, dass:
1. die Pins auch bei einer kleineren IO-Spannung (z.B. 2,5) trotzdem
3,3V-tolerant sein sollen.
2. dadurch die Einschalt-Reihenfolge für die Versorgunsspannungen
unkritisch ist.
> Also selbst, wenn die Clamp-Dioden vorhanden sind, ist der Pin hochohmig> ...
Ja, wenn die Dioden nicht aktiviert sind, dann ist das so.
Johannes E. schrieb:> Der Grund dafür ist vermutlich, dass:>> 1. die Pins auch bei einer kleineren IO-Spannung (z.B. 2,5) trotzdem>> 3,3V-tolerant sein sollen.
Warum werden sie dadurch toleranter? Die getriebene Spannung erhöht sich
dadurch nicht, es sind 2.5V und GND.
Meinst Du den Z-Fall, wenn der Eingang der Folgestufe gepullt ist?
Läubi .. schrieb:> Wenn noch Platz für zwei Transistoren ist kann man auch sowas nutzen:
Das ist eine Gegentaktstufe, wo ist da der clou?
Ich würde da nebenbei gesprochen noch einen R vor die Basen schalten mit
einem C darüber.
Andreas F. schrieb:> Warum werden sie dadurch toleranter? Die getriebene Spannung erhöht sich> dadurch nicht, es sind 2.5V und GND.>> Meinst Du den Z-Fall
2,5V Ausgänge treiben normalerweise ausreichend hohe High-Pegel, damit
3,3V Bausteine diesen richtig erkennen (wenn auch das Interface Timing
darunter leiden kann). Aber wenn man mit 3,3V Ausgängen auf 2,5V
Eingänge geht, würde die obere Clamp-Diode leiten. Deshalb kann oft die
obere Clamp-Diode deaktiviert werden.
Johannes E. schrieb:> Mit Xilinx-Bausteinen habe ich keine Erfahrung, aber vermutlich machen> die das gleich.
Dem ist so, siehe z.B.
http://www.xilinx.com/support/answers/9048.htm
Achim S. schrieb:> Aber wenn man mit 3,3V Ausgängen auf 2,5V> Eingänge geht, würde die obere Clamp-Diode leiten. Deshalb kann oft die> obere Clamp-Diode deaktiviert werden.
ok, wie verträgt sich das aber mit der Forderung das Eingangssignale
nicht mehr als VDD+0,4V betragen dürfen? Die ist ja dann faktisch ausser
Kraft, vermutlich, weil sie genau von den Clamp-Dioden kommt. (?)
Andreas F. schrieb:> ok, wie verträgt sich das aber mit der Forderung das Eingangssignale> nicht mehr als VDD+0,4V betragen dürfen? Die ist ja dann faktisch ausser> Kraft, vermutlich, weil sie genau von den Clamp-Dioden kommt. (?)
Sehe ich auch so: wenn die obere Clamp-Diode inaktiv ist, darf die
Eingangsspannung höher werden. Dann muss man aber selbst sicherstellen,
dass die Spannung nicht auf Werte ansteigt, bei denen das Gateoxid
leidet.
Andreas F. schrieb:> Das ist eine Gegentaktstufe, wo ist da der clou?
"der Clou" ist, das dies der Forderung des TE (Lautsprecher an einem
FPGA pin) am nächstem kommt, den Pin nicht überlastet ohne spezielle
Tricks und für die Einfachheit des Aufbaus erstaunlich gut funktioniert
und gegenüber seiner Ursprünglichen Idee 7 I/O Pins spart.
Sollte auch nur als Denkanstoß dienen, da ich die Schaltung schon einmal
eingesetzt habe und eigentlich ganz zufrieden war.
Läubi .. schrieb:> 7 I/O Pins spart.
Allerdings geht bei der Wegnahme der 7 Pins auch Auflösung verloren. Mit
4 (oder noch mehr) Pins lässt sich eine mehrstufige PWM aufbauen. Im
Gegentaktbetrieb sind es hier z.B. 30 Stufen statt nur einer beim echten
PWM. Das macht entsprechend mehr Bandbreite.
Für Audio ist das schon ein grosser Unterschied.
Wollte man dies umgekehrt nutzen (passiver DAC mit R2R), müsste man die
Doppeltransistorstufe schon linear bauen und hätte einige Bauteile mehr.
Jürgen S. schrieb:> Für Audio ist das schon ein grosser Unterschied.
Klar, aber der TE wollte die parallel schalten um den Strom zu
erhöhen, dann sollte schon das selbe Signal auf alle I/Os gehen ;-)
Jürgen S. schrieb:> Wie wäre es denn damit?
Das schöne an diesem Vorschlag ist, dass die 33 Ohm ziemlich genau dem
Ausgangswiderstand des Cyclone IV entsprechen; das habe ich zufällig vor
kurzem mal ausgemessen.
Diese Widerstände muss man also gar nicht einbauen, die bekomment man
quasi geschenkt. Dafür sind die 8 Induktivitäten relativ groß, für 47 µH
muss man schon mit einem 0603-Geäuse rechnen.
Wenn es nur darum geht, mit möglichst geringem Platzbedarf irgendwie
einen Lautsprecher anzuschließen, dann erscheint mit diese Lösung aber
zu aufwändig. Da würde ich auch eher alle Pis direkt parallel betreiben.
Die Lösung mit der separaten Treiberstude ist dann sinnvoll, wenn
entweder der Strom der FPGA-Pins nicht reicht oder wenn nicht genügend
FPGA-Pins für die Parallelschaltung frei sind bzw. wenn man die freien
Pins für andere Aufgaben verwenden möchte.
Johannes E. schrieb:> Das schöne an diesem Vorschlag ist, dass die 33 Ohm ziemlich genau dem> Ausgangswiderstand des Cyclone IV entsprechen;
Nicht wahr? Allerdings rühren die 33 Ohm genau daher: Es sind die
Innenwiderstände der Treiber und sie stammen aus dem Datenblatt. Danke,
dass Du sie nachgemessen hast. Ich habe einen gemittelten Wert genommen,
da der Rin bei "0" einen anderen Wert hat, als bei "1".
Johannes E. schrieb:> Dafür sind die 8 Induktivitäten relativ groß
Ok, die könnte man noch etwas reduzieren, wenn man einen schwächeren LS
einsetzt und den C verändert.
Johannes E. schrieb:> Da würde ich auch eher alle Pis direkt parallel betreiben
Dann verliert man wiederum die Chance auf die PWM-Option als Passiv-DA -
und die Ausgänge sind wieder etwas ungeschützter. Die Drosseln haben ja
auch einen ohmschen Anteil.
Läubi .. schrieb:> Klar, aber der TE wollte die parallel schalten
Schon richtig, aber man darf doch Ideen aufgreifen, um sie zu
verbessern.;-)
Eigentlich wird es Zeit, dass man mal anfängt, für solche Fälle einfache
Wandler in die FPGAs einzubauen. Ein R2R-Register, das aus den
Delay-Infos der Ausgänge getrieben wird, müsste - statt des digi buffers
- über einen Transisor nach draussen geleitet werden. Man könnte sogar
den Inputbuffer als Rückkopplung nehmen, um den output buffer als
Verstärker ins Spiel zu bringen. Obwohl das ein digitaler Treiber ist,
funktioniert das für Umschaltfrequenzen < Einschwingzeit. Einige MHz
müssten damit perfekt zu machen sein. Dann ein einfaches RC-Filter drin
und einen linearen AMP.
Jürgen S. schrieb:>> Das schöne an diesem Vorschlag ist, dass die 33 Ohm ziemlich genau dem>> Ausgangswiderstand des Cyclone IV entsprechen;>> Nicht wahr? Allerdings rühren die 33 Ohm genau daher: Es sind die> Innenwiderstände der Treiber und sie stammen aus dem Datenblatt. Danke,> dass Du sie nachgemessen hast. Ich habe einen gemittelten Wert genommen,> da der Rin bei "0" einen anderen Wert hat, als bei "1".
Steht das tatsächlich im Datenblatt; wo hast du das denn gefunden? Da
hätte ich mir die Messung sparen können.
Jürgen S. schrieb:> Eigentlich wird es Zeit, dass man mal anfängt, für solche Fälle einfache> Wandler in die FPGAs einzubauen.
Da gibt es schon Ansätze, allerdings in eine etwas andere Richtung:
Ein Delta-Sigma-Modulator kann relativ einfach in einem FPGA
implementiert werden, so dass extern nur noch ein RC-Tiefpass 1. Ordnung
benötigt wird. Man ersetzt dabei möglichst viel der analogen
Funktionalität durch digitale Funktionen, die sowieso schon im FPGA
enthalten sind.
z.B.:
http://www.f07.fh-koeln.de/imperia/md/content/personen/krah_jens/pcim_2006_sdr.pdf,
Seite 4 rechts oben
http://www.missinglinkelectronics.com/files/papers/MLE-TB20110426.pdf
Johannes E. schrieb:> Steht das tatsächlich im Datenblatt;
Das steht bei den Ausgangskennlinien, ja.
Johannes E. schrieb:> Da gibt es schon Ansätze,
Jetzt habe ich erst einmal etwas gebraucht, um die Dokumente zu
studieren. Besonders das erste ist sehr interessant, denn es beinhaltet
Überlegungen, die auch ich bereits angestellt und auch realisiert habe
und zwar zu derselben Zeit zu exakt dem selben Thema: Motor Control!
Diese flossen seinerzeit in ein Patent und ein Gerät ein. Nur wird die
Sigma-Delta-Geschichte teilweise extern gemacht und ist selbststeuernd -
im FPGA wird nur ausgewertet. Ich mache das übrigens im Spartan 3, statt
in einem Stratix, d.h. man kann es auch industriell fertigen.
Darüber hinaus lässt sich übrigens noch Weiteres treiben, um den
Datenstrom zu optimieren- genauer: Ihn auf den nachgeschalteten Filter
anzupassen. Siehe digital pre distorsion und das erwähnte Noise Shaping.
Allerdings ist das noch der simpelste Punkt dabei, eine PWM per
Sigma-Delta zu generieren und sie zu regeln. Das ist in der Industrie ja
längst eingeführt und hier im Forum auch schon mehrfach breit
diskutiert.
Ich will das aber nicht weiter vertiefen, denn letztlich läuft das alles
wieder auf einen 1-Bit Ausgang und eine Art von PWM hinaus. Daher finde
ich auch die Darstellung im Altera-Dokument für komplett verfehlt, von
einem DAC zu sprechen, denn im FPGA wird nichts analog gewandelt. Es
bleibt ein Digitalsignal.
Meine Überlegung im Vorbeitrag geht dahin, den ladder-Filter (das
R2R-Netzwerk) direkt im FPGA zu implementieren, um einen echten analogen
Ausgang zu haben. Es ist praktisch ein Flash-Wandler mit reduzierter
Qualität. Ob das auf breiter Fläche Sinn macht, sei mal dahin gestellt,
allerdings hatte ich bereits schon zweimal solch einen Anwendungsfall
für genau diese Funktion:
Massenweise analoge Ausgänge mit geringen Qualitätsanforderungen.
Einmal wurde es dann mit DACs gelöst, einmal mit dem IO-ADC-DAC, den ich
hier beschreibe:
Analog-IO mit digitalen Bausteinen: Kombinierter 2pin DAC ADC
Für einen FPGA als klassischen Digitalbaustein ist eine Analogkomponente
natürlich nicht das Angezeigte, trotzdem erwarte ich, dass das mal
kommt. Wobei: Eigentlich gab es ja schon vor 15 Jahren Ansätze,
programmierbare Analogbausteine rauszubringen, die haben sich aber nie
richtig etabliert, wie mir scheint.
Jürgen S. schrieb:> Ich will das aber nicht weiter vertiefen, denn letztlich läuft das alles> wieder auf einen 1-Bit Ausgang und eine Art von PWM hinaus. Daher finde> ich auch die Darstellung im Altera-Dokument für komplett verfehlt, von> einem DAC zu sprechen, denn im FPGA wird nichts analog gewandelt. Es> bleibt ein Digitalsignal.
Klar, ein FPGA ist eben ein digialer Baustein. Aber entscheidend ist
doch, was hinten, also nach dem LC-Filter, raus kommt. Der Vorteil im
Vergleich zum "herkömlichen" PWM-Verfahren ist, dass der Ausgang mit
einer wesentlich höheren Frequenz taktet als bei PWM und trotzdem eine
hohe Auflösung erreicht wird.
Jürgen S. schrieb:> Meine Überlegung im Vorbeitrag geht dahin, den ladder-Filter (das> R2R-Netzwerk) direkt im FPGA zu implementieren, um einen echten analogen> Ausgang zu haben. Es ist praktisch ein Flash-Wandler mit reduzierter> Qualität.
Das macht den FPGA auf jeden Fall teuerer und diese Mehrkosten müssten
dann von allen bezahlt werden, auch von denen, die so etwas nicht
benötigen. Für alle, die "mit reduzierter Qualität" nicht arbeiten
können/wollen wäre es auch eher nutzlos.
Deshalb halte ich die Delta-Sigma-Lösung für gar nicht so schlecht,
damit hat man eine sehr gute Linearität, die man mit deiner "analogen"
Lösung vermutlich nicht erreichen wird.
Es gibt auch für die umgekehrte Richtung eine Application-Note, wie man
die Komparatoren der LVDS-Eingänge für einen Delta-Sigma-Modulator
verwenden kann. Damit kann man sehr preiswerte A/D-Wandler realisieren,
die als externe beschaltung auch nur ein RC-Glied benötigen. Das größte
Problem dabei sind die Komparatoren, weil diese nicht sehr genau sind,
dadurch ist die Linearität nicht besonders gut.
Ich erwarte nicht, dass Altera/Xilinx in naher Zukunft A/D oder
D/A-Wandler in ihre Bausteine integrieren, weil die Anforderungen der
Anwender zu unterschiedlich sind.
Aber vielleicht werden die LVDS-Komparatoren in Zukunft genauer, so dass
man irgendwann durch eine minimale Analogbeschaltung auch A/D-Wandler
mit >= 12 Bit bei guter Genauigkeit/Linearität realisieren kann.
Johannes E. schrieb:> dass der Ausgang mit> einer wesentlich höheren Frequenz taktet als bei PWM
Auf welche Frequenz beziehst du Dich?
Johannes E. schrieb:> Das macht den FPGA auf jeden Fall teuerer und diese Mehrkosten müssten> dann von allen bezahlt werden, auch von denen, die so etwas nicht> benötigen.
Das Problem hast Du immer. Nimm mal konkret die IO Delays: In jedem
besseren FPGA drin, in kaum einer Schaltung benötigt. Ich sehe bei einem
FPGA keinen Unterschied zum uC - die haben auxh oft AD-Wandler drin und
zwar komplette.
Johannes E. schrieb:> nur ein RC-Glied benötigen
Bei einem vernünftigen tau für typische Dämpfungen hast Du immer einen
kräftigen Widerstand drin und der setzt das Signal in der Leistung
herab. Mit einem integrierten R2R und buffer feedback hätte man einen
niederohmigen Ausgang, den man nur schwach filtern müsste, als mit
geringem R und überschaubarer kapazitiver Belastung. Ausserdem hätte man
auch die Option einer PAM zur Datenübertragung. Das wird in einem
Systemen gemacht, um mit geringen Frequenzen grössere Datenmengen zu
übertragen - bei weniger EMV.
Johannes E. schrieb:> Komparatoren der LVDS-Eingänge für einen Delta-Sigma-Modulator> verwenden kann.
Dann muss man aber die Assymmetrie der Schaltschwelle berücksichtigen
und rausrechnen. Das geht, führt aber nach meinen Erfahrungen zu so viel
mehr Schaltaufwand, dass es selten lohnt. Nicht selten sind ein paar
analoge Bauteile viel einfacher und billiger - man muss ja auch die
Kosten für die Chipfläche rechnen.
Mirco schrieb:> Die Serie 7 FPGAs haben doch jetzt angeblich alle AD-Wandler drin, oder> nicht?
Das ist Spielzeug. Wenn ich ADCs am FPGA brauche, dann mit 50 bis 150
Msps, je nach Basisbandbreite. Und zwei Kanäle sind auch das Minimum.
Das was Xilinx da momentan einbaut, kann auch ein Mikrocontroller
verarbeiten. Und auch genau für solche Anwendungen ist es gedacht:
Spannungs und Temperaturüberwachung.
Duke
Das stimmt, wobei das Thema Spannungsüberwchung beim FPGA kein zu
unterschätzendes ist. Frage mich nur, inwieweit das FPGA sich selber,
bzw seine eigene Spannung überwachen kann. Sobald sich dort was
relevantes tut, kriegt der FPGA es mit, aber dann geht er wohl auch auf
Tauchstation!
Zurück zum Thema:
>Lautsprecher an FPGAs direkt betreiben
Durch die R-outs hat man immer Verluste. Will man die gering halten,
braucht man hohe Ausgangswiderstände von einigen huntert Ohm als Last.
Entsprechend wenig ist da rauszuholen.
Anpassung darf man hier kein betreiben, da der Frequenzgang des LS nicht
liniear ist und die Impedanz für 1kHz gilt.
Andreas F. schrieb:> Das stimmt, wobei das Thema Spannungsüberwchung beim FPGA kein zu> unterschätzendes ist. Frage mich nur, inwieweit das FPGA sich selber,> bzw seine eigene Spannung überwachen kann. Sobald sich dort was> relevantes tut, kriegt der FPGA es mit, aber dann geht er wohl auch auf> Tauchstation!
Wers wissen will:
http://www.xilinx.com/support/documentation/user_guides/ug192.pdf
Läubi .. schrieb:> Jürgen S. schrieb:>> Für Audio ist das schon ein grosser Unterschied.>> Klar, aber der TE wollte die parallel schalten um den Strom zu> erhöhen, dann sollte schon das selbe Signal auf alle I/Os gehen ;-)
Richtig, als reine Stromerweiterung für PWM ist es natürlich immer
dasselbe Signal. Ich war da jetzt schon einen Schritt weiter beim R2R.
Dafür müssten die Rs gegenüber der o.g. Zeichung aber angepasst werden.
Die Induktivitäten dienen ja nur dem Ausgleich der potentiellen
Querströme wegen des leicht inkoheränten Schaltens.
Man könnte mit dr bestehenen Schaltung aber einen gestuften Sinus
draufgeben, indem man erst 2, dann 3 und dann kurz 4 Zweige nutzt, wer
das braucht. Die anderen wären dann nicht gegenphasig sondern passiv =
hochohmig.
Sicherheitshalber sollte man in jedem Fall aber Schutzdioden vorsehen.
Die Clampdioden reichen bei der Leistung nicht aus.
Schon mal drüber nachgedacht, dass man Lautsprecher auch leicht
ruinieren kann, wenn man steilflankig und ohne Filter draufgeht? Bzw
sich ein Schwingkreis aufbaut, mit den Spulen, die ihr da einsetzt?