Forum: Mikrocontroller und Digitale Elektronik WS2812B 800KHz PWM mit Transistor Pegelwandler


von Felix N. (felix_n888)


Angehängte Dateien:

Lesenswert?

Moin,

Ich möchte für mein Projekt ein paar WS2812B LEDs einsetzten jedoch gibt 
es da ein paar Probleme bei der Pegelwandlung von 3,3V auf 5V. Mein 
STM32 erzeugt mit Timer3 ein 800KHz PWM Signal welches ich dann später 
via DMA rausschicke, damit das Timing möglichst genau eingehalten wird.

Da der STM32 mit 3,3V läuft und die LED mit 5,1V gespeist wird würde ein 
3,3V Signal nicht sicher als "HIGH" erkannt werden(Offiziell vom 
Datenblatt wären 3,57V bei 5,1V gefordert, mit 3,3V geht es manchmal und 
manchmal nicht das ist mir zu unsicher) daher musste ein Pegelwandler 
von 3,3V auf 5V her.

Am einfachsten wäre es wahrscheinlich gewesen einen einfachen 
Spannungspuffer IC zunehmen und den mit +5V zu versorgen, im SOT23-5 
Gehäuse oder so. Darüber hatte ich aber nicht nachgedacht und ich hatte 
alles andere an Bauteilen zuhause gehabt daher habe ich für dieses 
Projekt nichts bestellt bzw. hätte ich auch nicht genug zusammen 
bekommen um die Versandkosten ertragbar zu machen.

Daher habe ich ein Pegelwandler aus einem NPN Transistor(BC850) und 
einem N-Kanal MOSFET(TSM2302) aufgebaut. Mit Hilfe von LTSpice habe ich 
die Schaltung bei erstellen des Schaltplans simuliert bei 800KHz da war 
zwar die Anstiegszeit vom FET nicht so steil aber sonst hat das so 
funktioniert wie ich es mir vorgestellt habe. Nur in der Realität 
funktioniert das ganz leider nicht so wirklich.

Bei einem PWM Signal von 300KHz und 50% Tastverhältnis liegt das 
Tastverhältnis vom MOSFET also dem "WS2821B" Eingang schon bei 91%. Also 
alles darüber bleibt das Signal konstant "HIGH". Die Schaltung hatte ich 
schon bei einem Projekt einsetzt da lag die Frequenz maximal bei 100KHz. 
Da hat alles ganz gut funktioniert.

Ich habe mal ein paar Bilder angehängt vom Schaltplan und Oszi und so.

Kann man das ganze noch irgendwie retten durch andere 
Transistoren/FET/Widerstände oder klappt das bei 800KHz so wie das vor 
hatte nicht?

Mfg

von Chris K (Gast)


Lesenswert?

Invertier das PWM Signal und nutze den Kondensator als open collector. 
Dann kannst du auf den FET verzichten.

von c-hater (Gast)


Lesenswert?

Felix N. schrieb:

> Kann man das ganze noch irgendwie retten durch andere
> Transistoren/FET/Widerstände

Nur durch andere Bauelemente ist das nicht zu retten. Mindestens ein 
weiterer Widerstand muss hinzukommen (nämlich von der Basis von Q1 nach 
Masse). Und natürlich muss erheblich umdimensioniert werden.

Wie kommt man auf so eine Schaltung? 5 Bauelemente mit insgesamt 12 
Lötstellen. Da wäre es ja in fast jeder Hinsicht noch billiger gewesen, 
einfach einen Tiny10 oder sowas zu verwenden. 1 Bauelement mit sechs 
Lötstellen.

Am Sinnvollsten wäre es aber natürlich gewesen, einfach einen 
Levelshifter zu verwenden, der genau für diesen Zweck gemacht wurde. Ist 
ja nicht so, dass das ein völlig neues Problem wäre...

von Felix N. (felix_n888)


Angehängte Dateien:

Lesenswert?

Chris K schrieb:
> Invertier das PWM Signal und nutze den Kondensator als open collector.

Hallo,
Das Invertieren sollte kein Problem sein, so wie ich das im Datenblatt 
des STM32 verstehe gibt es dafür PWM Mode 1 bzw. Mode 2, sonst kann ich 
das auch über den Dutycycle machen.

Mit "Kondensator" meinst du den Transistor?

Chris K schrieb:
> Dann kannst du auf den FET verzichten.

Meinst du so wie im Anhang?

Mfg

von Stefan F. (Gast)


Angehängte Dateien:

Lesenswert?

Felix N. schrieb:
> Am einfachsten wäre es wahrscheinlich gewesen einen einfachen
> Spannungspuffer IC zunehmen

Nee, am einfachsten wäre gewesen, einen 5V toleranten Ausgang zu 
verwenden und durch einen Widerstand auf 5V hoch zu ziehen.

Aber bei so hohen Frequenzen ist die Idee vermutlich eben so ungeeignet, 
wie deine. Das Problem sind die Kapazitäten (in der Schaltung und im 
Kabel) in Kombination mit den Pull-Up Widerständen. Dies ergibt die 
langsamen Ladevorgänge von LOW nach HIGH.

Du brauchst eine Push-Pull Stufe am Ausgang, und verwende nicht so einen 
MOSFET mit hunderten pF Kapazität. Bipolar geht das besser.

von Andreas W. (andreasw) Benutzerseite


Lesenswert?

Aktuelle WS2812B (ab Ende 2018) benötigen keinen Pegelwandler, da der 
Highpegel ab 2,7V los geht.
https://learn.watterott.com/kb/ws281x/WS2812B_v5.pdf

von Chris K. (Gast)


Lesenswert?

Äh, ja sorry vertippt. Der FET invertiert ja nur nochmal das Signal vom 
Transistor, welcher seinerseits das Signal invertiert. Also FET raus und 
Transistor invertiert ansteuern.

von Felix N. (felix_n888)


Angehängte Dateien:

Lesenswert?

c-hater schrieb:
> Nur durch andere Bauelemente ist das nicht zu retten. Mindestens ein
> weiterer Widerstand muss hinzukommen (nämlich von der Basis von Q1 nach
> Masse).

Hi,
Das wäre in der Tat nicht das Problem da eine Groundplane dort vorhanden 
ist.

c-hater schrieb:
> Am Sinnvollsten wäre es aber natürlich gewesen, einfach einen
> Levelshifter zu verwenden, der genau für diesen Zweck gemacht wurde. Ist
> ja nicht so, dass das ein völlig neues Problem wäre...

Ja ich weiß und ich habe oben im Eröffungsbeitrag ja auch geschrieben 
das mir das während ich den Schaltplan erstellt habe nicht in den Kopf 
gekommen ist warum auch immer kann ich jetzt auch nicht sagen.

c-hater schrieb:
> Wie kommt man auf so eine Schaltung? 5 Bauelemente mit insgesamt 12
> Lötstellen.

Gute Frage, weiß ich auch nicht mehr genau. Die Schaltplan Erstellung 
liegt schon eine längere Zeit zurück da die Platine lange Lieferzeit 
hatte. Ich habe halt damals geschaut was ich an Bauteilen von früheren 
Projekten noch da hatte und da muss mir das wohl in den Sinn gekommen 
sein.

Stefan ⛄ F. schrieb:
> Du brauchst eine Push-Pull Stufe am Ausgang, und verwende nicht so einen
> MOSFET mit hunderten pF Kapazität.

Ja okay. Das Problem ist halt das die Schaltung bereits auf einer 
Platine ist. Daher lassen sich neue Bauteile natürlich nicht mehr so 
leicht dazu bauen. Deshalb ja die Frage ob man das noch "retten" kann.

Stefan ⛄ F. schrieb:
> Das Problem sind die Kapazitäten

Ja sowas in der Art hatte ich mir schon gedacht das es auf den MOSFET 
selbst zurück zuführen ist. Würde es was bringen die Schaltung umzubauen 
wie es @Chris K vorgeschlagen hat. Sprich ein einfachen Inverter mit 
einem Transistor zu haben? Und dann das PWM Signal invertiert 
rauszugeben?

Mfg

von Stefan F. (Gast)


Lesenswert?

Andreas W. schrieb:
> Aktuelle WS2812B (ab Ende 2018) benötigen keinen Pegelwandler, da der
> Highpegel ab 2,7V los geht.

Insofern besteht eine praktikable Lösung vielleicht darin, einfach nur 
die erste LED auszutauschen.

Felix N. schrieb:
> Würde es was bringen die Schaltung umzubauen
> wie es @Chris K vorgeschlagen hat. Sprich ein einfachen Inverter mit
> einem Transistor zu haben?

Vermutlich nicht, denn dann hast du immer noch einen Widerstand im 
Ausgang, der die Leitungskapazität umladen muss. Wir reden vermutlich 
von weit mehr als 30cm, richtig?

Weil wenn nicht, dann kannst du doch direkt einen 5V toleranten Ausgang 
mit Pull-Up Widerstand benutzen. Mache den Widerstand nur so klein wie 
möglich (entsprechend dem maximalen Laststrom den dein µC verträgt).

von Felix N. (felix_n888)


Lesenswert?

Stefan ⛄ F. schrieb:
> Insofern besteht eine praktikable Lösung vielleicht darin, einfach nur
> die erste LED auszutauschen.

Oh den Beitrag von Andreas W. hatte ich gar nicht gesehen. Das wäre 
natürlich die einfachste Möglichkeit.

Die LEDs selbst habe ich vor etwa gut 3-4 Monaten gekauft. Nur welche 
Revision das nun genau ist weiß ich nicht drauf steht "WS2812B LED 
Strip. SKU: WS2812B1M144LB30" es ist ein 1 Meter langer Streifen mit 144 
LED/m.

Ich hatte das

Stefan ⛄ F. schrieb:
> Wir reden vermutlich
> von weit mehr als 30cm, richtig?

Ist damit die Leitung vom Mikrocontroller zum Basiswiderstand gemeint?

Stefan ⛄ F. schrieb:
> Weil wenn nicht, dann kannst du doch direkt einen 5V toleranten Ausgang
> mit Pull-Up Widerstand benutzen.

Schwierig am STM32F446RE sind fast alle I/Os benutzt.

Mfg

von Wolfgang (Gast)


Lesenswert?

Mich wundert, dass noch niemand einen 74HCT1G125 als Pegelwandler 
vorgeschlagen hat.
Oder ist das zu einfach?

von c-hater (Gast)


Lesenswert?

Wolfgang schrieb:

> Mich wundert, dass noch niemand einen 74HCT1G125 als Pegelwandler
> vorgeschlagen hat.
> Oder ist das zu einfach?

Natürlich ist das einfach. Bloß halt nicht zum Problem passend. Wer 
lesen kann, ist klar im Vorteil. Der erkennt problemlos, dass das Design 
zwar völlige Scheiße ist, aber "steht" und nun nachgebessert werden 
soll, um es irgendwie doch noch zum Funktionieren zu bringen.

von Stefan F. (Gast)


Lesenswert?

Felix N. schrieb:
>> Wir reden vermutlich von weit mehr als 30cm, richtig?
> Ist damit die Leitung vom Mikrocontroller zum Basiswiderstand gemeint?

Die Leitung von deiner Platine zur ersten LED.

von Stefan F. (Gast)


Lesenswert?

Wolfgang schrieb:
> Mich wundert, dass noch niemand einen 74HCT1G125 als Pegelwandler
> vorgeschlagen hat.

Weil der TO das in seinem Eröffnungsbeitrag erwägt und ausgeschlossen 
hat.

von Mark S. (voltwide)


Lesenswert?

Wieso braucht man für LEDs eine PWM-Taktfrequenz von mehreren 100kHz?

von Felix N. (felix_n888)


Angehängte Dateien:

Lesenswert?

c-hater schrieb:
> Der erkennt problemlos, dass das Design
> zwar völlige Scheiße ist, aber "steht" und nun nachgebessert werden
> soll, um es irgendwie doch noch zum Funktionieren zu bringen.

Jo so in der Richtung irgendwie.

Wolfgang schrieb:
> Mich wundert, dass noch niemand einen 74HCT1G125 als Pegelwandler
> vorgeschlagen hat.
> Oder ist das zu einfach?

Ich habe mich selber heute schonmal bei reichelt ein wenig umgeschaut 
dort gibt es zB. den 74LVC1G125DBV welcher ein Single Puffer ist. Und 16 
Cent kostet es gab dort auch einen der 8 Cent kostet nur da ist dann 
auch gleich wieder das Problem bis ich genug zusammen habe um die 5,60 € 
Versandkosten ertragbar zu machen(Mein eigener Mindestbestellwert liegt 
bei 56 Euro) dauert es noch.

Stefan ⛄ F. schrieb:
> Die Leitung von deiner Platine zur ersten LED.

Pfff. Janein also ich kann es noch nicht genau sagen. Auf der Platine 
werden es so um die 6-7 Zentimeter sein habe die Platine mal angehängt 
und die entsprechende Leiterbahn hervorgeheben mit Eagle. Wie das später 
im Gehäuse aussieht weiß ich noch nicht der Anschluss befindet sich oben 
rechtes auf der Platine dort wird der LED Streifen auch platziert wird. 
Schätze jetzt das ganze mal so auf 18-25cm länge insgesamt.

Ich habe jetzt gerade mal ein bisschen ausprobiert und habe mal eben 
schnell den Timer3 im STM32 als PWM Generator konfiguriert mit 
800KHz(Gab da irgendwie Probleme der Timer müsste mit 90MHz laufen weil 
der APB1 Bus mit 45MHz läuft und laut Datenblatt die Timer wenn 
Prescaler nicht 1 ist mal 2 genommen werden lief aber trotzdem nur auf 
45MHz. Naja schaue ich mir später an) und per Interrupt und while 
Schleife die erste LED auf Grün geschaltet.

Habe mal Bilder vom Logikanalyzer angehängt und von der LED.

Bei etwa 10 Power-Ups hat die LED einmal nicht reagiert und blieb aus. 
Weiß jetzt nicht ob das am Timer lag oder ob die 3,3V nicht als HIGH 
erkannt wurden. Genauso wenig weiß ich welche Revision von RGB-LED das 
ist.

Mark S. schrieb:
> Wieso braucht man für LEDs eine PWM-Taktfrequenz von mehreren 100kHz?

Weil die WS2812B eine Digital Adressierbare LED ist, die wird mit 
digitalen Signal angesteuert.

Mfg

: Bearbeitet durch User
von Theo K. (Gast)


Lesenswert?

Wie sieht das bezüglich EMV aus? 800 kHz PWM mit relativ steilen 
Flanken, ist das so üblich?

von Chris K. (Gast)


Lesenswert?

Der Pegelwandler per open collector Transistor funktioniert. Hab ich 
selber an einigen ESP Schaltungen für WS2812 und SK6812 verbaut.

Du kannst den Transistor mit etwas fummeln auch direkt auf den LED Strip 
packen.

Dein Problem bei der anfänglich Schaltung ist in der Tat der fehlende 
Pull Down am FET. Sobald der Transistor sperrt, kann sich das Gate vom 
FET nur noch über Leckströme entladen und das braucht halt Zeit. 
Alternativ müsstest du nach einem schnelleren FET mit geringer Gate 
Kapazität suchen.

von Chris K. (Gast)


Lesenswert?

Äh quark, vergesse das mit dem entladen vom FET Gate. Das Verhalten ist 
ja invertiert. Damit das Signal hinter dem FET low wird, muss er ja 
durchsteuern. Somit ist das Signal am Gate zu langsam wieder high.

von Felix N. (felix_n888)


Lesenswert?

Theo K. schrieb:
> Wie sieht das bezüglich EMV aus? 800 kHz PWM mit relativ steilen
> Flanken, ist das so üblich?

Beziehst du dich auf der Bild des Logikanalysators? Da werden die 
Flanken immer Steil dargestellt. Laut Oszi liegt die Anstiegszeit bei 
22ns. Wenn ich mein Radio auf 801KHz AM schalte und die Antenne direkt 
daneben lege macht sich das nicht bemerkbar im Radio.

Chris K. schrieb:
> Dein Problem bei der anfänglich Schaltung ist in der Tat der fehlende
> Pull Down am FET. Sobald der Transistor sperrt, kann sich das Gate vom
> FET nur noch über Leckströme entladen und das braucht halt Zeit.

Müsste das nicht genau anderes rum sein meine der NPN Invertiert ja und 
der FET invertiert ja den den NPN wieder so das das GPIO Signal 1:1 
wieder geben werden sollte. Wobei der Kollektorwiderstand worüber der 
FET geladen wird schon relativ klein ist mit 100 Ohm entladen sollte ja 
eigentlich kein Problem sein der Transistor stellt ja in dem Moment ein 
Kurzschluss da für den FET.

//EDIT: Vergesst das mit dem FET und NPN habs nicht gesehen das du das 
bereits selbst korrigiert hast.

Chris K. schrieb:
> Der Pegelwandler per open collector Transistor funktioniert. Hab ich
> selber an einigen ESP Schaltungen für WS2812 und SK6812 verbaut.

Ah okay das ist interessant das du das schon ausprobiert hast. Wie groß 
ist denn dein Pull Up Widerstand am Kollektor bei deiner ESP Schaltung 
gewesen?

Mfg

: Bearbeitet durch User
von Chris K. (Gast)


Lesenswert?

Ja, hatte schon ne Korrektur hinterher geschoben. War gerade mit der 
Logik auf dem Holzweg.

Bei mir sind es 10k für den Pull Up am Transistor.

von Teo (Gast)


Lesenswert?

Theo K. schrieb:
> Wie sieht das bezüglich EMV aus? 800 kHz PWM mit relativ steilen
> Flanken, ist das so üblich?

Bei 1µA?!

von Markus M. (adrock)


Lesenswert?

Teo schrieb:
> Theo K. schrieb:
>> Wie sieht das bezüglich EMV aus? 800 kHz PWM mit relativ steilen
>> Flanken, ist das so üblich?
>
> Bei 1µA?!

Ich glaube Teo hat nicht verstanden, dass die PWM nur zur Erzeugung des 
Datensignals verwendet wird.

Die eigentliche PWM für das Dimmen der LEDs arbeitet mit wenigen hundert 
Hz, ich hatte das mal irgendwann gemessen, findet man sicher auch im 
Netz.

von Theo K. (Gast)


Lesenswert?

Ach so, na dann ist ja gut.

von Stefan F. (Gast)


Lesenswert?

Felix N. schrieb:
> Schätze jetzt das ganze mal so auf 18-25cm länge insgesamt.

Dann würde ich es mit einem Bipolaren Transistor und Pull-Up versuchen. 
Das Signal musst du dann noch in der Software invertieren damit es 
wieder richtig gepolt ist.

Oder zwei Bipolare Transistoren, aber nicht diesen MOSFET mit hunderten 
pF Kapazität.

Wenn es mit Pull-Up Widerstand nicht klappt, dann baue halt die 
Gegentaktendstufe auf, wie sie auch in den 74er Logik IC's enthalten 
ist.

Felix N. schrieb:
> Habe mal Bilder vom Logikanalyzer angehängt

Der zeigt nicht die Steilheit der Flanken an. Oszilloskop wäre schon 
besser.

von Stefan F. (Gast)


Lesenswert?

Theo K. schrieb:
> Wie sieht das bezüglich EMV aus? 800 kHz PWM mit relativ steilen
> Flanken, ist das so üblich?

Bei diesen Lichterketten ja, und es ist tatsächlich problematisch. 
Deswegen rate ich immer davon ab, damit große Beleuchtungen oder Deko 
Artikel aufzubauen.

von Stefan F. (Gast)


Lesenswert?

Chris K. schrieb:
> Dein Problem bei der anfänglich Schaltung ist in der Tat der fehlende
> Pull Down am FET. Sobald der Transistor sperrt, kann sich das Gate vom
> FET nur noch über Leckströme entladen

Das würde viele Minuten dauern, wenn es so wäre.

Der Bipolare Transistor zieht die Spannung runter (schaltet den MOSFET 
schnell aus). Der Pull-Up Widerstand zieht sie hoch (schaltet den MOSFET 
langsam ein).

Ein zusätzlicher Pull-Down widerstand nützt dort nichts.

von Chris K. (Gast)


Lesenswert?

Moin Stefan,

stimmt alles und hatte ich weiter oben auch schon entsprechend 
berichtigt.

Der FET ist einfach zu langsam an dieser Stelle. Hier mal grob 
überschlagen.

5.4 nC Gate Charge
0.95 V typ Gate Threshold Spannung
5 V via 100 Ohm Pull-Up am Gate

t = 5.4 nC / ((5 V - 0.95 V) / 100 Ohm) = ungefähr 135 ns

danach fängt der FET an langsam zu leiten und es kommen die weiteren 
Delay Zeiten aus dem Datenblatt zum tragen. Bei 800 kHz beträgt die 
Periodendauer 1,25 µs. Bei 50% Tastverhältnis bleiben also 625 ns in 
denen der Schaltvorgang erfolgen muss. Der FET braucht schon ein gutes 
drittel der Zeit, dass werden die WS2812 nicht mögen.

Nur machen die Scope Bilder für mich noch keinen richtigen Sinn. Demnach 
wäre der FET schon bei 300 kHz viel zu langsam. Da passt noch was 
anderes nicht. Wie sieht denn das Signal am Gate aus?

von Teo D. (teoderix)


Lesenswert?

Felix N. schrieb:
> ein paar WS2812B LEDs einsetzten

Schmeiß den Scheiß raus und betreibe die "paar" LED mit 3,3V und gut is.
Nur bei allzu viele in der Kette, wirds mit dem Spannungsabfall auf der 
Versorgung kritisch, da bei 3,2V is Schluss mit lustig. Die Temperatur 
sollte sicher auch nich unter15°C(?) fallen.

von c-hater (Gast)


Angehängte Dateien:

Lesenswert?

c-hater schrieb:

> Nur durch andere Bauelemente ist das nicht zu retten. Mindestens ein
> weiterer Widerstand muss hinzukommen (nämlich von der Basis von Q1 nach
> Masse). Und natürlich muss erheblich umdimensioniert werden.

So meinte ich das (siehe Anhang).

C1 verbessert die Eigenschaften der Schaltung erheblich, stellt 
allerdings auch ziemlichen Streß für die Quelle dar. Ein guter AVR8 
könnte das problemlos ab, eine schrottiger STM32 wahrscheinlich nicht, 
jedenfalls nicht dauerhaft.

Du wirst also C1 deutlich verkleinern oder sogar ganz weglassen müssen. 
Was dann noch geht, sollte aber für die WS2812B immer noch hinreichend 
sein. Wahrscheinlich mußt du aber das Timing über die PWM-Werte 
kompensieren, d.h.: die H-Zeiten müssen um einige 10ns verlängert werden 
gegenüber dem, was nominal für die WS gefordert ist, damit an den WS 
dann das richtige Timing ankommt.

von HildeK (Gast)


Lesenswert?

c-hater schrieb:
> C1 verbessert die Eigenschaften der Schaltung erheblich, stellt
> allerdings auch ziemlichen Streß für die Quelle dar. Ein guter AVR8
> könnte das problemlos ab, eine schrottiger STM32 wahrscheinlich nicht,
> jedenfalls nicht dauerhaft.

Man könnte auch noch den Transistor vor der Sättigung schützen 
(Schottky-Diode von B nach C). Aber in der vorhandene Platine muss man 
immer pfriemeln, um was zu verbessern - warum dann nicht gleich den 
1G125 reinpfriemeln?

Ein Vorschlag, der sonst immer kommt, wurde noch gar nicht genannt: die 
erste LED über eine Si-Diode versorgen, so dass sie nur max. 4.4V sieht. 
Damit kann diese mit 3.3V angesteuert werden und liefert am Ausgang 4.4V 
ab. Das reicht der nächsten dann locker.
1
 5V o-------------------.
2
                        |
3
               Si-D     |
4
          .-----|<------o------------o------  5V
5
          |             |            |
6
       .--o--.       .--o--.      .--o--.
7
       |     |       |     |      |     |
8
D_in o-o     o-------o     o------o     o---
9
       |     |       |     |      |     |
10
       '--o--'       '--o--'      '--o--'
11
          |             |            |
12
GND o-----o-------------o------------o------
13
(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)

von DC2PCC (Gast)


Lesenswert?

Vielleicht ist auch der BC850C etwas langsam, weil dieser sehr tief 
gesättigt wird. mit nur ein Faktor 10 Stromverstärkung.
Probier dort doch mal ein 2n7002 statt BC850C
R15 verkleinern auf 10 bis 47 ohm (ausprobieren!)

von HildeK (Gast)


Angehängte Dateien:

Lesenswert?

DC2PCC schrieb:
> Vielleicht ist auch der BC850C etwas langsam, weil dieser sehr tief
> gesättigt wird. mit nur ein Faktor 10 Stromverstärkung.
> Probier dort doch mal ein 2n7002 statt BC850C

Dann lieber zwei NPN und den FET weglassen. Da gibt es keine 
Gatekapazitäten, die umgeladen werden müssen.
Oder die Basisschaltung verwenden. Siehe die beiden Anhänge.

von HildeK (Gast)


Lesenswert?

Nachtrag: die erste Schaltung wäre vermutlich ohne große Pfriemelei auf 
dem bestehenden Layout unterzubringen ...

von c-hater (Gast)


Lesenswert?

HildeK schrieb:

> Nachtrag: die erste Schaltung wäre vermutlich ohne große Pfriemelei auf
> dem bestehenden Layout unterzubringen ...

Ist aber grenzwertig. Mit C1=47p aber absolut auf der sicheren Seite und 
in ihren Eigenschaften nur geringfügig schlechter.

von HildeK (Gast)


Lesenswert?

c-hater schrieb:
> Ist aber grenzwertig. Mit C1=47p aber absolut auf der sicheren Seite und
> in ihren Eigenschaften nur geringfügig schlechter.
Warum?
Ich sehe in der Simulation keinen wesentlichen Unterschied im 
Ausgangssignal oder im Delay, egal ob 220p oder 47p drin sind. Größere 
Kapazitäten belasten allerdings die Quelle stärker. Aber auch 22p wirken 
schon Wunder. Damit hast du recht: das C kann kleiner gewählt werden; 
man muss die Fähigkeiten der Quelle mit beachten.
Ob man die Widerstände so niederohmig benötigt wie in deinem Vorschlag, 
bezweifle ich etwas. Gut, der R1 in deiner Schaltung mit 100Ω ist i.O., 
falls die Datenleitung etwas länger sein sollte und dann muss man auch 
den R2 etwas verkleinern - z.B. auf 330Ω-470Ω. Meist wird das aber nicht 
notwendig sein. R3 und R4 (in einer Variante) arbeiten auch mit dem 
zehnfachen Wert noch gut; für R4 würde ich sogar noch etwas mehr nehmen.
Die entscheidende Verbesserung bringt imho der Verzicht auf den nMOS.

von c-hater (Gast)


Lesenswert?

HildeK schrieb:

> Warum?

Vergleiche Iv2 mit den vom Datenblatt eines STM32 gegebenen Grenzen.

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

FET raus, Brücke zwischen G & D und den R13 nicht bestücken.
PWM Invertieren und besserer Transistor, dürfte die einfachste Variante 
sein.

: Bearbeitet durch User
von c-hater (Gast)


Lesenswert?

HildeK schrieb:

> Die entscheidende Verbesserung bringt imho der Verzicht auf den nMOS.

Natürlich. Dass es schaltungstechnisch wesentlich bessere Lösungen gibt, 
war ja sogar dem TO bereits bei seinem OT klar.

Mein Vorschlag zielte darauf ab, mit möglichst wenigen Änderungen die 
Funktionalität herzustellen.

Das Problem bei deiner Lösung dürfte das Pinout sein. Das passt einfach 
nicht gut. Schaltungstechnisch ist sie aber natürlich wesentlich besser 
als mein Vorschlag. Darüber brauchen wir nicht zu diskutieren.

von HildeK (Gast)


Lesenswert?

c-hater schrieb:
> Das Problem bei deiner Lösung dürfte das Pinout sein.

Ok.
Ich bin von ein wenig notwendigem Gepfriemel ausgegangen und hatte (ohne 
nachzuschauen) die Hoffnung, das NPN und nMOS vielleicht direkt passen 
(G-B, S-E und D-C) beim SOT23. Für mich sieht es in dem Layoutausschnitt 
auch so aus. Und ein kleines C auf den Basiswiderstand huckepack 
aufgelötet ist vertretbar für ein Hobbyprojekt. Das sieht man sogar hin 
und wieder in kommerziellen Produkten.
Das Prüfen, ob ein NPN und der nMOS 'pinkompatibel' sind, überlasse ich 
dem TO.

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

Patrick L. schrieb:
> und besserer Transistor,

Sorry ganz vergessen zu schreiben..
als besserer Transistor,ein Darlington verwenden.

Dan  gibt es kein Gefrickel auf dem PCB.

von Mike (Gast)


Lesenswert?

DC2PCC schrieb:
> Vielleicht ist auch der BC850C etwas langsam, weil dieser sehr tief
> gesättigt wird. mit nur ein Faktor 10 Stromverstärkung.
Bipolartransistoren in Sättigung brauchen immer eine kleine Ewigkeit um 
aus der Sättigung herauszukommen. Deutlich schneller ist die 
Basisschaltung, wodurch man auch den Mosfet einsparen kann:
https://rn-wissen.de/wiki/index.php/Transistor

von HildeK (Gast)


Lesenswert?

Mike schrieb:
> Deutlich schneller ist die
> Basisschaltung, wodurch man auch den Mosfet einsparen kann

Das Bild dazu hatte ich oben schon angehängt: 
https://www.mikrocontroller.net/attachment/532229/Pegelwandler_2_.png

von Joachim B. (jar)


Lesenswert?

Mike schrieb:
> Deutlich schneller ist die
> Basisschaltung

HildeK schrieb:
> Das Bild dazu hatte ich oben schon angehängt

genial, ich hatte die zwar vor 50 Jahren in der Ausbildung aber total 
nicht mehr auf dem Schirm, das ist so trivial einen einzelnen 3,3V -> 5V 
Pegelwandler aufzubauen, leider im Gegensatz zum FET nicht 
bidirektional, aber für WS28xx absolut ausreichend.

von HildeK (Gast)


Lesenswert?

Joachim B. schrieb:
> genial, ich hatte die zwar vor 50 Jahren in der Ausbildung aber total
> nicht mehr auf dem Schirm

Ja, finde ich auch. Meine Ausbildung ist auch schon so lange her, aber 
mir ist die Variante erst vor ein paar Jahren aufgefallen.
Sie hat auch kleine Nachteile:
- den Strom für LOW muss die Quelle aufnehmen können. Meist kein 
Problem, aber man muss es im Hinterkopf haben.
- sie hat eine sehr niedrig liegende Schwelle. Evtl. muss man am Eingang 
noch einen Spannungsteiler hinzufügen (für 3.3V z.B. 330Ω und 68Ω).

Nichts ist perfekt.

von Felix N. (felix_n888)



Lesenswert?

Chris K. schrieb:
> Bei mir sind es 10k für den Pull Up am Transistor.

Hallo an alle,

Ah ok. Bei 10K und 5V fließt ein Strom 500uA durch den Transistor wenn 
er durchschaltet. Der BC850C hat bei 10uA ein hfe Wert von um die 450. 
Ich kenne das jetzt so das man das normalerweiße noch durch 2 bis 10 
teilt um den Transistor sicher durchzuschalten bzw. in die Sättigung zu 
treiben. Wenn man mit 450 rechnet müssen 1uA in die Basis fließen und 
das wären dann fast 3 Megaohm Basiswiderstand bisschen viel oder? Was 
nimmt man dann da 10K oder 100K?

Stefan ⛄ F. schrieb:
> Dann würde ich es mit einem Bipolaren Transistor und Pull-Up versuchen.
> Das Signal musst du dann noch in der Software invertieren damit es
> wieder richtig gepolt ist.

Ja ich glaube das ist noch am einfachsten Umzusetzen auf der bestehenden 
Platine. Muss ja eigentlich nur der MOSFET raus und der Widerstand im 
Drain Strang angepasst werden auf 10K. Aber warum genau 30cm länge?

Stefan ⛄ F. schrieb:
> Oszilloskop wäre schon
> besser.

Hab zwei Bilder vom Oszilloskop bei 800KHz angehängt bzgl. der 
Flankensteilheit.

Stefan ⛄ F. schrieb:
> Bei diesen Lichterketten ja, und es ist tatsächlich problematisch.
> Deswegen rate ich immer davon ab, damit große Beleuchtungen oder Deko
> Artikel aufzubauen.

Warum? Ich finde die Dinger einfach genial habe sie schon oft in 
Verwendung mit einem AVR benutzt. Ist doch deutlich einfacher als ein 
RGB Streifen mit Leistungstreiber dahinter zumal man auch noch jede 
einzelne Ansteuern kann.

Aber bzgl. EMV. Die Flanken sind relativ steil. Anstiegszeit von ca. 
10ns. Es fließt jedoch so gut wie kein Strom 1uA oder so. Was soll ich 
damit stören? Wenn ich mein altes AM Radio daneben stelle und auf 801KHz 
einstelle dann ändert sich im Radio nix.

Chris K. schrieb:
> Wie sieht denn das Signal am Gate aus?

Habe Bilder bei 300KHz angehängt.

Teo D. schrieb:
> Schmeiß den Scheiß raus und betreibe die "paar" LED mit 3,3V und gut is.

Ein "paar" wären so 17 LEDs.

c-hater schrieb:
> Ein guter AVR8
> könnte das problemlos ab, eine schrottiger STM32 wahrscheinlich nicht,
> jedenfalls nicht dauerhaft.

Was möchtest du mir damit den sagen? Der ST der verbaut ist ein 
Originaler vom Nucleo-64 Board.

HildeK schrieb:
> in Vorschlag, der sonst immer kommt, wurde noch gar nicht genannt: die
> erste LED über eine Si-Diode versorgen, so dass sie nur max. 4.4V sieht.

Die LEDs ist auf einem typischen LED-Streifen montiert.

HildeK schrieb:
> Dann lieber zwei NPN und den FET weglassen.

Ich glaube das wäre auch noch einfach so umzubauen. Muss nachher mal 
schauen meine noch andere SMD Transistoren gehabt zu haben die ähnliche 
Wert wie die BC547B haben. Auf den ersten Blick der beiden Datenblätter 
vom BC850C und TSM2302 scheint es auch von den Pins her zu passen.

HildeK schrieb:
> Oder die Basisschaltung verwenden.

Ah dann weiß ich jetzt auch wofür man diese Art von Transistorschaltung 
benutzen kann. Jedoch lässt sie sich nicht so ohne weiteres umbauen.

Mfg

von Uwe S. (bullshit-bingo)


Lesenswert?

Ohne den Thread komplett gelesen zu haben, auf die Eingangsfrage 
beziehend:

-Tausche den BC850 durch einen Digitaltransistor mit internem 
Basis-Emitter-Widerstand. Noch besser, aber auf vorhandener Platine ja 
schlecht durchführbar, spendiere dem BC850 einen 
Basis-Emitter-Widerstand von z.B. 470R.

-R1 ist ja schon recht klein, aber falls möglich, verkleinere ihn 
weiter. Bipolartransistoren, insbesondere solche, die mit gesättigter 
Basis betrieben werden, sind bei kleinen Kollektorströmen 
schnarchlangsame Öffner...

-spendiere dem BC850 eine (sehr kleine) Schottkydiode zwischen Kollektor 
und Basis. Diese verhindert eine Sättigung der Basis.

-Verkleinere R2 bis zur maximal vertretbaren Wärmeerzeugung.

von Michael M. (Firma: Autotronic) (michael_metzer)


Angehängte Dateien:

Lesenswert?

Falls die Basisschaltung nicht auf das vorhandene Layout passt, muss man 
leider wohl doch eine Emitterschaltung einsetzen. Am besten noch mit 
einem HF-Transistor (BF224 oder 2N2222).

von jo (Gast)


Angehängte Dateien:

Lesenswert?

Felix N. schrieb:
> Ah ok. Bei 10K und 5V fließt ein Strom 500uA durch den Transistor wenn
> er durchschaltet. Der BC850C hat bei 10uA ein hfe Wert von um die 450.
> Ich kenne das jetzt so das man das normalerweiße noch durch 2 bis 10
> teilt um den Transistor sicher durchzuschalten bzw. in die Sättigung zu
> treiben. Wenn man mit 450 rechnet müssen 1uA in die Basis fließen und
> das wären dann fast 3 Megaohm Basiswiderstand bisschen viel oder? Was
> nimmt man dann da 10K oder 100K?

hfe usw. sind KLEINSIGNAL-Parameter!

Warum nimmst keinen Schaltransistor? Da findest die Werte im Datenblatt 
- und musst nicht raten. Typischerweise (aber auch das wurde hier schon 
mal erwähnt) rechnet man bei Schaltanwendungen mit einer 
Stromverstärkung um die 10.

Was die Schaltzeiten angeht, sind diese stark abhängig vom 
Kollektorstrom. Als Beispiel habe ich den Auszug aus dem 2N2369 
Motorola-Datenblatt angehängt:

Bei Ic=10mA (Vcc=3V) beträgt z.B. die Risetime ~14ns, bei Ic=1mA sind es 
schon ~150ns (extrapoliert). Bei 500uA, vergiss es ...

Bei Vcc=5V musst noch gerne 50% drauf packen.

Für den SOT-23 Schalttransistor deiner Wahl darfst Dir die Werte selber 
raussuchen.

von HildeK (Gast)


Lesenswert?

Felix N. schrieb:
> Die LEDs ist auf einem typischen LED-Streifen montiert.

Macht ja nichts.
Zwischen der ersten und zweiten LED die VCC-Leitung auftrennen. Eine 
Diode in Durchlassrichtung zwischen der zweiten und ersten LED 
anbringen. VCC dann an der zweiten LED einspeisen. Es reicht eine 
1N4148, die bringt man einfach direkt am Streifen an.
Dann kannst du direkt mit einem 3V3-Signal die erste LED bedienen.

Felix N. schrieb:
> HildeK schrieb:
>> Dann lieber zwei NPN und den FET weglassen.
>
> Ich glaube das wäre auch noch einfach so umzubauen. Muss nachher mal
> schauen meine noch andere SMD Transistoren gehabt zu haben die ähnliche
> Wert wie die BC547B haben. Auf den ersten Blick der beiden Datenblätter
> vom BC850C und TSM2302 scheint es auch von den Pins her zu passen.
Ja, so wie es aussieht, musst du nur den nMOSFET durch einen weiteren 
BC850 ersetzen und ein paar Widerstandswerte anpassen. Und, ob du BC850 
oder BC547/BC847 nimmst, ist hier egal. Wenn du die BC850 zur Hand hast, 
dann ersetzt den nMOS durch diesen - fertig.
Der R14 in deinem Bild vom Eröffnungspost kann ruhig 1k haben. Dafür den 
R13 verkleinern, 220Ω oder, falls die Datenleitung zur ersten LED länger 
ist, auch 100Ω. Der Basiswiderstand R15 ist soweit ok. Zu hochohmig 
sollte man nicht werden, sonst wird das wieder langsam. Und parallel zum 
R15 noch 50pF ... 100pF für ein schnelleres Abschalten.

Beim FET versaut dir die Gatekapazität das schnelle Schalten.

Felix N. schrieb:
> Bei 10K und 5V fließt ein Strom 500uA durch den Transistor wenn
> er durchschaltet. Der BC850C hat bei 10uA ein hfe Wert von um die 450.
Naja, das kann von Exemplar zu Exemplar deutlich schwanken.

> Ich kenne das jetzt so das man das normalerweiße noch durch 2 bis 10
> teilt um den Transistor sicher durchzuschalten bzw. in die Sättigung zu
> treiben. Wenn man mit 450 rechnet müssen 1uA in die Basis fließen und
> das wären dann fast 3 Megaohm Basiswiderstand bisschen viel oder?
Ja, aber wo bleibt dein Übersteuerungsfaktor von 2 bis 10?
Klar, wenn man extrem Strom sparen will, wird man vielleicht 100k 
nehmen. Aber dadurch hast du Einbußen in der Geschwindigkeit (Delay, 
Anstiegzeit, Grenzfrequenz), die hier nicht zulässig sind. Man muss 
immer parasitäre Kapazitäten umladen und dazu braucht man einfach etwas 
mehr Strom.
Mit 800kHz schalten ist für einen Transistor noch gut machbar bei 
ordentlicher Dimensionierung; im unteren MHz Bereich muss man schon 
optimieren und oberhalb davon wird es spezieller (so niederohmig wie 
möglich, Sättigung vermeiden, schnellen Transistor auswählen )...

> Was nimmt man dann da 10K oder 100K?
Wenn die Quelle es hergibt: 1k oder auch weniger; aus den genannten 
Gründen und für diese Anwendung. Sonst irgendwas bis 10k, wenn man nicht 
extrem sparsam sein muss. Der BC850 hat typ. 9pF Eingangskapazität, mit 
1Meg Basisvorwiderstand bist du schon bei einem Tiefpass mit knapp 20kHz 
Grenzfrequenz! Demnach: <10k sind zwingend!

von jo (Gast)


Lesenswert?

HildeK schrieb:
> Der BC850 hat typ. 9pF Eingangskapazität, mit
> 1Meg Basisvorwiderstand bist du schon bei einem Tiefpass mit knapp 20kHz
> Grenzfrequenz! Demnach: <10k sind zwingend!

Wenn da nur nicht die nach J. Miller benannte Kapazität mitsprechen 
würde.

just my 2ct

von Teo (Gast)


Lesenswert?

Felix N. schrieb:
> Teo D. schrieb:
>> Schmeiß den Scheiß raus und betreibe die "paar" LED mit 3,3V und gut is.
>
> Ein "paar" wären so 17 LEDs.

Was soll ich dazu sagen. Bei Zwei auf dem Breadboard, funst es prima.
Mit 17 LEDs und evtl. beidseitig eingespeist, sollte das denke ich auch 
gehen.
Das mal zu testen, sollte aber deutlich weniger Zeit und Aufwand kosten, 
als hier diesen Thread zu lesen.... ;P
Das kann man ja mal schnell zwischen den "Umbauten" erledigen.

von Oliver S. (phetty)


Lesenswert?

https://esp8266hints.wordpress.com/2018/04/14/driving-ws2812-led-strips-with-the-esp8266/

Was für ein bohei.
Meistens reicht es, eine LED dicht an der Schaltung zu platzieren um die 
Pegel anzuheben.

von HildeK (Gast)


Lesenswert?

jo schrieb:
> Wenn da nur nicht die nach J. Miller benannte Kapazität mitsprechen
> würde.

Das auch. Dadurch wird es aber nur schlimmer.

von Stefan F. (Gast)


Lesenswert?

HildeK schrieb:
> Evtl. muss man am Eingang noch einen Spannungsteiler hinzufügen

An der Basis meinst du

von Stefan F. (Gast)


Lesenswert?

Felix N. schrieb:
> das wären dann fast 3 Megaohm Basiswiderstand bisschen viel oder?

Ja genau. So hochohmige Widerstände lassen sich herrlich leicht durch 
Radiowellen beeinflussen. Deswegen sieht man Werte > 10kΩ in digitalen 
Schaltungen nur selten. Nimm lieber 10kΩ.

> Aber warum genau 30cm länge?

Ein Bauchgefühl aus Erfahrung. Für kürzere Leitungen musste ich das 
Signal speziell aufbereiten. Wobei meine Signale bis auf ganz wenige 
Ausnahmen immer unter 10 Mhz liegen.

Jede HF mässig nicht terminierte Leitung (die hast du) erzeugt 
Reflexionen an ihren Enden. Bei so kurzen Leitungen stören sie 
allerdings nicht. Erst bei langen Leitungen ist der Zeitliche Abstand 
zwischen Nutzsignal und Echo so groß, dass das Echo Fehlfunktionen 
auslöst.

Wenn du zwischen großen Bergen "Hallo" rufst und dann jemand anderen 
fragst, wie oft er das Wort gehört hat, wird er vielleicht 3 oder 4 
sagen. Das entspricht der langen Leitung.

Wenn du das gleiche in einem leeren Zimmer machst, wir jeder sagen, er 
habe das Wort nur einmal gehört. Das entspricht der kurzen Leitung. In 
dem Zimmer ist das Echo keineswegs schwächer, aber es überlappt sich 
zeitlich mit deiner Stimme und verzerrt sie daher nur ein kleines 
bisschen.

Lange Leitungen sind ein interessantes Thema - mit einem fließenden 
Übergang zu Radiowellen.

Felix N. schrieb:
> Hab zwei Bilder vom Oszilloskop bei 800KHz angehängt bzgl. der
> Flankensteilheit.

Sieht gut aus.

von Stefan F. (Gast)


Lesenswert?

Felix N. schrieb:
>> Bei diesen Lichterketten ja, und es ist tatsächlich problematisch.
>> Deswegen rate ich immer davon ab, damit große Beleuchtungen oder Deko
>> Artikel aufzubauen.

> Warum?

Weil sie dafür bekannt sind, ihren Umkreis mit Radiowellen zu 
verseuchen. Das kann sich durchaus auf praktische Dinge wie WLAN, 
Bluetooth, Radio, Fernsehen (DVB-T) negativ auswirken.

Lange Leitungen mit hochfrequenten rechteckigen Signalen sind immer 
problematisch. Denn jede Leitung ist eine Antenne. Jede längere 
Leitungen ist eine bessere Antenne. Und jedes Rechteck-Signal enthält 
unendlich vielen Oberwellen.

Felix N. schrieb:
> Wenn ich mein altes AM Radio daneben stelle und auf 801KHz
> einstelle dann ändert sich im Radio nix.

Gut. Vielleicht haben die Hersteller der Chips oder der Streifen 
Maßnahmen ergriffen, um die Sache zu verbessern. Ein Arbeitskollege hat 
sich einen Würfel gebastelt, der auf allen 6 Flächen 8x8 dieser LEDs hat 
und darauf wilde bunte Animationen abspielt. Wenn er das Ding 
einschaltet, knurren alle analogen Tischlautsprecher im Raum und 
Bluetooth Headsets machen Aussetzer.

> Ich finde die Dinger einfach genial habe sie schon oft
> in Verwendung mit einem AVR benutzt.

Praktisch sind sie, zweifellos. Allerdings auch energietechnisch 
unvorteilhaft. Die LEDs in dem Chip haben einen deutlich schlechteren 
Wirkungsgrad als weiße LEDs die für Beleuchtungszwecke gebaut sind. Dazu 
kommt, dass sie einen erheblichen Teil der Versorgungsspannung nutzlos 
verheizen. Die Spannungen der LEDs sind:

Rot 2V
Grün 3,1V
Blau 3,3V

Den Rest (etwa ein Drittel) verheizen sie. Gerade jetzt wo die 
Energiekosten massiv steigen und wir auch wegen dem Klima sparsam damit 
umgehen sollten, bin ich der Meinung, dass man diese Lichterketten nur 
punktuell zur Dekoration verwenden sollte. Auf keinen Fall als 
Raum-Beleuchtung.

Ich bin auch der Meinung, dass gut die Hälfte aller Lampenschirme ebenso 
schlecht sind, weil sie vom erzeugten Licht zu wenig nutzbar machen.

