Forum: Analoge Elektronik und Schaltungstechnik Wie bekomme ich LED am Controller völlig dunkel


von Michael P. (Firma: n.a.) (micha1102)


Angehängte Dateien:

Lesenswert?

Hallo alle zusammen,

die Schaltung, wie ich sie vor geraumer Zeit unter

Beitrag "Viel mehr Spaß mit einfachen LED - Teil 2"

im Forum beschrieben hatte, läuft eigentlich recht gut. Beim Chinesen 
habe ich mir dazu paar Platinen machen lassen, weil Freunde auch so ein 
Ding haben wollten.

Einen kleinen Schönheitsfehler hat die ganze Sache nun aber doch. Und 
dazu meine Frage an euch. Wenn ich sehr hellstrahlende LED verwende, 
sieht man im Dunklen gelegentlich auch eine ganz schwach leuchten, die 
laut Programm eigentlich aus sein sollte.

Die Schaltung arbeitet komplett mit Multiplexing und PWM zur 
Helligkeitssteuerung. Das Einfügen einer kompletten Dunkeltastung aller 
LED nach jedem Leuchtimpuls, um ein eventuelles Übersprechen zu 
verhindern, bringt nichts.

Die Platine sieht eigentlich auch sauber geätzt aus und Flussmittelreste 
sind alle entfernt.

Eine LED habe ich probehalber mal in Serie mit einem 2,2 Megaohm 
Widerstand an ein LNG gehängt. Bereits bei 3,1 Volt (!) erscheint ein 
etwa gleichstarkes Leuchten an der LED.

Habt ihr eine Idee, wie ich das unerwünschte Leuchten weg bekomme?

Am naheliegendsten erscheint, einfach je einen SMD-Widerstand ca. 1 
Megaohm parallel zu jedem LED-Paar auf die Platine zu löten.
Wegen dem Charlieplexing (in meiner Schaltung treiben 9 Pins im 
tristate-mode individuell 60 LEDs), bei dem an jedem Pin mehrere 
LED-Paare hängen, würde das aber wohl die ganze Logik durcheinander 
bringen.

Im Bild ist der Anschluss der LED am Controller symbolisch dargestellt.
Der Leuchteffekt ist nur bei totaler Dunkelheit sichtbar und stört kaum. 
Trotzdem würde ich gern wissen, ob es für die gegebene Schaltung eine 
grundsätzliche Lösung gibt. Bei LED mit geringerer Strahlungsleistung 
tritt der Effekt übrigens garnicht auf.

Beste Grüße
Micha

von Stefan F. (Gast)


Lesenswert?

Wenn Pin A und Pin B beide auf Low oder High liegen, kann die LED 
unmöglich leuchten.

Möglicherweise liegt ein Softwarefehler vor.

von Peter II (Gast)


Lesenswert?

wie ist PinA und PinB geschaltet wenn sie leuchtet?

von Peter II (Gast)


Lesenswert?

Peter II schrieb:
wie ist PinA und PinB geschaltet wenn sie leuchtet (und nicht leuchtet 
soll)?

von 123 (Gast)


Lesenswert?

Stefan U. schrieb:
> Möglicherweise liegt ein Softwarefehler vor.

LOW ist klar, aber vielleicht ist es auf HIGH durchaus möglich?

Immerhin liegt eine Spannung an. Und sollte im Controller irgendwie eine 
Potenzialdifferenz an den Pins entstanden sein, dürfte eine leichtes 
glimmen erkennbar sein.

So gut kenne ich mich aber mit der Materie aber nicht aus und daher ist 
es nur eine Vermutung!

von Wolfgang (Gast)


Lesenswert?

Michael P. schrieb:
> Eine LED habe ich probehalber mal in Serie mit einem 2,2 Megaohm
> Widerstand an ein LNG gehängt. Bereits bei 3,1 Volt (!) erscheint ein
> etwa gleichstarkes Leuchten an der LED.

Warum soll eine LED bei 3.1V nicht leuchten? Die Flussspannung bei 
kleinen Strömen wird sicher unter den auf der Tüte angegebenen 3.2 .. 
3.3V liegen.

Was heißt "gleichstarkes Leuchten"? In Relation wozu?

von A. S. (Gast)


Lesenswert?

Dass 1µA eine LED zum leuchten bringt, liegt einfach daran, dass 1mA bei 
Hochleistungs-LEDs ja schon grell ist und das Auge logarithmisch 
arbeitet.

Wenn Du Charlieplexing betreibst, bitte ein konkretes, minimales 
Schaltbild poste und die Ansteuerlogik dazu. Dann kann man ggf. 
abschätzen, wo noch ein paar ns Totzeit hinzu kommen sollten. Wenn es 
aber nicht stört, oder Du eh keinen Oscar hast, dann schiebe es einfach 
auf Schaltzeiten (in mikrocode/Logic UND Ausgangstreiber des µC) und 
parasitäre Kapazitäten.

von Peter II (Gast)


Lesenswert?

123 schrieb:
> Immerhin liegt eine Spannung an. Und sollte im Controller irgendwie eine
> Potenzialdifferenz an den Pins entstanden sein, dürfte eine leichtes
> glimmen erkennbar sein.

die leichten Potenzialdifferenz kommen aber nicht auf 3V!

von A. S. (Gast)


Lesenswert?

Wolfgang schrieb:
> Warum soll eine LED bei 3.1V nicht leuchten? Die Flussspannung bei
> kleinen Strömen wird sicher unter den auf der Tüte angegebenen 3.2 ..
> 3.3V liegen.

Die LEDs werden auch deutlich unter 3V schon gut leuchten.

Der TO wundert sich, dass sie das trotz 2.2MOhm@3.1V schon tun. (also 
vermutlich so etwa 0.2µA, Größenordnungsmäßig.)

von Michael P. (Firma: n.a.) (micha1102)


Lesenswert?

Achim S. schrieb:
> bitte ein konkretes, minimales
> Schaltbild poste und die Ansteuerlogik dazu.

Ich wollte mich nicht wiederholen und habe deshalb nur den Link zu den 
Details angegeben.

Peter II schrieb:
> wie ist PinA und PinB geschaltet wenn sie leuchtet (und nicht leuchtet
> soll)?

Die Wahrheitstabelle sieht folgendermaßen aus

PinA  PinB  LEDA  LEDB

L     L      -     -
H     H      -     -
H     L     ON     -
L     H     -      ON
INP   INP   -      -
INP   L     -      -
INP   H     -      -
L     INP   -      -
H     INP   -      -

   .... alle anderen Kombinationen : beide LED aus

Die Software läuft mit weniger leuchtstarken LED tadellos!

Beste Grüße
Micha

von Eberhard H. (sepic) Benutzerseite


Angehängte Dateien:

Lesenswert?

Michael P. schrieb:
> Die Schaltung arbeitet komplett mit Multiplexing und PWM zur
> Helligkeitssteuerung. Das Einfügen einer kompletten Dunkeltastung aller
> LED nach jedem Leuchtimpuls, um ein eventuelles Übersprechen zu
> verhindern, bringt nichts.

Hast Du beim Dunkeltasten alle Port-Pins RC[5:0] und RA[2:0] 
gleichzeitig auf LOW gelegt? Für wie lange? Per Scope überprüft?

PS: Habe mir erlaubt, Deinen Schaltplan zum besseren Verständnis aus dem 
genannten Link einzufügen.

von Jens P. (picler)


Lesenswert?

Michael P. schrieb:
> Habt ihr eine Idee, wie ich das unerwünschte Leuchten weg bekomme?

Ich hatte ganz früher bei einer Multiplexansteuerung einer vierstelligen 
LED-Anzeige mal den Fehler gemacht, dass ich die Anzeige eine Stelle 
weiter geschaltet habe und erst danach die Segmentdaten für die neue 
Stelle ausgegeben habe. Dieser kurze zeitliche Versatz von ein paar 
Dutzend µs hat gereicht, dass in der Dunkelheit immer die Segmente der 
vorherigen Stelle durchschimmerten.

Die Lösung war simpel, vorm ändern der Stelle einfach die Segmentdaten 
dunkeltasten. Ich kenne das verwendete Charlieplexing nicht, könnte mir 
aber vorstellen, das dein Problem in die gleiche Richtung geht.

von Michael P. (Firma: n.a.) (micha1102)


Lesenswert?

Eberhard H. schrieb:
> Hast Du beim Dunkeltasten alle Port-Pins RC[5:0] und RA[2:0]
> gleichzeitig auf LOW gelegt?

Bei Charlieplexing ist ein Dunkeltasten aller LED prinzipiell nur 
möglich, indem alle steuernden Pins auf INPUT, also hochohmig, 
geschaltet werden.

Bei mir in der Schaltung hängen 30 antiparallele LED-Paare an 9 Pins, 
also
immer mehrere einseitig an einer einzelnen Leitung.

von Eberhard H. (sepic) Benutzerseite


Lesenswert?

Michael P. schrieb:
> Bei Charlieplexing ist ein Dunkeltasten aller LED prinzipiell nur
> möglich, indem alle steuernden Pins auf INPUT, also hochohmig,
> geschaltet werden.

Es sollte ja nicht allzu schwierig sein, alle genannten Port-Pins zum 
Dunkeltasten gleichzeitig aktiv (= OUTPUT) auf LOW zu ziehen anstatt 
hierzu alle auf INPUT zu schalten.

Oder was spricht dagegen?

von MWS (Gast)


Lesenswert?

Bei AVRs wäre es die Ursache, wenn ein Ausgang auf Eingang umgeschaltet 
wird, der vorher High war, dann ist der Pullup aktiv und liefert etwas 
Strom. Auch eine falsche Umschaltung, d.h erst auf Input und dann auf 
Low würde zumindest für kurze Zeit etwas Strom fließen lassen. Bei PICs 
gibt's den weak pullup, der aber offenbar bei den meisten PICs nur für 
ganze Ports gesetzt werden kann. Evtl. mal in die Richtung suchen, ob im 
Quellcode RBU gesetzt wird.

von GeGe (Gast)


Lesenswert?

Der PIC hat doch zwei Ports zu je 6bits. (Port_A und Port_C)
Selbst wenn man direkt beide nacheinander auf Eingang schaltet vergehen 
dazwischen doch mindestens 200ns (bei 20Mhz Takt).
Das kann schon ausreichen das die immer kurz aufblitzen, welches als 
schwaches leuchten wahrgenommen wird.
Wetten wenn du Port_A und Port_C andersrum hochohmig schaltest, leuchten 
andere LED schwach auf.
Gruß Gerd

von Wolfgang (Gast)


Lesenswert?

Michael P. schrieb:
> Bei Charlieplexing ist ein Dunkeltasten aller LED prinzipiell nur
> möglich, indem alle steuernden Pins auf INPUT, also hochohmig,
> geschaltet werden.

Ich vermute mal, dass die für das Charlieplexing benutzen Pins alles 
DIOs sind.

Warum irgendeine LED leuchten können soll, wenn man nicht alle Pins auf 
INPUT sondern z.B. auf OUTPUT L oder H schaltet, ist mir nicht 
einleuchtend.

von gjhfhsf (Gast)


Lesenswert?

Ich wuerde als erstes Testen, ob das Leuchten getaktet ist.
Dazu einfach die LES im Dunkeln schnell bewegen, dann sollte man das 
Takten sehen. Mit einer ueberschlaegigen Rechnung kann man dann noch die 
Frequenz und das Taktverhaeltnis schaetzen.

gjhfhsf

von Michael P. (Firma: n.a.) (micha1102)


Lesenswert?

MWS schrieb:
> ist der Pullup aktiv und liefert etwas
> Strom.

Guter Hinweis. Aber alle Pullups sind komplett abgeschaltet.

Eberhard H. schrieb:
> Oder was spricht dagegen?

Habe alle Varianten zum Dunkeltasten (alles H, alles L, alles INP) 
getestet.
Ich habe auch die Länge der Austastung variiert. Bei zu langer Auszeit 
nimmt die Grundhelligkeit unweigerlich ab. Es hilft aber auch nicht.

Ob mit oder ohne Dunkelpause, das leichte Aufleuchten passiert ja immer 
nur sporadisch auf, bei irgendwelchen Kombinationen von an anderer 
Stelle gleichzeitig leuchtenden LED.

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Michael.

Michael P. schrieb:

> Einen kleinen Schönheitsfehler hat die ganze Sache nun aber doch. Und
> dazu meine Frage an euch. Wenn ich sehr hellstrahlende LED verwende,
> sieht man im Dunklen gelegentlich auch eine ganz schwach leuchten, die
> laut Programm eigentlich aus sein sollte.

Ich hatte mal ein ähnliches Problem mit Optokopplern. Das "ganz schwache 
Leuchten" war alledings in diesem Fall für die Funktion der Schaltung 
fatal.

Die Schaltausgänge des Controllers bzw. die eines Treibers (ULN2803) 
liessen noch genug Strom durch, um einen Optokoppler zu schalten.
Der Schaltausgang eines 555 hat aber gelegentlich auch dieses Problem.

Meine Lösung war, vor den Optokoppler eine z-Diode (3,9V) zu schalten, 
deren Schwelle erst überwunden werden muss, um den Optokoppler 
anzusteuern.

In einem anderen, ähnlich gelagerten Fall langte dafür sogar die 
Flussspannung einer 1N4148, die ich vor den Optokoppler geschaltet 
hatte.
Dort war allerdings auch die treibende Spannung geringer.

Leuchtdioden haben eine sehr flache Kennlinie. Die Kennlinie einer 
1N4148 oder die einer Z-Diode in Sperrrichtung sinde deutlich steiler.

Der Unterschied zwischen Deinem Fall und meinen Fällen: Bei mir handelte 
es sich um statische Signale, Du aber Multiplext. D.h. ein AUS bei mir 
bedeutete geringe Spannung und ein EIN hohe. Du schaltest immer mit 
voller Spannung, und ein EIN bedeutet lange an, und ein AUS (sehr) kurz 
an.
Du könntest dazwischen einen Brückenschluss machen, indem Du über die 
Dioden (Kette) einen kleinen Kondensator legst. Zusammen mit dem 
Vorwiderstand hast Du dann einen mittelnden, glättenden Tiefpass.

Das Problem ist die richtige Größe des Kondensators. Wenn er zu klein 
ist, wirkt er nicht, ist er zu groß, leuchtet die LED aus dem 
Kondensatorinhalt nach, was u.U. auch unerwünscht ist. Das Entladen des 
Kondensators würde ein Widerstand über den Kondensator beschleunigen. 
Ist er zu groß, geht die LED nicht mehr an, bzw. Du verbrauchst zuviel 
Strom.

Kondensator und Vorwiderstand und Bleederwiderstand müssen also auf die 
Multiplexfrequenz, die Summenspannung der Diodenkette und Deinen 
benötigten Strom abgestimmt werden.

Noch ein Unterschied zwischen Deiner und meiner Schaltung damals: Du 
hast eine möglicherweise blaue LED mit über 3V Vorwärtsspannung, und nur 
vermutlich knapp 3,3V Spannungsversorgung. Ich dagegen hatte 5V bzw. 12V 
Versorgungsspannung und die Optokoppler hatten eine Vorwärtspannung von 
1,35V (CNY17) und somit hatte ich eine sehr komfortable Marge um damit 
zu schalten. Auf der anderen Seite war die Anoednung mit den nur 1,35V 
Flussspannung auch sehr empfindlich gegen Restströme.

Du müsstest aber jetzt erst einmal Feststellen, was genau bei Dir den 
Effekt verursacht. Entweder Deine Ausgänge machen schon eine ausreichend 
hoche Spannungsdifferenz zum Leuchten, selbst wenn sie beide 
gleichzeitig High oder low sind, oder trotz eigentlich "AUS" Zustand 
treten aus welchen Gründen auch immer, noch ganz kurze Pulse auf, die 
LED leuchten lassen.

Das könntest Du mit einem Oszilloskop überprüfen. Mit etwas Geschick 
könnte aber ein Multimeter langen, wenn Du mal einen Kondensator wie 
beschrieben einschaltest und die geglättete Spannung misst.
In Falle der kurzen "Spannungspulse" sollte ein ausreichend großer 
leckarmer Kondensator auf jeden Fall irgendeine Wirkung zeigen.

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

: Bearbeitet durch User
von Michael P. (Firma: n.a.) (micha1102)


Lesenswert?

Bernd W. schrieb:
> Ich hatte mal ein ähnliches Problem

Wow. Danke, die ausführliche Antwort muß ich erstmal im Detail 
verarbeiten.
Melde mich dann später wieder.

Beste Grüße
Micha

von GeGe (Gast)


Lesenswert?

Michael P. schrieb:
> Ob mit oder ohne Dunkelpause, das leichte Aufleuchten passiert ja immer
> nur sporadisch auf, bei irgendwelchen Kombinationen von an anderer
> Stelle gleichzeitig leuchtenden LED.

Das nenn ich mal nen Hinweis!
Port_A und Port_C kann man ja nicht gleichzeitig abschalten, ein 
Befehlszyklus vergeht da dazwischen mindestens. Wenn genau dazwischen 
noch ein Interrupt auftritt dauert das eben genau da mal länger, passt 
dann exakt zum Fehlerbild.


Gruß Gerd

von Eberhard H. (sepic) Benutzerseite


Lesenswert?

Michael P. schrieb:
> Ob mit oder ohne Dunkelpause, das leichte Aufleuchten passiert ja immer
> nur sporadisch auf, bei irgendwelchen Kombinationen von an anderer
> Stelle gleichzeitig leuchtenden LED.

Dann würde ich erst einmal untersuchen, ob es ein dynamisches Problem 
ist (sprich beim Umschalten der einzelnen Zustände) oder ein statisches 
(unsicherer 3. Zustand während die Port-Pins der betroffenen 
LED-Anschlüsse als Eingang geschaltet sind).

Letzteres könntest du herausfinden, indem du die Blink-Orgie um 
mindestens den Faktor 10 langsamer machst. Dann dauert das Warten auf 
den Störenfried halt auch entsprechend länger - aber auch der 
unerwünschte Zustand.
Oder eben ein Scope nehmen (keinesfalls einen Logic-Analyzer).

Falls es tatsächlich ein Problem mit dem 3. Zustand ist (der beim 
Charlieplexen keine unwesentliche Rolle spielt), kann ich dir weitere 
Tipps geben, wie man dies möglicherweise in den Griff bekommt.

Auf jeden Fall würde ich der ganzen Schaltung einen größeren 
Puffer-Kondensator spendieren. Nur 100nF sind bei deiner Applikation auf 
jeden Fall viel zu wenig.

: Bearbeitet durch User
von yesitsme (Gast)


Angehängte Dateien:

Lesenswert?

Hmm...

hab mal den Schaltplan ein wenig ausgedünnt und frage mich, was da alles 
leuchtet.

(Und was passiert wenn nicht die LEDs den Vorwiderstand bekommen sondern 
die Portpins)

von Stefan F. (Gast)


Lesenswert?

Ich schätze, dass Widerstände pro Port-Pin (anstatt pro LED) effektiv 
zur Parallelschaltung von LED's führt, mit den damit verbundenen 
Nachteilen.

von yesitsme (Gast)


Angehängte Dateien:

Lesenswert?

Was sind die Nachteile dieser Schaltung?

von Cyborg (Gast)


Lesenswert?

yesitsme schrieb:
> Was sind die Nachteile dieser Schaltung?

Unterschiedliche Teilspannungen und damit unterschiedliche Teilströme.

Wenn man nach Charlieplexing googelt findet man das Problem da
auch erwähnt.
http://www.elektronik-labor.de/AVR/Charlieplexing.html
Wenn man einen Ausgang hochohmig schaltet, sucht sich der Strom
eben einen anderen Weg auch wenn der über eine andere LED geht.
Vermutlich bekommt man das nur über ein Hystertese in den Griff.

von Michael P. (Firma: n.a.) (micha1102)


Lesenswert?

Hallo, bin nun auch wieder mit an Bord. Danke für die vielen wertvollen 
Hinweise. Ich muss mich da jetzt erstmal reinlesen.

Einen Oszi oder LA habe ich leider nicht.

GeGe schrieb:
> Das nenn ich mal nen Hinweis!
> Port_A und Port_C kann man ja nicht gleichzeitig abschalten, ein
> Befehlszyklus vergeht da dazwischen mindestens. Wenn genau dazwischen
> noch ein Interrupt auftritt dauert das eben genau da mal länger, passt
> dann exakt zum Fehlerbild.

Völlig korrekt, komisch ist eben nur, dass bei weniger starken LED alles 
problemlos läuft, mit identischer Software.

Vielleicht liegt es ja auch daran, dass das Charlieplexing hier noch 
massiv von einer PWM überlagert wird. Ich glaube, der Controller kommt 
dabei ganz schön ins Schwitzen...

Im komplett statischen Betrieb tritt das Leuchten nicht auf. Es gibt 
auch viele schnelle Lichtmuster, wo keinerlei Flimmern erkennbar ist.
Ich werde noch mal ein kurzes Video dazu reinstellen, wo der Effekt zu 
sehen ist.

Beste Grüße

Micha

von Michael P. (Firma: n.a.) (micha1102)


Lesenswert?

Eberhard H. schrieb:
> kann ich dir weitere
> Tipps geben, wie man dies möglicherweise in den Griff bekommt.

Dieses Angebot nehme ich hiermit gerne an!
Werde nun auch mal in der Bucht nach einem brauchbaren LA Ausschau 
halten. Der hilft bei solchen Problemen bestimmt weiter.

Beste Grüße

Micha

von Huh (Gast)


Lesenswert?

Michael P. schrieb:
> Eberhard H. schrieb:
>> kann ich dir weitere
>> Tipps geben, wie man dies möglicherweise in den Griff bekommt.
>
> Dieses Angebot nehme ich hiermit gerne an!
> Werde nun auch mal in der Bucht nach einem brauchbaren LA Ausschau
> halten. Der hilft bei solchen Problemen bestimmt weiter.
>
> Beste Grüße
>
> Micha

Du willst das Angebot annehmen und im gleichen Atemzug machst du das, 
was er ausdrücklich ausgeschlossen hat?

Eberhard H. schrieb:
> Oder eben ein Scope nehmen (keinesfalls einen Logic-Analyzer).

Lies nochmal in Ruhe alles durch, ja?

von Cyborg (Gast)


Lesenswert?

Michael P. schrieb:
> Der hilft bei solchen Problemen bestimmt weiter.

Nicht unbedingt, weil das wohl eher ein Analogproblem ist.

von Michael P. (Firma: n.a.) (micha1102)


Angehängte Dateien:

Lesenswert?

Hallo alle zusammen,

Huh schrieb:
> Du willst das Angebot annehmen und im gleichen Atemzug machst du das,
> was er ausdrücklich ausgeschlossen hat?

Wieso denn gleich so aufgeregt, es ist doch noch garnicht klar, woran es 
liegt. Was spricht gegen so einen LA? Soll ich mir gleich ein 
9-Kanal-Scope ;-)) wegen dem Problem in meiner Schaltung zulegen?

Einen Clip, in dem man das Flimmern gut sehen kann habe ich mal 
hochgeladen.

https://youtu.be/6CkWI8bSllk

Die Leucht-Muster sind wie immer automatisch generiert. Ich habe paar 
davon (wegen Zeitmangel wahllos) in Kurzfassung zusammengeschnitten.
Wenn man das Video in starker Zeitlupe abspielt, kann man das Leuchten 
besser erkennen.

Die Schaltung steckt hier mit angesetzten Lichtleitern in einer 
30cm-Reflektorschale aus V2A und dient sozusagen als Uhrwerk.

Beste Grüße

Micha

von Michael P. (Firma: n.a.) (micha1102)


Angehängte Dateien:

Lesenswert?

Eberhard H. schrieb:
> Auf jeden Fall würde ich der ganzen Schaltung einen größeren
> Puffer-Kondensator spendieren. Nur 100nF sind bei deiner Applikation auf
> jeden Fall viel zu wenig.

Das könnte eine heiße Spur sein.
Ich verwende normalerweise 100 nF-Kondensatoren wie im Bild gezeigt.
Die Toleranzangaben ergeben da eine Streuung zw. 80 und 180 nF.
Mit dem AVR-Transistortester (natürlich der von K.-H., nach Vorgabe 
kalibriert) habe ich gerade mal nachgemessen.
Es werden bei allen Proben nur Werte zw. 68 und 75 nF angezeigt.

Kann das eigentlich sein? Mein DMM kann leider solche kleinen Werte 
nicht korrekt messen.

Auf jeden Fall werde ich es jetzt mal mit größeren C-Werten versuchen 
und dann berichten.

Beste Grüße

Micha

von Huh (Gast)


Lesenswert?

Michael P. schrieb:
> Was spricht gegen so einen LA?

Bei einem LA kannst du NICHT sehen, wie hoch der Pegel der Leitungen 
ist. Er hat lediglich eine Schwelle, ab der er "high" anzeigt. Auch wenn 
die Schwelle nur knapp überschritten ist. Und darunter zeigt er "low" 
an, auch wenn die Schwelle nur knapp unterschritten ist. Und da wir hier 
den Fall haben, daß wir beurteilen möchten, wie hoch die Spannung an den 
einzelnen Pins ist, ist hier ein LA völlig fehl am Platz. OK? :-)

von Michael P. (Firma: n.a.) (micha1102)


Lesenswert?

Huh schrieb:
> OK? :-)

Leuchtet mir ein. Danke!

von Huh (Gast)


Lesenswert?

Michael P. schrieb:
> Huh schrieb:
>> OK? :-)
>
> Leuchtet mir ein. Danke!

Gerne

von google (Gast)


Lesenswert?

Michael P. schrieb:
>
>
> Youtube-Video "for upload"
>

[OT] Coole Musikwahl und tolles Video ... Danke.

von Andreas M. (amesser)


Lesenswert?

Erster Hinweis: Leuchtdioden haben eine, wenn auch minimale Kapazität, 
die dann am größten ist, wenn die Spannung gerade unter die Flusspannung 
der Led fällt, die Led also gerade aus geht (doof für diesen 
Anwendungsfall):
1
  ---o- C
2
 |   |
3
 V   V
4
 -   -
5
 |   |
6
 |    - A
7
  ----- B
Nehmen wir folgende Sequenz an:

1) Erste Led soll leuchten -> A ist INP, B ist Low, C ist high
2) Eine andere Led, hier nicht abgebildet, soll leuchten -> A ist Low, B 
ist High, C ist INP

Wenn das umschalten von 1) nach 2) so passiert, das C auf Input 
geschaltet wird und dann A auf Low, B auf High dann wird die in der 
Kapazität der ersten Diode gespeicherte Energie über die zweite Diode 
entladen, was einen kurzen Lichtblitz ergibt, obwohl diese gar nicht 
leuchten soll.

Man muss also bevor, man auf die nächste Led wechselt alle Ausgänge in 
den selben Zustand bringen (am besten High wegen der internen Pullups) 
um die Parasitären Kapazitäten zu entladen. Erst danach sollte man Pins 
auf Eingänge umschalten. Das Entladen braucht übrigens Zeit, rechne mal 
mit 500 pF Kapazität der Leuchtdiode. Ich würde sagen so 0.5-1µs 
Entladezeit müsste man da rechnen, mit den Vorwiderständen die Du 
benutzt.

Werden beim Globalen senken der An-Tastzeit also der Helligkeit auch die 
falschen Leds dunkler? Wenn ja, dann spricht das aber gegen diese 
Theorie :-)

2. Hinweis: Hast Du mal probiert ob zwei in Reihe geschaltete LEDs 
eventuell leicht glimmen?

Ich finde auch, das 100nF zu wenig sind. Bei der Schalterei würde ich da 
eher zweistellige µF auf der Spannungsversorgungsseite sehen.

Das Teil ansich ist ja recht witzig, genau das richtige für die vielen 
Leds in meinem Schrank...

Zeig doch mal deinen Quellcode für die Matrixsteuerung. Eventuell fehlt 
da auch noch was?

: Bearbeitet durch User
von Michael P. (Firma: n.a.) (micha1102)


Lesenswert?

Hallo alle zusammen,

nun ist wieder mal Zeit für das Thema. Erst einmal Danke allen für die 
zahlreichen Hinweise und Tips.

Eberhard H. schrieb:
> Es sollte ja nicht allzu schwierig sein, alle genannten Port-Pins zum
> Dunkeltasten gleichzeitig aktiv (= OUTPUT) auf LOW zu ziehen anstatt
> hierzu alle auf INPUT zu schalten.
>
> Oder was spricht dagegen?

Bei Charlieplexing und knappen Ressourcen ist es kaum umsetzbar. Es 
zählt jeder Takt. Und es ist in einer zeitkritischen Schleife ein 
riesengroßer Unterschied, ob ich zum Dunkeltasten aller LED nur 
(TRISA->EINGANG,TRISC->EINGANG) realisieren muss, oder jedesmal 
(PORTA->LOW,TRISA->AUSGANG,PORTC->LOW,TRISC->AUSGANG) ausführe.


Eberhard H. schrieb:
> Nur 100nF sind bei deiner Applikation auf
> jeden Fall viel zu wenig.

Ich glaube das täuscht etwas. Richtig ist, das intern pausenlos alle 4 
Register (TRISA,TRISC,PORTA,PORTC) umgeladen werden. Da bei dem 
Multiplexing hier aber jeweils maximal nur eine LED gleichzeitig ON sein 
kann, ergibt sich bei angenommenen 1,7V über dem 220 Ohm Widerstand an 
der leitenden LED nur knapp 8mA externe Strombelastung für den 
Controller. Dazu kommen noch die vielen stromarmen Dunkelphasen wegen 
der PWM-Steuerung.
Verbrauchsmessungen an der Stromversorgung bestätigen das auch.
Ich finde deshalb, das es hier von der Strombelastung der Schaltung her 
keine erhöhten Anforderungen gibt.


Andreas M. schrieb:
> Erster Hinweis: Leuchtdioden haben eine, wenn auch minimale Kapazität,
> die dann am größten ist, wenn die Spannung gerade unter die Flusspannung
> der Led fällt, die Led also gerade aus geht (doof für diesen
> Anwendungsfall)

Ein interessanter Ansatz.

Ich habe vorhin mit dem AVR-T-Tester mal paar neue und ältere weisse 5mm 
LED gemessen. Mit folgendem Ergebnis:

LED       Uf   C@0V    C@5V
         (V)   (pF)    (pF)
===========================

2014_1  2.88     13     9.8
2014_2  2.84     12     8.3
2014_3  2.87     12     8.2

2016_1  2.76     50      46
2016_2  2.76     48      44
2016_3  2.74     50      46

Demnach müssten die neuen (helleren LED) auch bei Uf eine ca. 4 mal 
höhere Kapazität haben. Das könnte tatsächlich ein Grund für das 
Aufleuchten beim Umschalten sein. Kennt jemand von euch da eine Abhilfe?


Andreas M. schrieb:
> Zeig doch mal deinen Quellcode für die Matrixsteuerung.

Wie das ganze Platinen-Layout ist auch die Software völlig handgehäkelt.
Alles in ASM für den PIC und ohne irgendwelche eingebundenen Libs. 
EEPROM und ProgramFlash vom Controller sind mittlerweile randvoll und 
jedes Bit im RAM wird zur Ereignissteuerung der state machine genutzt.
Bringt das da eigentlich Sinn, davon tausende Zeilen Sourcecode hier 
einzustellen?

Beste Grüße
Micha

von Michael P. (Firma: n.a.) (micha1102)


Angehängte Dateien:

Lesenswert?

Hallo alle zusammen,

ich habe wie bereits angeregt mal die Kapazitäten für die 
Spannungsversorgung erhöht. Auf die Platine aus dem Video habe ich 
testweise "huckepack" jeweils einen baugleichen C mit 100nF parallel zum 
bereits vorhandenen angelötet, so wie im beigefügten Schaltplan.

Das Ergebnis ist völlig unerwartet. Die Lichtblitze sind nun viel 
häufiger und deutlich stärker zu sehen!!! Wie kann das sein? Ist 
eventuell das Regelverhalten vom 78L05 Schuld?

Ich werde interessehalber noch mal den umgekehrten Weg gehen und es mit 
2x100nF in Serie, also bei halber Kapazität versuchen. Dazu muss ich 
jedoch erst die Platine freilegen und die Lichtleiter entfernen. Das 
dauert nur etwas...

Beste Grüße

Micha

von Paul B. (paul_baumann)


Lesenswert?

Michael P. schrieb:
> Ist
> eventuell das Regelverhalten vom 78L05 Schuld?

Das kann schon sein. Kannst Du den probehalber mal gegen einen 
"richtigen" 7805 mit TO220-Gehäuse tauschen? Ich habe mir mit so einem 
kleinen 78L05 mal eine große Fehlerquelle in ein Thermometer eingebaut.

MfG Paul

von michael_ (Gast)


Lesenswert?

Bei PWM hatte ich auch mal das Problem, dass eine LED nicht absolut 
dunkel war.
Selbst bei PWM 0 nicht. Beim AVR kamen da immer noch Nadelspitzen.
Ich mußte da das PWM deaktivieren, dann war Ruhe bzw. finster.

von Michael2 (Gast)


Lesenswert?

Habt ihr schonmal darüber nachgedacht den minimalen Strom, der die 
Leuchtdioden davon überzeugt zu leuchten, eben ganau an diesen vorbei zu 
leiten?

Ich nehme in solchen Fällen einen geeigneten Widerstand parallel zur LED 
und das Problem ist gelöst.

von Stefan F. (Gast)


Lesenswert?

> Ich nehme in solchen Fällen einen geeigneten Widerstand parallel zur
> LED und das Problem ist gelöst.

Das wird beim Charlieplexing wohl nicht ohne Seiteneffekte machbar sein. 
Es sei denn, du spendierst jeder LED eine weitere Diode + Widerstand. 
Diese Menge an Bauteilen führt allerdings das Charlieplexind ad 
absurdum.

von asdf (Gast)


Lesenswert?

michael_ schrieb:
> Selbst bei PWM 0 nicht. Beim AVR kamen da immer noch Nadelspitzen.

Da war die PWM also auch nicht 0.
Du hast ja selbst gesagt, daß noch Spitzen kamen.
Der Wert war vielleicht 0, aber die eigentliche PWM nicht. Hängt vom 
Modus ab.

von Thomas E. (picalic)


Lesenswert?

Stefan U. schrieb:
>> Ich nehme in solchen Fällen einen geeigneten Widerstand parallel zur
>> LED und das Problem ist gelöst.
>
> Das wird beim Charlieplexing wohl nicht ohne Seiteneffekte machbar sein.
> Es sei denn, du spendierst jeder LED eine weitere Diode + Widerstand.
> Diese Menge an Bauteilen führt allerdings das Charlieplexind ad
> absurdum.

Evtl. bringt es was, wenn man jeden Port über zwei Widerstände definiert 
auf halbe Versorgungsspannung zieht. Damit bleiben hochomig geschaltete 
Ausgänge nicht auf VCC- oder GND-Level und beim nächsten Einschalten des 
Ports ist der Spannungshub geringer (wg. Umladen der parasitären 
Kapazitäten!).
Sonst kann es auch sein, daß ausgeschaltete Augänge über die parasitären 
Kapazitäten über VCC bzw. GND-Potenzial getrieben werden und Strom durch 
die internen Schutzdioden fließt.

Michael P. schrieb:
> Ich werde interessehalber noch mal den umgekehrten Weg gehen und es mit
> 2x100nF in Serie, also bei halber Kapazität versuchen. Dazu muss ich
> jedoch erst die Platine freilegen und die Lichtleiter entfernen. Das
> dauert nur etwas...

Daß das Ergebnis überhaupt von den Kapazitäten in der 
Spannungsversorgung beeinflusst wird, zeigt, daß die Spannungsversorgung 
mangelhaft designt ist.
Die (zu kleinen) Kapazitäten hier noch zu halbieren, selbst rein zu 
Testzwecken, ist planloses Herumdoktoren an Symptomen und hat mit der 
Suche nach der Ursache und Lösung des Problems nichts zu tun.

von Klaus (Gast)


Lesenswert?

Was für ein Aufriss, nur um ein paar µC Pins durch Charlieplexing zu 
sparen

MfG Klaus

von Michael P. (Firma: n.a.) (micha1102)


Angehängte Dateien:

Lesenswert?

Hallo alle zusammen,

Paul B. schrieb:
> Kannst Du den probehalber mal gegen einen
> "richtigen" 7805 mit TO220-Gehäuse tauschen?

Guter Tip. Danke. Werde ich schnellstmöglich mal ausprobieren.

Stefan U. schrieb:
>> Ich nehme in solchen Fällen einen geeigneten Widerstand parallel zur
>> LED und das Problem ist gelöst.
>
> Das wird beim Charlieplexing wohl nicht ohne Seiteneffekte machbar sein.

Kann ich nur zustimmen. Eine Skizze zur Begründung habe ich mal 
beigefügt.

Das Tauschen der Kondensatoren bringt übrigens nichts. Ich habe es mit 
Werten von 0 - 1uF stufenweise getestet.

Thomas E. schrieb:
> zeigt, daß die Spannungsversorgung
> mangelhaft designt ist.

Deine Begründung bitte. Ich hatte am Controller bisher noch kein 
einziges Reset wegen Brown Out-Detect. (Sonst würde die Uhrzeit nicht 
mehr stimmen) Das Programm läuft wochenlang ohne Unterbrechung. Also 
kann es die Stromversorgung im Grunde nicht sein

(Zur Info noch: die Schaltung hängt immer an neuen 12V/8,2Ah 
Bleigel-Akkus, also an einer relativ niederohmigen Quelle. Akkus nur 
wegen der Pufferung für die Uhr)

Klaus schrieb:
> Was für ein Aufriss, nur um ein paar µC Pins durch Charlieplexing zu
> sparen

60 LED an 16 Pins in einer 10x6-Matrix auf einem 32Bit-MC laufen lassen? 
Worin liegt da noch der Reiz?

Soviel zum Stand der Dinge. Bin also weiterhin auf Fehlersuche. Könnte 
es eigentlich auch am Platinen-Design liegen (z.B. fehlende 
Masseflächen), was meint ihr? Ein aktuelles Muster ist im Bild zu sehen.

Beste Grüße

Micha

von michael_ (Gast)


Lesenswert?

asdf schrieb:
> Da war die PWM also auch nicht 0.
> Du hast ja selbst gesagt, daß noch Spitzen kamen.
> Der Wert war vielleicht 0, aber die eigentliche PWM nicht. Hängt vom
> Modus ab.

Es war AVR Hardware PWM.

von Erwin D. (Gast)


Lesenswert?

michael_ schrieb:
> asdf schrieb:
>> Da war die PWM also auch nicht 0.
>> Du hast ja selbst gesagt, daß noch Spitzen kamen.
>> Der Wert war vielleicht 0, aber die eigentliche PWM nicht. Hängt vom
>> Modus ab.
>
> Es war AVR Hardware PWM.

Es stimmt schon, daß es am Modus liegt.
Die Spikes treten bei "fast pwm" auf.
Zitat:
1
The extreme values for the OCR0A Register represents special cases
2
when generating a PWM waveform output in the fast PWM mode.
3
If the OCR0A is set equal to BOTTOM, the output will be
4
a narrow spike for each MAX+1 timer clock cycle. Setting the OCR0A
5
equal to MAX will result in a constantly high or low output
6
(depending on the polarity of the output set by the COM0A1:0 bits.)

Bei "phase correct" ist das nicht der Fall.
Zitat:
1
The extreme values for the OCR0A Register represent special cases
2
when generating a PWM waveform output in the phase correct PWM mode.
3
If the OCR0A is set equal to BOTTOM, the output will be continuously
4
low and if set equal to MAX the output will be continuously high
5
for non-inverted PWM mode.

