Forum: FPGA, VHDL & Co. Lautsprecher an FPGAs direkt betreiben


von Idee gehabt (Gast)


Lesenswert?

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?

von René B. (reneb)


Lesenswert?

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.

von Vanilla (Gast)


Lesenswert?

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

von Sigi (Gast)


Lesenswert?

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.

von Ulrich S. (voodoofrei)


Lesenswert?

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!

von Idee gehabt (Gast)


Lesenswert?

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,

von Ulrich S. (voodoofrei)


Lesenswert?

Man kann auch versuchen mit einer Mignonzelle ein E-Auto anzutreiben.

Viel Spaß mit deinem Projekt!

von JBB (Gast)


Lesenswert?

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.

von Falk B. (falk)


Lesenswert?

@  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 ;-)

von fdisk (Gast)


Lesenswert?

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 :-)

von Rene B. (themason) Benutzerseite


Lesenswert?

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.

von Nobbi (Gast)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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...

von Fetz (Gast)


Lesenswert?

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? ;-)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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

von Johannes E. (cpt_nemo)


Lesenswert?

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.

von Klaus (Gast)


Lesenswert?


von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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)...

von Fetz (Gast)


Lesenswert?

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 :)

von Fetz (Gast)


Lesenswert?

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? :)

von rackandboneman (Gast)


Lesenswert?

Man könnte ja in Röhrenmanier einen Ausgangstransformator 
dazwischenschalten :)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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

von Achim S. (Gast)


Lesenswert?

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.

von Johannes E. (cpt_nemo)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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?

von Johannes E. (cpt_nemo)


Lesenswert?

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.

von Achim S. (Gast)


Lesenswert?

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.

von Johannes E. (cpt_nemo)


Lesenswert?

@Achim: Danke für die Erklärung, wieder etwas gelernt.

von Jürgen S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

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.

von Fetz (Gast)


Lesenswert?

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.

von Audio Hans (Gast)


Lesenswert?

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.
?

von Johannes E. (cpt_nemo)


Lesenswert?

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.

von Audio Hans (Gast)


Lesenswert?

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?

von Johannes E. (cpt_nemo)


Lesenswert?

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.

von Fetz (Gast)


Lesenswert?

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 
...

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

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).

von Johannes E. (cpt_nemo)


Lesenswert?

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.

von A. F. (chefdesigner)


Lesenswert?

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.

von Achim S. (Gast)


Lesenswert?

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

von A. F. (chefdesigner)


Lesenswert?

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. (?)

von Achim S. (Gast)


Lesenswert?

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.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

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.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

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.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

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 ;-)

von Johannes E. (cpt_nemo)


Lesenswert?

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.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

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.

von Johannes E. (cpt_nemo)


Lesenswert?

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

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

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.

von Johannes E. (cpt_nemo)


Lesenswert?

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.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

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.

von Mirco (Gast)


Lesenswert?

Johannes E. schrieb:
> Ich erwarte nicht, dass Altera/Xilinx in naher Zukunft A/D oder
>
> D/A-Wandler in ihre Bausteine integrieren

Die Serie 7 FPGAs haben doch jetzt angeblich alle AD-Wandler drin, oder 
nicht?

http://www.xilinx.com/products/technology/analog-mixed-signal/index.htm

von Duke Scarring (Gast)


Lesenswert?

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

von A. F. (chefdesigner)


Lesenswert?

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.

von Sunny Sandman (Gast)


Lesenswert?

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

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

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.

von Boschi (Gast)


Lesenswert?

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?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.