von HildeK (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> An der Basis meinst du

Ja, am Eingang des Pegelwandlers.

von c-hater (Gast)


Lesenswert?

Felix N. schrieb:

> c-hater schrieb:
>> Ein guter AVR8
>> könnte das problemlos ab, eine schrottiger STM32 wahrscheinlich nicht,
>> jedenfalls nicht dauerhaft.
>
> Was möchtest du mir damit den sagen?

Dass halt die GPIOs der AVR8 deutlich leistungsfähiger und 
fehlertoleranter sind als die der STM32. Oder anders ausgedrückt: STM32 
ist eine Mimose im Vergleich zum AVR8. Da kann man schnell mal was 
zerschiessen, beim AVR8 muss man sich hingegen einigermaßen anstrengen, 
um die GPIOs kaputt zu bekommen.

Das ist definitiv für Leute von Nachteil, die von Hardware keine Ahnung 
haben, für Leute, die diesbezüglich wissen, was sie tun, natürlich 
nicht. Allerdings müssen auch solche Leute damit leben, dass oft 
zusätzliche externe Elektronik nötig wird, wo so ein Problem beim AVR8 
mit dem µC alleine bereits gegessen wäre.

So z.B. in deinem Fall. 17 WS2812B kann jeder AVR8 völlig problemlos 
ansteuern und er läßt sich problemlos mit 5V betreiben. Das ganze 
Levelshifter-Geraffel würde also entfallen, wenn man einfach mal einen 
AVR8 nimmt. Abgesehen davon würde sich auch noch die Versorgung 
vereinfachen.

Das ist aber natürlich nur die halbe Wahrheit. Man müsste wissen, was 
der µC sonst noch tut, um eine abschließende Einschätzung dazu abgeben 
zu können, ob die Wahl eines STM32 ein weise Entscheidung war.

von Hp M. (nachtmix)


Lesenswert?

Felix N. schrieb:
> Am einfachsten wäre es wahrscheinlich gewesen einen einfachen
> Spannungspuffer IC zunehmen und den mit +5V zu versorgen, im SOT23-5
> Gehäuse oder so.

74HCT-Logik kann das.

von Felix N. (felix_n888)


Angehängte Dateien:

Lesenswert?

Michael M. schrieb:
> Am besten noch mit
> einem HF-Transistor (BF224 oder 2N2222).

HildeK schrieb:
> Ja, so wie es aussieht, musst du nur den nMOSFET durch einen weiteren
> BC850 ersetzen und ein paar Widerstandswerte anpassen. Und, ob du BC850
> oder BC547/BC847 nimmst, ist hier egal. Wenn du die BC850 zur Hand hast,
> dann ersetzt den nMOS durch diesen - fertig.
> Der R14 in deinem Bild vom Eröffnungspost kann ruhig 1k haben. Dafür den
> R13 verkleinern, 220Ω oder, falls die Datenleitung zur ersten LED länger
> ist, auch 100Ω. Der Basiswiderstand R15 ist soweit ok. Zu hochohmig
> sollte man nicht werden, sonst wird das wieder langsam. Und parallel zum
> R15 noch 50pF ... 100pF für ein schnelleres Abschalten.

Moin,

Also irgendwie klappt das nicht so wirklich mit der Transistorschaltung. 
Ich habe nochmal ein Bild von LTSpice angehängt. Zum Testen habe ich 
jetzt mein Frequenzgenerator ausgepackt und ein Rechtecksignal mit 
800KHz erzeugt die Flanken sind nicht ganz so steil wie beim STM aber 
zum testen muss es reichen.

Das Problem bei den BC850C Transistoren(Die die ich auch auf der Platine 
verbaut habe) ist egal welche Widerstände oder Kondensatoren(10pF bis 
1nF) ich nehme alles über 400KHz bleibt bei einem HIGH Pegel.

Besser wird es mit den Standard 8015 BC547B Transistoren die 
funktionieren auch noch bei 800KHz jedoch muss ich da fast den vollen 
erlaubten Kollektorstrom von 100mA fließen lassen bis das Signal 
überhaupt bei 800KHz @ 5V noch was raus kommt. Da liegt das 
Tastverhältnis(Frequenzgenerator 50%) schon bei 80 %.

Ich habe hier noch ein paar HF BJT-Transistoren vom Typ BF199 die habe 
ich mal für ein FM-Empfänger/Sender besorgt. Mit den geht das ganz gut 
bei 40mA Kollektorstrom ist das Signal leicht verzögert aber es kommt 
überhaupt noch was aus. Damit könnte es funktionieren.

Muss dazu sagen das ich das ganze mittlerweile auf einen Steckbrett 
getestet habe weil es einfach immer aufwendiger wurde in der 
Luftverdrahtung die Werte zu tauschen.

jo schrieb:
> Warum nimmst keinen Schaltransistor?

Weil wo ich den Schaltplan erstellt habe geschaut habe was ich noch hier 
habe. Dann habe ich die Schaltung in LTSpice simuliert und da hatte 
alles gepasst und so habe ich sie dann übernommen. Dummerweise habe ich 
sie selber nicht aufgebaut, hatte ja alle Teile hier, da hätte ich dann 
gesehen das die Idee schrott war.

jo schrieb:
> Für den SOT-23 Schalttransistor deiner Wahl darfst Dir die Werte selber
> raussuchen.

Mein Datenblatt enthält nur ein Diagramm und das ist hfe vs Ic

https://cdn-reichelt.de/documents/datenblatt/A200/UZBC849X-TO-BC850X_E.pdf

HildeK schrieb:
> Zwischen der ersten und zweiten LED die VCC-Leitung auftrennen. Eine
> Diode in Durchlassrichtung zwischen der zweiten und ersten LED
> anbringen. VCC dann an der zweiten LED einspeisen. Es reicht eine
> 1N4148, die bringt man einfach direkt am Streifen an.
> Dann kannst du direkt mit einem 3V3-Signal die erste LED bedienen.

Ich glaube wenn das mit der Transistorlösung nix wird dann wird das wohl 
die einfachste sein dann löte ich einfach die letzte LED auf einen Seite 
aber oder so.

HildeK schrieb:
> Wenn die Quelle es hergibt: 1k oder auch weniger; aus den genannten
> Gründen und für diese Anwendung

c-hater schrieb:
> Oder anders ausgedrückt: STM32
> ist eine Mimose im Vergleich zum AVR8. Da kann man schnell mal was
> zerschiessen,

Also die CPU ist ein STM32F446RET6 laut den Raterings unter Electrical 
characteristics im Datenblatt sind pro I/O Pin +/-25mA(sink/source) 
erlaubt. Die beiden I/Os die an Timer3 angeschlossen sind wären auch vom 
Typ FT also 5V Tolerant.

Nur weiß ich nicht ob der Timer mit Open Drain bei PWM umgehen kann also 
das der IO via Pull-Up auf +5V hochgezogen wird wie das @Stefan schon 
mal vorgeschlagen hat.

Und ich bin mir nicht sicher ob die +5V im Power-Up Moment Kritisch 
wären da die 3,3V des Controllers später anliegen als die +5V da sie aus 
den +5V erzeugten werden. Und laut Datenblatt bei den FT Pins VDD+4.0V 
anliegen darf im Einschaltmoment wären das dann 0V+4V=4V max. Es lägen 
dann aber +5,1V Volt am Pin durch den Pullup an.

Teo schrieb:
> Das kann man ja mal schnell zwischen den "Umbauten" erledigen.

Wer hat den gesagt das alle LEDs auf einmal leuchten sollen? Die sollen 
was darstellen in abhängigkeit zu was anderem. zB. CPU Last. Dann 
brauche ich auch noch ne Matrix Schaltung für die normalen RGB leds.

Oliver S. schrieb:
> Meistens reicht es, eine LED dicht an der Schaltung zu platzieren um die
> Pegel anzuheben.

Wie soll sich der Pegel des Signals von 3,3V auf X,XX V erhöhen nur weil 
ich die LED näher an der Schaltung platziere? Oder verstehe ich das 
jetzt falsch. Der Typ von dem angegebenen Link nutzt ebenfalls ein 
Transistor um den Pegel anzuheben.

Stefan ⛄ F. schrieb:
> Deswegen sieht man Werte > 10kΩ in digitalen
> Schaltungen nur selten. Nimm lieber 10kΩ.

Habe 1K als Basiswiderstand genommen.

Stefan ⛄ F. schrieb:
> Ein Bauchgefühl aus Erfahrung. Für kürzere Leitungen musste ich das
> Signal speziell aufbereiten. Wobei meine Signale bis auf ganz wenige
> Ausnahmen immer unter 10 Mhz liegen.
>
> Jede HF mässig nicht terminierte Leitung (die hast du) erzeugt
> Reflexionen an ihren Enden.

Ah ja ich erinnere mich ich hatte sowas schon mal bei SPI und einer 
langen Leitungslänge zur SD Karte. Da musste dann ein Flachbandkabel her 
+ Serienterminierungswiderstand in der SCK Leitung.

Ne aber so lang wird die Leitung bis zur ersten LED nicht sein. Ich weiß 
zwar noch nicht ganz wie das Gehäuse aus sieht aber die LEDs werden nah 
an dem Versorgungsstecker platziert.

Stefan ⛄ F. schrieb:
> Das kann sich durchaus auf praktische Dinge wie WLAN,
> Bluetooth, Radio, Fernsehen (DVB-T) negativ auswirken.

WLAN, Bluetooth und Radio nutze ich ja hier daurend da drauf hatte die 
Schaltung kein Einfluss. Bzw. es wahr im Radio keine Störung zu hören. 
Das WLAN und Bluetooth hat auch normal funktioniert. Für Bluetooth habe 
ich kurz meine BT-Kopfhörer rausgeholt und es mit Musik getestet.

Stefan ⛄ F. schrieb:
> Lange Leitungen mit hochfrequenten rechteckigen Signalen sind immer
> problematisch. Denn jede Leitung ist eine Antenne.

Ja gut das weiß ich. Aber mit 800KHz befinde ich mich im Mittelwellen 
Spektrum. Dafür braucht man doch gewaltige Antennen die mehrere 10m hoch 
sind. Oder geht es dabei um die erzeugten Oberwellen im MHz Bereich?

Stefan ⛄ F. schrieb:
> Die LEDs in dem Chip haben einen deutlich schlechteren
> Wirkungsgrad als weiße LEDs die für Beleuchtungszwecke gebaut sind.

Gut als Beleuchtungszweck sollen sie nicht eingesetzt werden und für die 
Farbe weiß schon gar nicht.

c-hater schrieb:
> Abgesehen davon würde sich auch noch die Versorgung
> vereinfachen.

Auf auf meiner Platine werden von einem Step-Down Schaltregler +5,1V 
bereit gestellt die für die LEDs und den FTDI sind. Und dann werden für 
die restliche Logik über die 5,1V aus einem zweiten Regler 3,3V erzeugt. 
Daher habe ich auch ein Schaltregler für die +5V genommen als ein linear 
Regler der den Eingangsspannungsbereich von +9 bis +28V runterregelt 
weil die Stromaufnahme ja teilweise durch 17 LEDs höher ausfallen 
könnte.

Mfg

von jo (Gast)



Lesenswert?

Felix N. schrieb:

> Also irgendwie klappt das nicht so wirklich mit der Transistorschaltung.
> Ich habe nochmal ein Bild von LTSpice angehängt. Zum Testen habe ich
> jetzt mein Frequenzgenerator ausgepackt und ein Rechtecksignal mit
> 800KHz erzeugt die Flanken sind nicht ganz so steil wie beim STM aber
> zum testen muss es reichen.

Das haben andere längst für dich ausprobiert...

Hier steht alles drin, siehe Anhang. Aber Achtung: Ist "old school", 
d.h., man muss lesen und darf keine Videos schauen.

Gibt es ab und zu antiquarisch oder auch zum Download. Einfach mal Tante 
Google fragen.

von Stefan F. (Gast)


Lesenswert?

Felix N. schrieb:
> Das Problem bei den BC850C Transistoren ist egal welche
> Widerstände oder Kondensatoren ich nehme alles über
> 400KHz bleibt bei einem HIGH Pegel.

> Besser wird es mit den Standard 8015 BC547B Transistoren die
> funktionieren auch noch bei 800KHz jedoch muss ich da fast
> den vollen erlaubten Kollektorstrom von 100mA fließen
> lassen bis das Signal überhaupt bei 800KHz @ 5V noch was
> raus kommt.

Das kann nicht sein, diese Transistoren können locker die hundertfache 
Frequenz schalten. Ich denke, deine Schaltung entspricht aus Versehen 
nicht dem, was du denkst. Du hast vielleicht irgendwo eine falsche 
Leitung zu einem relativ großen Kondensator von weit mehr als den 
üblichen parasitären Werten.

> Muss dazu sagen das ich das ganze mittlerweile
> auf einen Steckbrett getestet habe

Schon schlecht.

von Stefan F. (Gast)


Lesenswert?

Felix N. schrieb:
> Aber mit 800KHz befinde ich mich im Mittelwellen Spektrum.
> Dafür braucht man doch gewaltige Antennen die mehrere 10m hoch
> sind.

Die Oberwellen haben höhere Frequenzen und solche Lichterketten sind bei 
manchen Leuten länger als 5 Meter.

Felix N. schrieb:
> Nur weiß ich nicht ob der Timer mit Open Drain bei PWM umgehen kann also
> das der IO via Pull-Up auf +5V hochgezogen wird wie das @Stefan schon
> mal vorgeschlagen hat.

Wenn der Pin 5V tolerant ist, dann ist er es. Das hat nichts mit dem 
Timer zu tun.

> da die 3,3V des Controllers später anliegen
> als die +5V da sie aus den +5V erzeugten werden

Ok, den Aspekt sollte man beachten. Aber solange da nichts ist, was die 
3,3V absichtlich verzögert einschaltet, wird diese Fehler-Situation 
niemals eintreten. Wenn die Versorgungsspannung die 4V Grenze 
überschreitet, hat der Mikrocontroller schon längst ebenfalls mehr als 0 
Volt Versorgungsspannung.

von Teo D. (teoderix)


Lesenswert?

Felix N. schrieb:
> Teo schrieb:
>> Das kann man ja mal schnell zwischen den "Umbauten" erledigen.
>
> Wer hat den gesagt das alle LEDs auf einmal leuchten sollen? Die sollen
> was darstellen in abhängigkeit zu was anderem. zB. CPU Last. Dann
> brauche ich auch noch ne Matrix Schaltung für die normalen RGB leds.

Was ein zusammenhangloser Kauderwelsch.... Langsam verstehe ich das 
Problem.


PS: Etwas mehr Kontext:
Teo schrieb:
> Felix N. schrieb:
>> Teo D. schrieb:
>>> Schmeiß den Scheiß raus und betreibe die "paar" LED mit 3,3V und gut is.
>>
>> Ein "paar" wären so 17 LEDs.
>
> Was soll ich dazu sagen. Bei Zwei auf dem Breadboard, funst es prima.
> Mit 17 LEDs und evtl. beidseitig eingespeist, sollte das denke ich auch
> gehen.
> Das kann man ja mal schnell zwischen den "Umbauten" erledigen.

von jo (Gast)


Angehängte Dateien:

Lesenswert?

Stefan ⛄ F. schrieb:
>> Muss dazu sagen das ich das ganze mittlerweile
>> auf einen Steckbrett getestet habe
>
> Schon schlecht.

Wie gutes Prototyping geht, lässt sich z.B. bei Jim Williams abkucken.
http://readingjimwilliams.blogspot.com/2012/09/ee-prototyping-2.html
(hier habe ich mir auch das Foto eep103.jpg ausgeliehen)

Was da so geht, zeigt 
https://www.edn.com/jim-williams-with-a-breadboard/

Weitere Beispiele gibt es in der AN-47 von LT auf S.42.

Da steht auch eine ganze Menge drin zum Aufbau und zur Messtechnik.

*** Ein absolutes MUST READ! ***

(BTW: AN-70 lohnt sich auch - nicht nur wenn es um Schaltregler geht...)

Prinzip ist immer dasselbe: eine FR-4 Platte mit Cu nach oben. Das ist 
GND, Rest ist frei fliegend. Falls notwendig (nur bei KALTEN Signalen!) 
klebt (lötet) man da ein kleines Stück FR-4 (ev. doppelseitig) als 
Lötstützpunkt drauf.

Jim, RIP!


PS: Jim Williams war ein genialer Analog-Entwicker und Autor (schrieb 
viele App-Notes für LT) - und ein Kumpel von Bob Pease.
[ siehe https://en.wikipedia.org/wiki/Jim_Williams_(analog_designer) ]

von HildeK (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Das kann nicht sein, diese Transistoren können locker die hundertfache
> Frequenz schalten. Ich denke, deine Schaltung entspricht aus Versehen
> nicht dem, was du denkst.

Ich stimme deinem zweiten. Satz zu, nicht aber dem ersten: du kannst mit 
einer einfachen Emitterschaltung und den Standardtransistoren vielleicht 
3-5MHz erreichen, ganz sicher nicht das Hundertfache!
Zeig mir mal einen Plan oder besser noch eine Simulation, bei der das 
gehen soll.

von Stefan F. (Gast)


Angehängte Dateien:

Lesenswert?

HildeK schrieb:
> du kannst mit einer einfachen Emitterschaltung und den
> Standardtransistoren vielleicht 3-5MHz erreichen

Ja OK, dennoch sind die Probleme mit den gezeigten Bauteilen nicht 
erklärbar. Da sind irgendwo erhebliche Kapazitäten verborgen.

Felix, hast du die Basis-Schaltung ausprobiert?

Also wie im Angehängten Bild, nur dass bei dir links die LED hin gehört. 
Dazu kannst du jeden beliebigen kleinen NPN Transistor verwenden. Nimm 
ruhig niederohmige Widerstände, zum Beispiel 470Ω und 4,7kΩ.

von jo (Gast)


Angehängte Dateien:

Lesenswert?

Felix N. schrieb:
> jo schrieb:
>> Für den SOT-23 Schalttransistor deiner Wahl darfst Dir die Werte selber
>> raussuchen.
>
> Mein Datenblatt enthält nur ein Diagramm und das ist hfe vs Ic
>
> https://cdn-reichelt.de/documents/datenblatt/A200/UZBC849X-TO-BC850X_E.pdf

Der BC850 ist kein Schalttransistor.

Anhang:
grün: Steuerspannung 3.3V
blau: Vce vom BC847B  (BC850 ist bei mir nicht hinterlegt)
rot: Vce vom 2N2369

Die referenzierten Transistormodelle habe ich nicht überprüft!!!

Für'n Test habe ich die Frequenz auf 100 kHz gelegt. Bei 1MHz zickt der 
"NF-Transistor" BC847 nämlich ziemlich rum.
Setz die Zeiten (in V1 und .tran) mal auf 1/10 runter (1MHz) und wundere 
dich ...

Ich verwende LTSpice XVII vom 4. Mai 2018 (unter Wine).

Inhalt TSchalt.asc zum selber probieren:
Version 4
SHEET 1 880 680
WIRE 336 -272 336 -304
WIRE 336 -144 336 -192
WIRE 768 -144 336 -144
WIRE 768 -80 768 -144
WIRE 336 -64 336 -144
WIRE 768 80 768 0
WIRE 528 128 -16 128
WIRE 704 128 608 128
WIRE 336 208 336 16
WIRE -16 256 -16 128
WIRE 96 256 -16 256
WIRE 272 256 176 256
WIRE 768 288 768 176
WIRE -16 304 -16 256
WIRE -16 416 -16 384
WIRE 336 416 336 304
FLAG 336 416 0
FLAG -16 416 0
FLAG 336 -304 0
FLAG 768 288 0
SYMBOL res 192 240 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R1
SYMATTR Value 1k
SYMBOL res 352 32 R180
WINDOW 0 36 76 Left 2
WINDOW 3 36 40 Left 2
SYMATTR InstName R2
SYMATTR Value 200
SYMBOL voltage -16 288 R0
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR InstName V1
SYMATTR Value PULSE(0 3.3 0 0 0 5u 10u 2)
SYMBOL voltage 336 -176 R180
WINDOW 0 24 96 Left 2
WINDOW 3 24 16 Left 2
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR InstName V2
SYMATTR Value 5
SYMBOL npn 272 208 R0
SYMATTR InstName Q1
SYMATTR Value BC847B
SYMBOL res 784 16 R180
WINDOW 0 36 76 Left 2
WINDOW 3 36 40 Left 2
SYMATTR InstName R3
SYMATTR Value 200
SYMBOL npn 704 80 R0
SYMATTR InstName Q2
SYMATTR Value 2N2369
SYMBOL res 624 112 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R4
SYMATTR Value 1k
TEXT 518 312 Left 2 !.tran 22u

von mIstA (Gast)


Lesenswert?

Hab jetzt nicht alles komplett gelesen, darum weiß ich nicht ob Du schon 
irgendwo erwähnt hast, woher Deine 5,1V zur Versorgung des LED-Streifens 
kommen. Ein leichtes Absenken dieser Versorgungsspannung (auf 4,7V) 
sollte Dich jedenfalls auch problemlos ans Ziel bringen.

von HildeK (Gast)



Lesenswert?

jo schrieb:
> Der BC850 ist kein Schalttransistor.
Braucht man dazu auch nicht.

> Für'n Test habe ich die Frequenz auf 100 kHz gelegt. Bei 1MHz zickt der
> "NF-Transistor" BC847 nämlich ziemlich rum.
> Setz die Zeiten (in V1 und .tran) mal auf 1/10 runter (1MHz) und wundere
> dich ...
Ja, wenn man das darin versteckte Problem nicht kennt, dann schon. Im 
Anhang deine Simulation, leicht modifiziert, und schon geht es mit 1MHz 
problemlos!
Du übersteuerst den BC847 nämlich maßlos. Damit geht er stark in 
Sättigung und braucht entsprechend lange, bis er wieder sperrt.
Abgesehen davon: nimm alternativ den BC547B, damit geht es auch in 
deiner Schaltung - so viel zu den hinterlegten Transistormodellen ... Ob 
das vom 2N2369 besser modelliert ist?

Abhilfen: R1 größer, dafür ein kleines C parallel. Und die Diode D1, die 
verhindert, dass der Transistor in die Sättigung geht. Siehe Anhang.
Mit der Zusatzbeschaltung simuliert der BC847 sogar besser als der 
2N2369.

> Inhalt TSchalt.asc zum selber probieren:
TSchalt.asc kann man auch als File anhängen; ist weit sinnvoller!

von jo (Gast)


Lesenswert?

HildeK schrieb:

> jo schrieb:
>> Der BC850 ist kein Schalttransistor.
> Braucht man dazu auch nicht.

Erklärt aber, wieso Felix die für Schalttransistoren relevanten Daten 
nicht im Datenblatt findet...

>> Für'n Test habe ich die Frequenz auf 100 kHz gelegt. Bei 1MHz zickt der
>> "NF-Transistor" BC847 nämlich ziemlich rum.
>> Setz die Zeiten (in V1 und .tran) mal auf 1/10 runter (1MHz) und wundere
>> dich ...

> Ja, wenn man das darin versteckte Problem nicht kennt, dann schon. Im
> Anhang deine Simulation, leicht modifiziert, und schon geht es mit 1MHz
> problemlos!
> Du übersteuerst den BC847 nämlich maßlos. Damit geht er stark in
> Sättigung und braucht entsprechend lange, bis er wieder sperrt.

Die Dimensionierung habe ich aus gutem Grund dem Thread entnommen.
Felix hatte den Basiswiderstand zu 3Meg berechnet, das Ergebnis dann 
aber selbst hinterfragt:
: Was nimmt man dann da 10K oder 100K? [08.10.2021 14:11]

Die Antwort darauf war:
: Wenn die Quelle es hergibt: 1k oder auch weniger; [08.10.2021 15:08]

Witzig ist auch, dass Felix diese massive Übersteuerung messtechnisch 
nachgewiesen hatte [10.10.2021 13:08]:
: Zum Testen habe ich jetzt mein Frequenzgenerator ausgepackt und ein
: Rechtecksignal mit 800KHz erzeugt [...]
: Das Problem bei den BC850C Transistoren(Die die ich auch auf der 
Platine
: verbaut habe) ist egal welche Widerstände oder Kondensatoren(10pF bis
: 1nF) ich nehme alles über 400KHz bleibt bei einem HIGH Pegel.

Ich erinnere dazu auch an meinen Post vom [10.10.2021 17:16]:
: Das haben andere längst für dich ausprobiert...

> Abgesehen davon: nimm alternativ den BC547B, damit geht es auch in
> deiner Schaltung - so viel zu den hinterlegten Transistormodellen ... Ob
> das vom 2N2369 besser modelliert ist?

Wie schon gesagt: Ich habe in diesem speziellen Fall die Modelle nicht 
überprüft. Meiner Erfahrung nach sollte man das aber, wenn man sich in 
Grenzbereichen bewegt, schon irgendwann tun.

Solange die Modelle von LT kommen, würde ich denen aber zunächst mal 
blindlings vertrauen. Denn tut man das nicht, müsste man sich erst mal 
mit Transistormodellen beschäftigen ...

> Abhilfen: R1 größer, dafür ein kleines C parallel. Und die Diode D1, die
> verhindert, dass der Transistor in die Sättigung geht. Siehe Anhang.
> Mit der Zusatzbeschaltung simuliert der BC847 sogar besser als der
> 2N2369.

Danke für den Hinweis. Im Gegensatz zu vielen anderen habe ich das "High 
Speed Switching Transistor Handbook" gelesen - sogar in der 
Printversion.

Wenn man Felix' Platine retten will, halte ich deine "Tricks" aber für 
leicht überzogen. Ich denke, es wäre eine unnötige Fummelei, da C und D1 
noch unterzubringen.

>> Inhalt TSchalt.asc zum selber probieren:
> TSchalt.asc kann man auch als File anhängen; ist weit sinnvoller!

Da hast du recht. Als Gast kann ich aber leider nur eine Datei anhängen. 
Und da waren mir die Simulationsergebnisse einfach wichtiger ...

von HildeK (Gast)


Lesenswert?

jo schrieb:
> Solange die Modelle von LT kommen, würde ich denen aber zunächst mal
> blindlings vertrauen.

Naja, ich habe heute mit deiner Schaltung festgestellt, dass es sehr 
wohl Unterschiede zwischen dem BC547 und dem BC847 gibt. Die sollten 
sich eigentlich fast identisch verhalten, bis auf die Gehäuseeinflüsse. 
Beide Modelle sind in LTSpice dabei (soweit ich weiß).

jo schrieb:
> Die Dimensionierung habe ich aus gutem Grund dem Thread entnommen.
> Felix hatte den Basiswiderstand zu 3Meg berechnet, das Ergebnis dann
> aber selbst hinterfragt:
> : Was nimmt man dann da 10K oder 100K? [08.10.2021 14:11]
>
> Die Antwort darauf war:
> : Wenn die Quelle es hergibt: 1k oder auch weniger; [08.10.2021 15:08]
Ja, da hast du recht, da war meine Antwort nicht ganz korrekt - ich 
hatte es mit dem BC547 simuliert, dessen Modell wohl nicht so perfekt 
ist. Aber den Grad der Übersteuerung kann man für ein einzelnes Exemplar 
ggf. durch einen ausgesuchten Basiswiderstand einstellen (heißt: 
ausmessen und ist dann nur funktional für bestimmte Randbedingungen - 
als unbrauchbar), generell wird man aber niederohmig bleiben wollen, um 
die Basis beim Abschalten schneller auszuräumen. Dabei übersteuert man 
dann zu sehr. Ein etwas höherer Basiswiderstand und die 50pF parallel 
dazu verbessert das etwas. Am meisten bringt die Diode, weil sie die 
vollständige Sättigung verhindert.

> Wenn man Felix' Platine retten will, halte ich deine "Tricks" aber für
> leicht überzogen. Ich denke, es wäre eine unnötige Fummelei, da C und D1
> noch unterzubringen.
Das sind keine Tricks, sondern einfache Notwendigkeiten, um mit 
Transistoren auch im MHz-Bereich noch schalten zu können. Bei einer 
professionellen Schaltung würde man ein Redesign machen, im Hobbybereich 
ist eine kleine 'Fummelei' kein Beinbruch. C1 huckepack auf den 
Transistor, und für eine bedrahtete 1N4148 hätte es auch noch Raum.
Natürlich ist die Beschaffung des 2N2369 auch eine Alternative, falls 
dessen Modell der Realität entsprach. Bin vorsichtig geworden in meinen 
Aussagen mit den Erfahrungen BC547 vs. BC847 😀.

> Als Gast kann ich aber leider nur eine Datei anhängen.
Ich bin auch als Gast hier unterwegs und habe schon mehrfach mehr als 
eine Datei angehängt. Z.B. hier: 
Beitrag "Re: WS2812B 800KHz PWM mit Transistor Pegelwandler"
Das geht schon: Nach der Auswahl der ersten Datei den Button 'Weitere 
Datei anhängen' drücken. Probier es mal im Testforum aus.

von Teo D. (teoderix)


Lesenswert?

HildeK schrieb:
>> Als Gast kann ich aber leider nur eine Datei anhängen.
> Ich bin auch als Gast hier unterwegs und habe schon mehrfach mehr als
> eine Datei angehängt. Z.B. hier:
> Beitrag "Re: WS2812B 800KHz PWM mit Transistor Pegelwandler"
> Das geht schon: Nach der Auswahl der ersten Datei den Button 'Weitere
> Datei anhängen' drücken. Probier es mal im Testforum aus.

Is schon was merkwürdig, denn die hieraus resultierende "Fehlbedienung", 
liegt meist darin (wenn nicht IMMER) das die Dateien doppelt angehängt 
werden.... Wie "erfrischend" mal wieder auf einen "Andersdenker" zu 
treffen, ... der nicht Bindel heißt. ;DDD


PS: Man hätte es auch mit einem weiteren Beitrag......

von jo (Gast)


Lesenswert?

HildeK schrieb:
> jo schrieb:
>> Solange die Modelle von LT kommen, würde ich denen aber zunächst mal
>> blindlings vertrauen.

> Naja, ich habe heute mit deiner Schaltung festgestellt, dass es sehr
> wohl Unterschiede zwischen dem BC547 und dem BC847 gibt. Die sollten
> sich eigentlich fast identisch verhalten, bis auf die Gehäuseeinflüsse.
> Beide Modelle sind in LTSpice dabei (soweit ich weiß).

Ich hatte mich da missverständlich ausgedrückt; gemeint hatte ich, von 
wem die Modelle letztendlich parametrisiert wurden. Und da traue ich LT 
eine ganze Menge zu.

Daten für BJT-Modelle kommen aber typischerweise NICHT von LT. LT hat 
(wimre bis auf eine Ausnahme, einen Längstransistor für einen 
LowDrop-Regler) bei Transistoren nie die Finger im Spiel hatte.

Was LT dem Programm an Modell-Parametern beilegt, kommt von anderen 
Herstellern, im Fall des BC547B, BC847B und 2N2369 wohl von NXP (Ableger 
von Philips).

Die TR (reverse transit time) scheint mir beim BC547B mit 10e-32 sek 
jedenfalls etwas suspekt.

Das PSpice Modell von ON Semiconductor (Motorola Abkömmlig) meint, dass 
beim BC547 ein BTR von 1e-07 passen würde.

Damit scheinen mir die 9e-8 des BC847B schon eher glaubhaft.

Der TF-Block (ideal forward transit time) dürfte auch noch reinspielen. 
Aber das mag untersuchen, wer will.

BC547B: TF=4.391E-10 XTF=120 VTF=2.643 ITF=0.7495
BC847B: TF=4.908E-10 XTF=9.51 VTF=2.927 ITF=0.3131
ON: TF=5.7202e-10 XTF=4.45797 VTF=26.03 ITF=0.487193
2N2369: Tf=227.6p Xtf=4 Vtf=4 Itf=.3 (umsortiert)

Jedenfalls liegt auch hier der BC547B mit XTF=120 (coefficient for bias 
dependence of Tf) irgendwo weit daneben.

Aber bewertet das mal besser selber ...

PS: Nur der Vollständigkeit halber hier die kompletten Modelle
1
.model BC547B NPN(IS=2.39E-14 NF=1.008 ISE=3.545E-15 NE=1.541 BF=294.3 IKF=0.1357 VAF=63.2 NR=1.004 ISC=6.272E-14 NC=1.243 BR=7.946 IKR=0.1144 VAR=25.9 RB=1 IRB=1.00E-06 RBM=1 RE=0.4683 RC=0.85 XTB=0 EG=1.11 XTI=3 CJE=1.358E-11 VJE=0.65 MJE=0.3279 TF=4.391E-10 XTF=120 VTF=2.643 ITF=0.7495 PTF=0 CJC=3.728E-12 VJC=0.3997 MJC=0.2955 XCJC=0.6193 TR=1.00E-32 CJS=0 VJS=0.75 MJS=0.333 FC=0.9579 Vceo=45 Icrating=100m mfg=NXP)
1
.model BC847B NPN(IS=1.822E-14 NF=0.9932 ISE=2.894E-16 NE=1.4 BF=324.4 IKF=0.109 VAF=82 NR=0.9931 ISC=9.982E-12 NC=1.763 BR=8.29 IKR=0.09 VAR=17.9 RB=10 IRB=5.00E-06 RBM=5 RE=0.649 RC=0.7014 XTB=0 EG=1.11 XTI=3 CJE=1.244E-11 VJE=0.7579 MJE=0.3656 TF=4.908E-10 XTF=9.51 VTF=2.927 ITF=0.3131 PTF=0 CJC=3.347E-12 VJC=0.5463 MJC=0.391 XCJC=0.6193 TR=9.00E-08 CJS=0 VJS=0.75 MJS=0.333 FC=0.979 Vceo=45 Icrating=100m mfg=NXP)
1
.model 2N2369 NPN(Is=44.14f Xti=3 Eg=1.11 Vaf=100 Bf=78.32 Ne=1.389 Ise=91.95f Ikf=.3498 Xtb=1.5 Br=12.69m Nc=2 Isc=0 Ikr=0 Rc=.6 Cjc=2.83p Mjc=86.19m Vjc=.75 Fc=.5 Cje=4.5p Mje=.2418 Vje=.75 Tr=1.073u Tf=227.6p Itf=.3 Vtf=4 Xtf=4 Rb=10 Vceo=15 Icrating=200m mfg=NXP)
1
.MODEL Qbc547b npn
2
+IS=7.443e-11 BF=1343.59 NF=1.42606 VAF=80.4901
3
+IKF=0.427163 ISE=2.4623e-10 NE=2.73946 BR=62.79
4
+NR=1.5 VAR=1.0092 IKR=4.27163 ISC=2.4623e-10
5
+NC=1.9119 RB=0.1 IRB=0.1 RBM=0.1
6
+RE=0.579065 RC=3.01102 XTB=0.1 XTI=2.25359
7
+EG=1.05 CJE=7.34106e-12 VJE=0.586136 MJE=0.33309
8
+TF=5.7202e-10 XTF=4.45797 VTF=26.03 ITF=0.487193
9
+CJC=4.04665e-12 VJC=0.95 MJC=0.343664 XCJC=0.799994
10
+FC=0.8 CJS=0 VJS=0.75 MJS=0.5
11
+TR=1e-07 PTF=0 KF=0 AF=1

von HildeK (Gast)


Lesenswert?

Die Spiceparameter sagen mir eh nicht besonders viel, zumindest die 
meisten.

jo schrieb:
> Das PSpice Modell von ON Semiconductor (Motorola Abkömmlig) meint, dass
> beim BC547 ein BTR von 1e-07 passen würde.
>
> Damit scheinen mir die 9e-8 des BC847B schon eher glaubhaft.
BTR? Meinst du TR?
Die beiden Werte sind doch fast gleich? 90e-9 und 100e-9. Ablagen haben 
die meisten Parameter; manchmal auch 50% und mehr. Ich vermute, diese 
Parameter sind sowieso nicht alle vollständig unabhängig voneinander. 
Ich wundere mich sowieso über die teils auf 6 Stellen angegebenen Werte 
...

Jedoch bei TR (9e-8 und 1e-32) sind die Unterschiede schon massiv. Und 
der Parameter ist wohl verantwortlich für das unterschiedliche 
Zeitverhalten. Soll wohl bei dem BC547-Modell quasi 'Null' sein.
Darauf bin ich vermutlich hereingefallen.

Hier hat mal jemand was gefunden: 
https://www.mikrocontroller.net/attachment/168555/Modeling_BJTs_in_Multisim.pdf

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Felix N. schrieb:
> Nur weiß ich nicht ob der Timer mit Open Drain bei PWM umgehen kann also
> das der IO via Pull-Up auf +5V hochgezogen wird wie das @Stefan schon
> mal vorgeschlagen hat.

Das Prinzip OpenDrain + Pullup für WS2812 wird auch im Projekt 
WordClock mit WS2812 verwendet. Das funktioniert einwandfrei. 
Verwendet wird ein externer 1k8 Widerstand am OpenDrain-Ausgang.

Wie die Signale dann am Ausgang aussehen, kann man im WordClock-Thread 
in Beitrag "Re: WordClock mit WS2812" 
nachlesen.

(Tatsächlich ist es so, dass die SW vorab testet, ob ein externer Pullup 
angeschlossen ist. Zunächst wird nämlich der interne Pulldown aktiviert 
und dann der Logik-Level am Ausgang gemessen. Ist dieser High, wird auf 
OpenDrain umgeschaltet, sonst auf PushPull.)

: Bearbeitet durch Moderator
von Felix N. (felix_n888)


Angehängte Dateien:

Lesenswert?

jo schrieb:
> Das haben andere längst für dich ausprobiert...

Hallo,

Das glaube ich dir sofort. Elektronik gibt es ja schon ein bisschen 
länger :)

Stefan ⛄ F. schrieb:
> Du hast vielleicht irgendwo eine falsche
> Leitung zu einem relativ großen Kondensator von weit mehr als den
> üblichen parasitären Werten.

Nein. Ich habe jetzt wohl eine Lösung gefunden die Akzeptabel zu seien 
scheint. Habe mal davon ein Bild angehängt getestet ist das ganze mit 
den BC850C Transistoren die ich auch auf der Platine verbaut habe.

Stefan ⛄ F. schrieb:
> Schon schlecht.

Ja ich weiß das hohe Frequenzen auf Steckbretten nicht so gut sind wegen 
Kapazitäten und so. Habe die letzten Versuche wieder in der alten guten 
Luftverdrahtung durchgeführt.

Stefan ⛄ F. schrieb:
> Die Oberwellen haben höhere Frequenzen und solche Lichterketten sind bei
> manchen Leuten länger als 5 Meter.

Neee also 5 Meter überschreite ich bei weiten nicht es werden zwischen 
17-20 LEDs davon benötigt das macht bei 144 LEDs je Meter etwa 25-30cm 
gesamt Länge.

Stefan ⛄ F. schrieb:
> Wenn der Pin 5V tolerant ist, dann ist er es. Das hat nichts mit dem
> Timer zu tun.

Ja das weiß ich dafür ist ja die interne Struktur des STM32 für 
Verantwortlich. Meine Frage war bzgl Open Drain also wenn der Pin nicht 
als Push-Pull läuft. Dann kann der Pin ja nur nach Masse gezogen werden 
um eine 0 darzustellen ob das möglich ist oder ob der Timer eine 
Push-Pull Konfiguration des IOs benötigt um zu funktionieren.

Stefan ⛄ F. schrieb:
> Aber solange da nichts ist, was die
> 3,3V absichtlich verzögert einschaltet, wird diese Fehler-Situation
> niemals eintreten.

Ne also zusätzlich verzögert wird da nix. Die 3,3V werden von einem 
AMS1117 in der fix 3.3V Version aus den 5,2V erzeugt.

mIstA schrieb:
> Ein leichtes Absenken dieser Versorgungsspannung (auf 4,7V)
> sollte Dich jedenfalls auch problemlos ans Ziel bringen.

Das wäre mir zu riskant. Der 3,3V Regler(AMS1117) hat eine Dropout 
Voltage von Typisch 1,1V und maximal 1,3V bei mir liefert der 3,3V 
Regler eine Spannung von 3,378V. Wenn die 1,3V wirklich zu tragen kommen 
sollten müsste die Eingangsspannung höher als 4,67V liegen da sind mir 
4,7V zu wenig.

Mit den +5V wird ein FTDI232RL Chip versorgt so spare ich mir den 
externen Oszillator für den USB zu UART Wandler. Desweitern versorgt 
dieser die RGB LEDs.

Stefan ⛄ F. schrieb:
> Felix, hast du die Basis-Schaltung ausprobiert?

Ja habe ich, damit würde es ganz gut funktionieren. Nur leider lässt 
sich diese nicht auf mein bestehendes Layout ohne großes umbauen 
umbauen. Da zB. der Transistor in der Basisschaltung kein GND hat. Ich 
aber auf der Platine ein GND Pad habe sonst hätte man die anderen 
Leiterbahnen durchtrennen und Drähte oder so angelötet.

HildeK schrieb:
> Abhilfen: R1 größer, dafür ein kleines C parallel. Und die Diode D1, die
> verhindert, dass der Transistor in die Sättigung geht.

Warum ist das eigentlich so? Also den Kondensator verstehe ich ja noch 
irgendwo das er ein schnelles Umladen der Basis ermöglich sollen aber 
was genau macht die Diode? Und warum zum Kollektor hin? Also es 
funktioniert das habe ich jetzt selber gesehen aber der Transistor 
besteht ja im Prinzip selber aus zwei Dioden. Wie genau hilft da die 
zusätzliche Diode?

jo schrieb:
> Schalttransistoren relevanten Daten
> nicht im Datenblatt findet...

Er ist als "NPN general purpose tranistors" betitelt. Datenblatt ist von 
08/1998 als Anwendungen sind "General purpose swichting and 
amplification" angegeben.

HildeK schrieb:
> Ein etwas höherer Basiswiderstand und die 50pF parallel
> dazu verbessert das etwas

Also ich habe zum testen eine normal 1N4148 Diode zwischen Basis und 
Kollektor geschaltet als Kondensator habe ich ein 47pF 
Scheibenkondensator genommen.

Bin heute extra nochmal zu einem Elektroladen in der Nähe gefahren und 
habe mir diverse kleine Scheibenkondensatoren zwischen 10pF bis 100pF 
besorgt zum testen. Jedoch konnte ich keinen wirklichen Unterschied 
zwischen den ganzen Kondensatoren feststellen.

Also genau gesagt habe ich nix auf dem Oszi großartig gesehen wenn ich 
ein anderen Kondensator angeschlossen habe.

Für den Basiswiderstand habe ich später ein Poti angeklemmt und einfach 
gedreht bei 1,425kOhm habe ich genau das gleiche Tastverhältnis von 
Eingangssignal und Ausgangssignal. Nun 1,425kOhm wird es nicht geben das 
nächste was ich hier hätte in SMD wären 1,3kOhm und 1,5kOhm muss nochmal 
schauen was ich da nehmen werde.

Den Widerstand für den Arbeitsstrom des ersten Transistors habe ich 
220Ohm wie es hier empfohlen wurde genommen. 100 Ohm ändert ein bisschen 
was jedoch steigt die Stromaufnahme nur am meisten ohne wirkliche 
Veränderung. Für den Arbeitsstrom des zweiten Transistors habe ich ein 
Widerstand von 510 Ohm genommen bei 1kOhm waren die Flanken doch schon 
sehr kurvig. Bei 220Ohm wurden die Flanken nicht mehr steiler als 
jetzt(Siehe angehängtes Bild) nur der Strom stieg. Habe da jetzt 510 Ohm 
genommen.

Warum wird das Tastverhältnis bei steigend Basiswiderstand kleiner? 
Müsste nicht eigentlich ein kleiner Basiswiderstand die Basis schneller 
ausräumen als ein größerer Widerstand?

Bin mir nicht sicher aber die Flanken sind längst nicht so steil mehr 
wie die die vom STM32 rausgegeben werden sollte daher diese Schaltung 
ein bisschen die EMV verbessern @Stefan?

Was sagt ihr zu der Angehängten Schaltung? Ist das so okay wie das 
aufgezeichnet habe, mit den angehängten Oszi Bildern? Bevor ich jetzt 
alles umbrate auf der Platine?

c-hater schrieb:
> C1 verbessert die Eigenschaften der Schaltung erheblich, stellt
> allerdings auch ziemlichen Streß für die Quelle dar. Ein guter AVR8
> könnte das problemlos ab, eine schrottiger STM32 wahrscheinlich nicht,
> jedenfalls nicht dauerhaft.

Hätte hierzu nochmal eine Frage ich habe jetzt ja ein 47pF Kondensator 
drin. Laut Multimeter(Auch wenn es bei 800KHz vermutlich nicht richtig 
misst) fließen dort 1,7mA in die Basis rein. Das Signal welches auf den 
einem Oszilloskop Bild dargestellt (blaue Linie) zeigt die Ausgabe des 
PWM Signals des STM32 vom Pegel her ist es schon abgesunken auf rund 
500mV statt 3,3V. Liegt das an der Eingangsbeschaltung sprich Widerstand 
+ Kondensator oder ist der IO Pin des STM32 jetzt wirklich so stark 
belastet das die Spannung so stark einbricht? Was auf dauer den IO des 
STM zerstören könnte?

Mfg

von Teo D. (teoderix)


Lesenswert?

Felix N. schrieb:
> HildeK schrieb:
>> Abhilfen: R1 größer, dafür ein kleines C parallel. Und die Diode D1, die
>> verhindert, dass der Transistor in die Sättigung geht.
>
> Warum ist das eigentlich so? Also den Kondensator verstehe ich ja noch
> irgendwo das er ein schnelles Umladen der Basis ermöglich sollen aber
> was genau macht die Diode? Und warum zum Kollektor hin? Also es
> funktioniert das habe ich jetzt selber gesehen aber der Transistor
> besteht ja im Prinzip selber aus zwei Dioden. Wie genau hilft da die
> zusätzliche Diode?

Sinkt UCE unter UF der Diode, "zapft" diese den Basisatom ab -> UCE ~ UF 
-> keine Übersättigung -> schnell(er).
Gugst du mal nach Schottky-Transistor.

von HildeK (Gast)


Lesenswert?

Felix N. schrieb:
> HildeK schrieb:
>
>> Abhilfen: R1 größer, dafür ein kleines C parallel. Und die Diode D1, die
>> verhindert, dass der Transistor in die Sättigung geht.
>
> Warum ist das eigentlich so? Also den Kondensator verstehe ich ja noch
> irgendwo das er ein schnelles Umladen der Basis ermöglich sollen aber
> was genau macht die Diode? Und warum zum Kollektor hin? Also es
> funktioniert das habe ich jetzt selber gesehen aber der Transistor
> besteht ja im Prinzip selber aus zwei Dioden. Wie genau hilft da die
> zusätzliche Diode?

Die Diode verhindert, dass der Transistor voll in Sättigung geht. Wenn 
der T fast durchgeschaltet ist fängt die Diode an, einen Teil des 
Basisstromes abzuzweigen, der dann über C nach E und GND fließt. Der 
Transistor schaltet dann schneller wieder von LOW nach HIGH, weil er 
weniger stark in der Sättigung ist.
Auch der etwas größere Basiswiderstand verringert die starke Sättigung: 
weniger Basisstrom, damit weniger Basisspannung und die Diode muss 
weniger vom Strom 'klauen'.

Der C über dem R_B lässt kurzzeitig einen größeren Strom fließen als 
alleine durch den R_B. Das führt am Kollektor zu steileren Flanken.
Alle Maßnahmen sollen die Reaktion des Transistors beschleunigen, 
insbesondere das sonst langsame Ausschalten des T, das zu einem 
veränderten Tastverhältnis führt.

Warum machst du den Kollektorwiderstand des ersten Transistors kleiner 
als vom zweiten? Der erste muss nur die Basis des zweiten treiben, der 
zweite jedoch ein Stück Leitung. Ich würde die Werte der beiden eher 
vertauschen ...

Felix N. schrieb:
> Jedoch konnte ich keinen wirklichen Unterschied zwischen den ganzen
> Kondensatoren feststellen.

Aber schon einen Unterschied, wenn kein Kondensator drin ist? Mach ihn 
so klein wie möglich. Natürlich belastet er den STM32-Ausgang. Aber auch 
der sollte mit 50pF, selbst direkt nach Masse, klarkommen.

von jo (Gast)


Angehängte Dateien:

Lesenswert?

HildeK schrieb:

> jo schrieb:
>> Das PSpice Modell von ON Semiconductor (Motorola Abkömmlig) meint, dass
>> beim BC547 ein BTR von 1e-07 passen würde.

Ich hatte nachträglich das "ein" reingeschlampert. Aus dem gewollten 
"beim BC547B ein TR ..." wurde dadurch "beim BC547 ein BTR ...".

Mein Fehler. Sorry für die Schlamperei.

> Die beiden Werte sind doch fast gleich? 90e-9 und 100e-9.

Das meinte ich damit:

BC547B NXP TR=1.00E-32
BC847B NTP TR=9.00E-08
BC547B ON TR=1.073u

O.9us und 1.07 us, also BC847B NTP und BC547B ON sind quasi gleich, 
BC547B NXP weicht davon massiv ab. 1.0e-32 sek, das wären 10 
Milliardstel einer Quadrillionstel Sekunde. Das kann einfach nicht ernst 
gemeint sein.

> Ich wundere mich sowieso über die teils auf 6 Stellen angegebenen Werte

ON generiert wohl ihre Modelle mit dem Tool MODPEX, (c) Symmetry Design 
Systems. Ich denke es liegt daran.

> www.mikrocontroller.net/attachment/168555/Modeling_BJTs_in_Multisim.pdf

Danke! Das Paper beschreibt, wie sich die von mir aufgelisteten 
Parameter TR und TF auf die parasitären Kapazitäten auswirken. Dient auf 
jeden Fall dem Verständnis.

Wer tiefer in die Eingeweide will:
https://www.youspice.com/spice-modeling-of-a-bjt-from-datasheet/

PS:
Habe mir eben noch mal die Mühe gemacht, ein "eigenes" Transistor-Modell 
ins Projekt reinzuziehen - eine in MyBJT umbenannte Kopie des 
fehlerhaften BC547B (NXP TR=1.00E-32).

Und tatsächlich: Ersetze ich dort TR=1.00E-32 durch TR=9.00E-08 verhält 
sich der simulierte Transistor richtig, zeigt also das auch von Felix 
gemessene Delay der steigenden Vce-Flanke.

FAZIT:
Ich würde das Modell des NXP BC547B nicht mehr verwenden, ev. aus der 
Library nehmen oder durch den ON BC547B ersetzen.

von Stefan F. (Gast)


Lesenswert?

Felix N. schrieb:
> ob der Timer eine Push-Pull Konfiguration des IOs benötigt

Braucht er nicht. Wie viele Bestätigungen brauchst du noch? Das war 
jetzt die vierte.

von HildeK (Gast)


Lesenswert?

jo schrieb:
> Das meinte ich damit:
>
> BC547B NXP TR=1.00E-32
> BC847B NTP TR=9.00E-08
> BC547B ON TR=1.073u
Ja, habe ich dann auch verstanden ... 😀
> O.9us und 1.07 us, also BC847B NTP und BC547B ON sind quasi gleich,
> BC547B NXP weicht davon massiv ab. 1.0e-32 sek, das wären 10
> Milliardstel einer Quadrillionstel Sekunde. Das kann einfach nicht ernst
> gemeint sein.
Richtig, das ist ein Fehler in dem Modell. Auf den bin ich zunächst 
reingefallen.

jo schrieb:
> Habe mir eben noch mal die Mühe gemacht, ein "eigenes" Transistor-Modell
> ins Projekt reinzuziehen - eine in MyBJT umbenannte Kopie des
> fehlerhaften BC547B (NXP TR=1.00E-32).
Ja, ich habe daraufhin dein oben genanntes Modell vom 'Qbc547b npn' mit 
in die 'standard.bjt' aufgenommen. Oder eben zukünftig nur den BC847 
nehmen.
Dieser Fehler mit TR=1.00E-32 ist auch vorhanden bei den anderen BC5xx!
Danke für die sachliche Diskussion zu dem Thema!

Ungeklärt ist nur noch, warum der TO am STM32-Ausgang nur ein paar 
hundert mV an Signalpegel misst. Das kann eigentlich nicht sein; sieht 
eher so aus, als ob der STM-Ausgang auf Open-Drain steht.
Selbst wenn das C über dem Basisvorwiderstand 100p beträgt, sollte der 
Strom durch das C und damit die erhöhte Belastung der Quelle in rund 
100ns abgeklungen sein und nur noch der Basiswiderstand wirken. Und 1.5k 
muss der STM32 treiben können!

Felix N. schrieb:
> Neee also 5 Meter überschreite ich bei weiten nicht es werden zwischen
> 17-20 LEDs davon benötigt das macht bei 144 LEDs je Meter etwa 25-30cm
> gesamt Länge.

Es geht nicht um die Länge des Stripes, sondern um die Länge der 
Zuleitung von der Schaltung zum Stripe. Innerhalb des Stripes 
regeneriert jede LED das Signal wieder.

von Felix N. (felix_n888)


Angehängte Dateien:

Lesenswert?

HildeK schrieb:
> Die Diode verhindert, dass der Transistor voll in Sättigung geht. Wenn
> der T fast durchgeschaltet ist fängt die Diode an, einen Teil des
> Basisstromes abzuzweigen, der dann über C nach E und GND fließt.

Morgen,

Ah ok danke für die Erklärung.

HildeK schrieb:
> Ich würde die Werte der beiden eher
> vertauschen ...

Ich habe die beiden Widerstände mal testweise getauscht macht aber kein 
großen Unterschied.

HildeK schrieb:
> Aber schon einen Unterschied, wenn kein Kondensator drin ist?

Ja im Tastverhältnis. Bei keinem Kondensator habe ich mittels des Potis 
an der Basis das Tastverhältnis gleich eingestellt wie das erzeugte PWM 
Signal. Schließe ich dann ein 47pF Kondensator an verringert sich das 
Tastverhältnis von 53 % auf 35 % bei 27pF ist von 53 % auf 17 %. Muss 
dann den Poti wieder anpassen.

HildeK schrieb:
> Natürlich belastet er den STM32-Ausgang. Aber auch
> der sollte mit 50pF, selbst direkt nach Masse, klarkommen.

Laut Datenblatt(DS10693 Rev 10) des STM32F446RET6 in 6.1.5 "Pin input 
voltage" Figure 16. Sind dortige Wert mit einem Kondensator von 50pF 
nach Masse getestet. Sollte also passen.

Stefan ⛄ F. schrieb:
> Braucht er nicht. Wie viele Bestätigungen brauchst du noch? Das war
> jetzt die vierte.

Is okay ich habs verstanden.

HildeK schrieb:
> Das kann eigentlich nicht sein; sieht
> eher so aus, als ob der STM-Ausgang auf Open-Drain steht.

Das kann eigentlich nicht sein. Konfiguriert ist es als Alternate 
Function, Push-Pull mit mittlerer Geschwindigkeit

Hier mal der Codeausschnitt von der Pin Initialisierung.
1
  GPIOA->MODER |= GPIO_MODER_MODE6_1;        //Configure PA6 as alternate function
2
  GPIOA->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR6_1;      //Set to medium speed
3
  GPIOA->OTYPER &= ~GPIO_OTYPER_OT6;          //Output push-pull
4
  GPIOA->AFR[0] |= GPIO_AFRL_AFRL6_1;          //Set alternate function to timer3

Was ich wohl noch festgestellt habe wenn ich mir die beiden Signale, 
also einmal das was aus dem STM32 rauskommt und das Signal was aus dem 
Pegelwandler rauskommt, anschaue dann wird der erste Impuls des RGB 
Signals falsch wiedergeben vom Pegelwandler. Bzw. er sollte eigentlich 
800ns High sein und 450ns Low. Ist aber 250ns High und 400ns Low. Habe 
mal ein Bild vom Logikanaylzer angehängt. Woran kann das liegen?

Mfg

von Stefan F. (Gast)


Lesenswert?

Felix N. schrieb:
> GPIOA->OTYPER &= ~GPIO_OTYPER_OT6;          //Output push-pull

Du löschst da ein Bit. Welchen Wert hatte OTYPER denn vorher?

In diesen Block würde ich weder &= noch |= verwenden sondern nur direkte 
Zuweisungen (=), damit genau das eingestellt wird, was an dieser Stelle 
im Quelltext steht.

von jo (Gast)


Angehängte Dateien:

Lesenswert?

Felix N. schrieb:
> HildeK schrieb:
>> Aber schon einen Unterschied, wenn kein Kondensator drin ist?
>
> Ja im Tastverhältnis. Bei keinem Kondensator habe ich mittels des Potis
> an der Basis das Tastverhältnis gleich eingestellt wie das erzeugte PWM
> Signal. Schließe ich dann ein 47pF Kondensator an verringert sich das
> Tastverhältnis von 53 % auf 35 % bei 27pF ist von 53 % auf 17 %. Muss
> dann den Poti wieder anpassen.

Macht es so viel Umstand, mal einen anderen Transistor zu testen? (siehe 
Anhang)

In der Simulation würde ich zuerst mal D1 und C weglassen - und einfach 
Transistoren durchtauschen. Wenn es der Spur nach tut, kannst immern 
noch Hildes Verbesserungen einfließen lassen.

von HildeK (Gast)


Angehängte Dateien:

Lesenswert?

Der 2N5089 dürfte nicht so schnell aufzutreiben sein.
Und, du schaust die Simulation noch immer mit 100kHz an. Das Protokoll 
läuft aber mit 800kHz und die Codierung steckt in der Pulslänge.
Auch bei dem Transistor wirken 10pF schon deutlich, 22pF wären sehr gut.

von jo (Gast)


Lesenswert?

HildeK schrieb:
> Der 2N5089 dürfte nicht so schnell aufzutreiben sein.
> Und, du schaust die Simulation noch immer mit 100kHz an. Das Protokoll
> läuft aber mit 800kHz und die Codierung steckt in der Pulslänge.
> Auch bei dem Transistor wirken 10pF schon deutlich, 22pF wären sehr gut.

Richtig, die 100kHz sind an der Anwendung vorbei. Ich hatte die niedrige 
mit Absicht drin gelassen, weil sonst mit dem BC847B ohne Tricks (*) 
eine Flat-Line angezeigt würde.

Die Idee ist, in der Simulation mal mit verschiedenen Transistoren zu 
spielen - einfach um ein Gefühl zu bekommen was geht und was nicht.

(Das Fiasko mit dem untauglichen BC547-Modell hat hier natürlich 
gestört.)

Schnelle Transistoren hat nicht jeder rumliegen. Ich habe sowas in der 
Bonbondose.

(*) Wie von dir schon angemerkt sind das keine Taschenspieler-Tricks, 
sondern anerkannte Maßnahmen, um bei sehr schnellen Schaltungen 
überhaupt zu einem Ergebnis zu kommen.

von Hans_Dampf (Gast)


Lesenswert?

… und warum kein Bauteil, das für sowas vorgesehen ist, wie z.B.
74LVC1G126? Braucht im sot23-5 soviel Platz wie allein ein Transistor in 
den obigen Schaltungen.

von Hans_Dampf (Gast)


Lesenswert?

Hans_Dampf schrieb:
> … und warum kein Bauteil, das für sowas vorgesehen ist, wie z.B.
> 74LVC1G126? Braucht im sot23-5 soviel Platz wie allein ein Transistor in
> den obigen Schaltungen.

Sorry, LVC will 0,7*VCC. 74HCT1G126 ist da besser geeignet (High Level 
ab 1,6V)

von Uwe S. (bullshit-bingo)


Lesenswert?

Hans_Dampf schrieb:
> … und warum kein Bauteil, das für sowas vorgesehen ist, wie z.B.
> 74LVC1G126?

Vielleicht will der TO nicht komplett verdummen, so wie Abermillionen 
Leute mit deiner Einstellung?
Es ist erschreckend genug, daß er und etliche andere zur Lösung dieses 
popligen Problems ca. 100 Beiträge brauchten. Wenn der TO nach deiner 
Vorstellung verfährt, fragt er in 10 Jahren, an welchem Baum Platinen 
wachsen.

von Felix N. (felix_n888)


Lesenswert?

Stefan ⛄ F. schrieb:
> Du löschst da ein Bit. Welchen Wert hatte OTYPER denn vorher?

Hi,

Also OTYPER hat den Reset Wert 0x00000000. Ich lösche das Bit zur 
Sicherheit das der Pin wirklich auf Push-Pull steht auch wenn er das 
nach einem Reset sein sollte.

jo schrieb:
> Macht es so viel Umstand, mal einen anderen Transistor zu testen? (siehe
> Anhang)

Nein natürlich nicht. Nur was bringt es mir das ganze mit einem BF199 
oder BC547B zu testen in THT Bauform wenn ich diese nicht auf meiner 
Platine unterbringen kann? Nur habe ich mittlerweile auch festgestellt 
das gerade in diesem Bereich die Simulation teils nicht stimmt. 
Beispielsweise die Schaltung vom Eröffnungsbeitrag mit dem TSM2302 
MOSFet und dem BC850C als Treiber. Funktioniert in der Simulation super. 
Anstiegszeit ist zwar nicht so steil aber ausreichend. Die Realität 
sagte wieder was anderes das es bei 800KHz nicht funktionierte.

jo schrieb:
> In der Simulation würde ich zuerst mal D1 und C weglassen - und einfach
> Transistoren durchtauschen. Wenn es der Spur nach tut, kannst immern
> noch Hildes Verbesserungen einfließen lassen.

Mein Ziel mit diesen Beitrag war es irgendwie die Platine quasi zu 
"retten" natürlich könnte ich die ganze Schaltung rausnehmen aus dem 
Schaltplan durch ein einfachen Pegelwandler IC im 5 Pinnigen IC Gehäuse 
dafür einbauen. Die Platine für 27 Euro neu bestellen und alle Teile von 
der alten unterlöten/neu kaufen und wieder auflöten. Nur ist das 
wirklich sinn der Sache? Desweitern müsste ich wenn ich ein passenden 
Transistor gefunden hätte immer noch mehr Teile finden um diese 
Bestellen zu können.

Daher wollte ich gerne irgendwie noch retten. Ob da jetzt eine Diode 
drüber gelötet oder ein Kondensator irgendwo huckepack drauf gelötet ist 
stört mich nicht ich würde ja auch die Leiterbahnen ändern für eine 
Basisschaltung nur lässt sich das durch das GND Pad welches auf der 
Platine vorhanden ist nicht umsetzten.

Hans_Dampf schrieb:
> … und warum kein Bauteil, das für sowas vorgesehen ist, wie z.B.
> 74LVC1G126?

Hast du überhaupt den Erstellungspost gelesen? Nein? Denn dann wüsstest 
du das ich bereits gemerkt habe das meine Schaltungsidee misst war und 
ein solchen Pegelwandler besser gewesen wäre.

An sich funktioniert nun auch alles mit dem Pegelwandler nur die ersten 
beiden Impulse des PWM-Signals sind zu kurz. Damit meine ich das zB. als 
erstes 800ns das Signal HIGH sein sollte danach dann 450ns LOW. Das 
Signal welches dann aus dem Pegelwandler raus kommt ist dann aber 200ns 
HIGH und 400ns LOW. Habe es versucht durch den Dutycycle zu kompensieren 
jedoch habe ich da kein Sweet Spot gefunden. Für eine Logisch 1 ist der 
PWM Wert 36 (ARR bei 54), bei dem ersten Impuls alles unter 40 bleibt 
bei 200ns/400ns HIGH/LOW bei 41 ist das Signal dann schon 1000us/250ns 
HIGH/LOW.

Hat jemand ne Idee woran das liegen könnte das die ersten Impulse zu 
lang/zu kurz ausfallen. Die restlichen Impulse sind sonst in Ordnung.

Wenn ich das STM32 Signal direkt auf die LEDs drauf gebe hat das zu 
mindestens heute gut funktioniert das die LEDs so arbeiten wie ich das 
will. Jedoch müsste der HIGH Pegel bei mindestens 3,6V liegen, da die 
LEDs mit 5,2V versorgt werden. Die erreiche ich mit dem STM32 längst 
nicht maximal 3,25 bis 3,32V. Es wurden ja mal die neuen WS2812B von 
glaubig 2018 erwähnt die nur 2,6V als HIGH benötigten. Ob diese auf dem 
LED Streifen verbaut sind weiß ich jedoch nicht laut Datenblatt für Rev. 
5 der LED wird auch kein externer Kondensator mehr benötigt um die LED 
ans laufen zu bekommen. Diese kleinen 100nF Kondensator sind jedoch bei 
meinem LED-Streifen neben jeder Diode verbaut.

Mfg

: Bearbeitet durch User
von jo (Gast)


Lesenswert?

Felix N. schrieb:
> jo schrieb:
>> Macht es so viel Umstand, mal einen anderen Transistor zu testen? (siehe
>> Anhang)
>
> Nein natürlich nicht. Nur was bringt es mir das ganze mit einem BF199
> oder BC547B zu testen in THT Bauform wenn ich diese nicht auf meiner
> Platine unterbringen kann? Nur habe ich mittlerweile auch festgestellt
> das gerade in diesem Bereich die Simulation teils nicht stimmt.

Zum BF199 kann ich nichts sagen und mit einen BC547 würde ich mich nicht 
abgeben. Wo meine Präferenz liegen würde, habe ich dir schon am 
08.10.2021 15:02 aufgezeigt. Delays um die 1ns - sofern die Taktquelle 
schnell genug ist - wären damit vermutlich machbar (RB 2k2 || 10nF).

Auch, dass du einen SOT-23 Schalttransistor deiner Wahl selber 
raussuchen darfst. Schließlich ist das deine Schaltung und nicht meine.

> Nur habe ich mittlerweile auch festgestellt das gerade in diesem
> Bereich die Simulation [mit SPICE] teils nicht stimmt.

Man muss SPICE nicht unbedingt mögen. Bob Pease schrieb darüber: "Spice 
just happens to be one of my pet peeves, and I will start gnawing on its 
ankles today". (Electronic Design, November 1990)

Seitdem ist viel Zeit vergangen und SPICE hat sich weiter entwickelt. 
Wenn die Modelle was taugen (was sie nicht immer tun, siehe NXP BC547B) 
und man nicht in Bereichen rumsimuliert, für welche die Bauteile/Modelle 
nicht gemacht sind, hauen die Ergebnisse mEn eigentlich ganz gut hin.

PS:  Mir lief vor einiger Zeit ein PMBT2369 übern Weg. Ist vielleicht 
ein Versuch wert, aber wissen tu ich es nicht.

just my 2ct

von jo (Gast)


Lesenswert?

Sorry, "... wären damit vermutlich machbar (RB 2k2 || 10nF)" ist 
Quatsch. Muss natürlich 10pF heißen.

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.