von yesitsme (Gast)


Lesenswert?

Michael P. schrieb:
> Kann ich nur zustimmen. Eine Skizze zur Begründung habe ich mal
> beigefügt.

Du unterschlägst die Verbindung von Pin A zu Pin C.

Versuch mal den Strom über die Verbindung A-C-B zu berechnen.

von Thomas E. (picalic)


Lesenswert?

Michael P. schrieb:
>> zeigt, daß die Spannungsversorgung
>> mangelhaft designt ist.
>
> Deine Begründung bitte.

Wenn das Verändern der Kondensatoren an der Versorgungsspannung eine 
sichtbare Veränderung bei den LEDs ergibt (das hattest Du ja selbst 
festgestellt), ist da irgendwas faul - ganz einfach, weil sich bei einer 
sauberen Versorgungsspannung da eben keine Veränderungen ergeben dürfen! 
Wie Deine 5V DC tatsächlich aussehen, kann ich aus der Ferne natürlich 
nicht beurteilen. Daß kein ungewollter Reset auftritt, bedeutet ja nur, 
daß die Spannung nicht unter die Brown-Out Schwelle sinkt, aber die 
liegt sicher auch reichlich unter 5V.
Ein denkbarer Effekt wäre z.B., daß durch kurzes Überschwingen der 
Versorgungsspannung auf 6V die in Serie geschalteten LEDs (2x3V) schwach 
mitleuchten könnten.

Im Übrigen würde ich einfach mal tippen, daß der Betrieb mit reduzierter 
Versorgungsspannung (4..4,5V statt 5V) das Problem schon lösen könnte. 
Ggf, die Widerstände anpassen, um auf gleiche Helligkeit zu kommen.

: Bearbeitet durch User
von Michael P. (Firma: n.a.) (micha1102)


Lesenswert?

Hallo alle zusammen,

Thomas E. schrieb:
> Im Übrigen würde ich einfach mal tippen, daß der Betrieb mit reduzierter
> Versorgungsspannung (4..4,5V statt 5V) das Problem schon lösen könnte.

Eine Frage: Um es mal mit mit reduzierter Spannung zu testen, würde die 
Regelung noch funktionieren, wenn ich zwischen den Ausgang vom 78L05 und 
dem Controller einfach eine Si-Diode einfüge, über der dann etwa 0,6V 
abfallen? Und: welche Cs am Regler empfielst du mir?


yesitsme schrieb:
> Du unterschlägst die Verbindung von Pin A zu Pin C.

So einfach ist die Lage nicht. Die Skizze kann das Problem nur generell 
beschreiben.
Ob im konkreten Fall auch eine Verbindung zwischen PinA und PinC besteht 
und somit die Spannung am PinC von einem weiteren LED-Parallelwiderstand 
beeinflusst würde, ist abhängig von der Anwendung insgesamt.
Bei mir treiben 9 Pins die LED-Struktur. Das ergäbe maximal 72 mögliche 
Einzel-LED zum individuellen Ansteuern. Da ich aber nur 60 LED brauche, 
sind insgesamt 6 Verbindungen zwischen Pins offen, wären dann an dieser 
Stelle also keine LED-Paare mit einem Parallel-R vorhanden.

Das bedeutet, je nach anzusteuernder LED würde ein auf INPUT gesetztes 
Pin manchmal über 2 Widerstände auf ca. Vdd/2 gezogen, manchmal nur 
einseitig per R gegen Vdd oder Vss. Und das würde bei diesem 
Multiplexing wiederum andere LED ungewollt mit Strom versorgen.

(Nur Widerstände ohne LEDs als Brücke für die 6 offenen Pin-Verbindungen 
könnte eventuell gehen - ist aber auch nicht gerade eine tolle Lösung).

Beste Grüße

Micha

von Thomas E. (picalic)


Lesenswert?

Servus Micha,

Michael P. schrieb:
> Eine Frage: Um es mal mit mit reduzierter Spannung zu testen, würde die
> Regelung noch funktionieren, wenn ich zwischen den Ausgang vom 78L05 und
> dem Controller einfach eine Si-Diode einfüge, über der dann etwa 0,6V
> abfallen?

ja.

Michael P. schrieb:
> welche Cs am Regler empfielst du mir?

TI empfielt im Datenblatt des 78L05 einen 0,33 µF Kondensator am Eingang 
und 0,01µF am Ausgang. Soweit ich verstanden habe, wird beides im Text 
als "minimum"-Werte angegeben. Ich würde am Ausgang des 78L05 einen 
100nF (Keramik) einbauen und am Eingang 0,47µF oder 1µF keramisch. Evtl. 
auch 100nF keramisch am Eingang und Elko (10..100µF) parallel. 
Unabhängig vom C am Spannungsregler gehört noch ein 100nF 
Keramik-Kondensator direkt an die Versorgungsspannungs-Pins am PIC.

von Michael P. (Firma: n.a.) (micha1102)


Angehängte Dateien:

Lesenswert?

Hallo alle zusammen,

Thomas E. schrieb:
> würde ich einfach mal tippen, daß der Betrieb mit reduzierter
> Versorgungsspannung (4..4,5V statt 5V) das Problem schon lösen könnte.

Volltreffer! Mit einer auf 4,3V reduzierten Spannung für den PIC ist 
alles unerwünschte Flackern (zumindest bei weissen LED) jetzt komplett 
erschwunden. Das war mir schon sehr wichtig und ich bin nun total 
zufrieden mit dem Ergebnis.

Falls Interesse besteht, schicke ich Dir als kleines Dankeschön für 
deinen Tipp gerne eine "flimmerfreie" Version der Platine (s.Bild) zu, 
sobald ich die Platinen mit dem neuen Layout aus China habe.

Nochmals allen vielen Dank für die interessanten Beiträge zu meinem 
Problem.

Beste Grüße

Micha

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.