Wie bekomme ich LED am Controller völlig dunkel

OP (Firma: n.a.) #4862444
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
Angehängte Dateien:
Gast #4862455
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!
Gast #4862457
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?
Gast #4862460
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.
Gast #4862485
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.)
OP (Firma: n.a.) #4862492
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
Persönliche Seite #4862508
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.
Angehängte Dateien:
#4862518
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.
OP (Firma: n.a.) #4862525
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.
Persönliche Seite #4862539
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?
Gast #4862540
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.
Gast #4862551
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
Gast #4862553
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.
Gast #4862554
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
OP (Firma: n.a.) #4862562
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.
Persönliche Seite #4862606
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
Gast #4863009
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
Persönliche Seite #4863054
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.
Gast #4863129
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.
OP (Firma: n.a.) #4863185
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
Gast #4863218
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?
OP (Firma: n.a.) #4863582
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
Angehängte Dateien:
OP (Firma: n.a.) #4863738
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
Angehängte Dateien:
Gast #4863747
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? :-)
#4863806
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?
OP (Firma: n.a.) #4864137
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
OP (Firma: n.a.) #4864720
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
Angehängte Dateien:
Gast #4865164
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.
Gast #4865310
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.
#4865437
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.
OP (Firma: n.a.) #4865902
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
Angehängte Dateien:
Gast #4866085
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.
#4866567
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.
OP (Firma: n.a.) #4867721
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
#4868046
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.
OP (Firma: n.a.) #4868963
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
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren