LEDs flimmern nach dem anschließen des 3. DINx4 Modul
#21
Posted 13 January 2008 - 11:46
SC und RC Pins am offenen Ende des DOUT mit je einem 300 Ohm Widerstand auf den Vs Pin an selber Stelle geschlossen.
Nun läufts wunderbar! ;D (endlich!)
#22
Posted 13 January 2008 - 18:30
Nun frage ich mich wirklich, warum das Problem nur bei der MBSEQ V3 auftritt, und nicht bei anderen MIDIboxen, die teilweise mit wesentlich mehr Shiftregistern ausgestattet sind. :-/
Gruss,
Thorsten.
#23
Posted 13 January 2008 - 20:16
es scheint, dass ich hier auch noch meine aktuelle LED - flimmer -geschichte loswerden kann:
immerhin habe ich jetzt eine funktionierende lösung mit den widerständen, danke vielmals!
ich arbeite mit einer leicht modifizierten version von ain64-din128-dout128 -> nur benutze ich nur dout64 (oder 2 DOUT - Module). das flimmern verschwindet auch wenn ich in der applikation NUMBER_OF_SRIO auf 8 setze. leider ist das für mich keine lösung, da ich ja 4 DIN - module benutzen will.
grüsse
martin
#24
Posted 13 January 2008 - 21:35
ich hatte auch damals beim Bau meines Traktorizers sehr böses flimmern der LEDs (4 DOUTs / 148 LEDs), Abhilfe schaffte ich mir, daß ich die DOUTs mit einer separaten 5V-Leitung betreibe (separates Core mit nur 7805 und den Kondis) ..... doch ab und zu flimmern trotzdem ein paar LEDs hin und wieder....ich werde diese Lösung hier die Tage auch mal ausprobieren...
Grüße
#25
Posted 15 January 2008 - 07:41
habe auch zwei vollbestückte DIY DIN OUT Platinen und hatte Probleme.
Bei mir startete das ganze System nach paar Minuten komplett neu.
Ich habe dann auch die Platinen direkt mit einer separaten Leitung ( 5 V ) versorgt und zusätzlich noch jeweils 2 Elko's a 100uF auf die Platinen gelötet.
Jetzt klammt alles perfekt.
MfG
ranger930
#26
Posted 15 January 2008 - 10:03
ich habe mich für ein anderes Projekt (TK weiß was ich meine ;) ) mal ziemlich ausführlich mit dem Thema Terminierung von Leitungen beschäftigt. Deshalb hier ein heißer Tip: Das Zauberwort heißt "AC-Terminierung".
Bei herkömmlicher Terminierung, also z.B. den 150 Ohm-Widerständen von tobsen, besteht das Problem, daß diese ordentlich Leistung wegziehen. Je kleiner die Widerstände, desto schlimmer. 150 Ohm geben z.B. 33mA, 220 Ohm -> 22mA. Berücksichtigt man nun noch, daß die ICs zwar sehr sehr wenig aber auch ein bischen was an Strom ziehen, kann man bei einer wirklich langen DIN/DOUT-Kette nochmal einige mA dazurechnen. Außerdem werden SC und RC für beide Ketten vom selben Pin des PIC versorgt. Wenn beide Ketten terminiert werden, verdoppeln sich also alle Zahlen nochmal. Sagen wir also, bei 150 Ohm wären es insgesamt 80mA (keine Lust, Datenblätter auszugraben). Der PIC ist zwar relativ unempfindlich, aber 80mA pro Ausgang ist viel zu viel. Bei herkömmlich terminierten Leitungen wird deshalb üblicherweise ein Leitungstreiber verwendet. Mit 150 Ohm hat man ausserdem durch 4x 33mA extra den Stromverbrauch der gesamten Box um 133 mA erhöht, was auch nicht unbedingt gewünscht ist. Was also dagegen tun?
Das Problem gegen das die Terminierung wirken soll, ist ein Über/Unterschwingen bei Flankenwechseln des Signals. Dieses Schwingen kann im Extremfall dazu führen, daß z.B. eine einzige Taktflanke als mehrere erkannt wird. Ein unverändertes "Signal", also eine Gleichspannung, braucht nicht terminiert werden. Wenn man jetzt zwischen den Widerstand und Masse noch einen Kondensator gibt, wird genau das erreicht, daß nämlich nur noch bei den Flanken ("AC") Strom abgeleitet wird. So kann man bei den Flanken ein Überschwingen verhindern und verbraucht gleichzeitig im Mittel viel weniger Strom, da eben der Kondensator keine Gleichspannung durchläßt.
Die genau benötigten Werte sind ohne Oszilloskop schwer herauszufinden, aber z.B. 100 oder 150 Ohm und 100pF geben bei mir ein gutes Ergebnis.
Ein weiteres Problem: Das Core-Modul liegt, wenn sowohl DIN als auch DOUT angeschlossen sind, bezüglich RC und SC in der Mitte der Leitungen. Bei unterminierten Leitungen und unterschiedlich langen DIN/DOUT-Ketten kommen deshalb von beiden Enden unterschiedlich verzögerte Reflexionen "zurückgeschwappt". Das ist offensichtlich im Regelfall kein großes Problem. Kann es aber sein, daß bei den Leuten, die diese Probleme haben, eine besonders stark unterschiedliche Länge der beiden Ketten vorliegt? Jedenfalls, wenn also die Terminierung alleine nicht helfen sollte, wäre es eine gute Idee, z.B. nur DIN regulär am Core anzuschließen und RC und SC für DOUT am letzten DIN-Modul abzugreifen. Dadurch bekommt man nur EINE, relativ lange Kette, die auch nur einmal terminiert werden muss. -> weniger Stromverbrauch, weniger Reflexionen, weniger Ärger :)
FAQMARKER ;)
Seppoman
P.S. nur noch zwei Posts vom Guru entfernt, dieser hier wird dem hoffentlich gerecht :D
#27
Posted 15 January 2008 - 10:56
Quote
mehr wie das ;)
Danke Seppo, diese Einführung ist für mich super Idiotensicher erklärt ;D ...wenns die Zeit zulässt werde ich das diese Woche mal testen und dann Kriegsdientberichterstatten :)
Lieben Gruß
EDIT : Wo ist eigentlich der Defibrillator für die Wiki ? ;D
#28
Posted 15 January 2008 - 11:09
Quote
Ja, doch, denke schon. Das Wissen kannst Du dann auch mal gleich in die 1,8m DIN/DOUT Kette beim sidLive einbringen ;D
#29
Posted 15 January 2008 - 20:44
Quote
AC Terminierung ist sicherlich die bessere Alternative, erfordert jedoch wesentlich mehr Bauteile, Mess- und Denkarbeit, als Du in Deinem Posting zugibst. ;)
/edit: stimmt nicht - sie laesst sich sogar einfacher handhaben
Quote
Außerdem werden SC und RC für beide Ketten vom selben Pin des PIC versorgt. Wenn beide Ketten terminiert werden, verdoppeln sich also alle Zahlen nochmal. Sagen wir also, bei 150 Ohm wären es insgesamt 80mA (keine Lust, Datenblätter auszugraben). Der PIC ist zwar relativ unempfindlich, aber 80mA pro Ausgang ist viel zu viel. Bei herkömmlich terminierten Leitungen wird deshalb üblicherweise ein Leitungstreiber verwendet. Mit 150 Ohm hat man ausserdem durch 4x 33mA extra den Stromverbrauch der gesamten Box um 133 mA erhöht, was auch nicht unbedingt gewünscht ist. Was also dagegen tun?
150 Ohm sind sicherlich zu niedrig, aber in Deiner Aussage befinden sich zwei Denkfehler.
Das kritische Signal ist der Shift Clock (SCLK), da er mit hoher Frequenz (ca. 1 MHz) getaktet wird, und Setup/Hold Verletzungen an den seriellen Eingaengen zu vermeiden sind.
Wenn die SRIO-Kette nicht bedient wird (ca. 80% der Zeit), steht SCLK jedoch auf 0V
Folglich liegt am Abschlusswiderstand die meiste Zeit keine Spannung an -> es fliesst kein Strom.
/edit: war ungenau formuliert - es fliesst meistens kein Strom. Ausserdem fehlte der Hinweis darauf, dass der Strom - wenn er denn mal fliesst - durch den Innenwiderstand des Ausgangspins begrenzt wird
Zweiter Denkfehler: Terminierung bedeutet, dass der Abschluss-Widerstand dem Wellenwiderstand angepasst wird. Der Wellenwiderstand haengt im Wesentlichen von den Verbindungskabeln zwischen den Modulen (R/L/C), den Leiterbahnen auf den Modulen (R/L/C), und der Eingangsimpedanz der 74HC Bausteine (R/C) ab.
Die Ausgangspins des PICs "sehen" also bereits eine Impedanz.
/edit: falsche Aussage, haette mal nachrechnen sollen ;)
Das grosse Problem an der Geschichte ist, dass wir es hier nicht mehr mit definierten Verhaeltnissen zu tun haben. Die Impedanz der Kabel/Leiterbahnen laesst sich nicht so ohne weiteres berechnen, zumal sie bspw. nicht nur von der Laenge, sondern auch vom Kabelmaterial abhaengt. Deshalb hilft hier erstmal nur eine professionelle Messvorrichtung, oder "trial&error"
/edit: "trial&error" wohl nur notwendig, um C+R entweder gegen Masse, oder +5V auszuprobieren
Quote
Bei der AC Terminierung geht man davon aus, dass sich R+C am Ende der Uebertragungsleitung, jedoch *vor* dem Eingangspin befindet.
/edit: stimmt, ist aber nur fuer den Idealfall wichtig. Ich wusste nicht, dass es manchmal gegen +5V wesentlich besser funktioniert
Man muesste also an jedem Modul-Ausgang einen Buffer setzen, und an jedem Modul-Eingang R+C in Serie.
Wenn man das nicht macht, wird die Signallaufzeit durch den C zusaetzlich verlaengert - man macht es also noch schlimmer.
/edit: stimmt, deshalb die Buffer - wenn ueberhaupt - nur am Ausgang des PICs anschliessen.
Quote
Wie bereits oben erwaehnt: 150 Ohm ist sicherlich zu wenig.
/edit: notwendig bei superlangen Flachbandleitungen (ab 5 m?)
Quote
Das ist ein guter Punkt - klingt plausibel!
Zumal ich meine eigenen Prototypen meistens wild verdrahtet habe, das SCLK-Signal der DIN/DOUT Register ist also nicht strikt in Serie verdrahtet, sondern eher sternfoermig vernetzt. Das koennte erklaeren, warum ich selbst von dem Effekt noch nicht betroffen war.
Quote
Das bedeutet: wenn die SCLK-Leitung in einer langen Kette zu den 32 Shift Registern gefuehrt wird, muesste ich die Frequenz verringern. So koennte man Control Surface + Synth Engine nicht mehr mit einem einzigen Core zu betreiben, denn die CPU waere zu sehr damit ausgelastet, die Schieberegister zu bedienen.
/edit: die zusaetzliche Laufzeit ist im Vergleich zur Frequenz minimal, und somit ignorierbar
Interessant waere es zu wissen, ob folgende Konfiguration besser funktioniert: sternfoermige SCLK Verdrahtung von Core zu den DOUT/DIN Modulen mit einer eher defensiv gewaehlten AC Terminierung (bsp. 47 pF + 47 Ohm) an den Modul-Eingaengen.
/edit: schwieriger zu handhaben - Leitungen muessen gleich lang sein
Ich moechte natuerlich nicht ausschliessen, dass ich nun voellig falsch liege - doch Deine Argumente klingen in meinen Ohren (und mit dem Wissen, das ich mir vor 15 Jahren mal zwangsweise aneignen musste, aber schon laengst wieder verdraengt habe ;)) nicht schluessig.
/edit: tja, das meisste habe ich wohl tatsaechlich vergessen - haette die Skripte nicht wegwerfen sollen ;)
Mir ist auch bewusst, dass die von mir vorgeschlagene Loesung nicht ideal ist, doch sie fuehrt offenbar mit wenig Ausprobiererei und ohne grossen Hardware-Aufwand zum Erfolg, laesst sich einfach nachvollziehen und erfordert kein Elektrotechnik-Vordiplom zur Ausfuehrung. ;)
/edit: AC Terminierung fuehrt eher zum Erfolg, wenn man die Kondensatoren griffbereit hat
Gruss,
Thorsten.
#30
Posted 15 January 2008 - 22:09
#31
Posted 16 January 2008 - 23:40
Um eins vorwegzunehmen: ich nehme die einige meiner gestrigen Aussagen zurueck - sie basierten auf falschen Annahmen. Werde sie auch gleich nochmal entsprechend im Posting markieren.
Hier die heutigen Erkenntnisse in einer "Diashow":

Hier ist lediglich ein DOUTX4 Modul ueber ein kurzes Flachbandkabel (ca. 10 cm) am Core angeschlossen. Der obere Kanal zeigt das SCLK Signal am CORE Modul, der untere Kanal das gleiche Signal am "Ende" (J2) des DOUTX4 Moduls.

Und hier die Flanken nochmal vergroessert.
Steil und zackig!
Von den kleinen Ueberschwingern darf man sich nicht zu sehr verwirren lassen - hierbei handelt es sich bereits um eine Reflektion, doch eher um eine der harmlosen Art, solange der High-Pegel nicht 3.7V unterschreitet, und der Low-Pegel nicht 1.3V ueberschreitet.
Sie wird auch teilweise von meinem Oszilloskop hervorgerufen - das hat uebrigens nur 20 MHz Bandbreite, ist also nicht optimal geeignet um hochfrequente Schwingungen anzuzeigen. Alles was hier rund ist, koennte in Realitaet wesentlich rechteckiger aussehen. Nunja...

Nun habe ich ein zweites DOUTX4 Modul hinter das erste angeschlossen, und zwar ueber ein Kabel mit 1.5m Laenge.
Diese eher unrealistische (weil nicht empfohlene) Laenge ist mit Absicht so gewaehlt, um die Reflektionseffekte zu verstaerken. Andererseits: wenn man 4 DINX4 und 4 DOUTX4 Module hintereinander schaltet, sieht es wahrscheinlich aehnlich aus - je nachdem, wie SCLK vernetzt ist.
Diese Ueberschwinger sind zwar extrem, sorgen jedoch noch nicht zu Problemen, da die 74HC-Eingaenge eine Hysterese haben. Der ca. 1V Ueberschwinger am Low-Pegel liegt auch noch unterhalb der minimalen Eingangsspannung, und weit entfernt von der Schwellspannung (Threshold)

Trotzdem sind die Ueberschwinger unschoen (auch aus EMV Gruenden) - deshalb habe ich ans Ende der Leitung ein Poti angeschlossen, und es so eingestellt, dass die Ueberschwinger moeglichst minimal sind, doch die Spannung am Eingang nicht zu stark beeinflusst wird.
Der optimale Daempfungswert war dann so ca. 270 Ohm.
Zur Beeinflussung der Spannung am Core Modul: die Milchmaedchenrechnung "zusaetzlich verbrauchter Strom ist I=U/R, er vervielfacht sich, je mehr Leitungsenden man terminiert" geht hier nicht auf.
Denn der Ausgangstreiber des PIC Pins hat ja auch noch einen Innenwiderstand, der den Strom zusaetzlich begrenzt. Das heisst: je niedriger der Terminierungswiderstand, desto mehr sackt die Spannung ein. Der maximale Strom liese sich ausmessen (PIC Pin kurzschliessen), habe ich aber nicht getan.

Nun kommen wir zu Seppomans Vorschlag, das Leitungsende mit C+R (100 pF + 100 Ohm) gegen Masse zu terminieren.
Wir sehen erstmal keine dramatische Verbesserung gegenueber dem Fall ohne Terminierung.
Das ist auch der Effekt, den ich bisher immer gesehen habe (und deshalb nicht weiter ueber AC Terminierung nachgedacht habe)
Doch nun kommts!

Eher unabsichtlich habe ich C+R gegen +5V angeschlossen, und ploetzlich sah das Signal schon ganz anders aus!
Das war mir bisher entgangen! ;-)
Was man auch sieht: die Signallaufzeit wird so gut wie gar nicht beeinflusst, wie befuerchtet. Es spricht also nicht viel dagegen, saemtliche DIN und DOUT Module hintereinander zu haengen, und zusaetzliche C+R einzufuegen, solange man es nicht uebertreibt.
Ich habe auch mal verschiedene R und C Werte ausprobiert. 100 Ohm + 100 pF hat sich als gute Kombination fuer verschiedene Leitungslaengen erwiesen. Im Gegensatz zu meiner urspruenglich vorgeschlagenen Loesung muss man also nicht verschiedene Widerstandswerte ausprobieren, sondern faehrt mit diesem R+C wohl ziemlich gut.
Warum AC Terminierung gegen +5V besser funktioniert. Ich gebe das Spekulieren auf!
Vielleicht weil SCLK die meiste Zeit auf 0V liegt, und sich der R+C Zweig gegen 5V aufladen kann, so dass bei einer steigenden Flanke kein kompletter Aufladevorgang stattfindet. Man kann beobachten, dass die Daempfung langsam abnimmt, je laenger der 1 MHz Burst anhaelt - das kann aber auch ein Trugschluss (oder Messfehler) sein.
Doch nun mal ein Vergleich mit einer wesentlich unrealistischeren 6 Meter Leitung im parallel geschalteten DIN Zweig:

Bei einer fallenden Flanke sind die Ueberschwinger so heftig, dass sie fuer digitale Eingaenge wie zusaetzliche Takte aussehen (Schwellwert wird mehrmals ueberschritten).
-> die LEDs fangen an zu flackern, und die Taster/Encoder verhalten sich nicht mehr deterministisch.

So sieht das dann mit einer 150 Ohm Terminierung aus (die erwies sich als "optimal") - das Signal ist trotzdem nicht mehr brauchbar.

Und so schliesslich mit 100 Ohm/100 pF AC Terminierung - hier geht noch was!
Fazit:
- Seppoman hat im grossen und ganzen Recht - AC Terminierung ist besser
- und sogar universeller (Probieren mit verschiedenen Widertandsgroessen entfaellt)
- Terminierung mit 220..330 Ohm Widerstand hilft in den meisten Faellen ebenfalls, ist aber nur als Uebergangsloesung zu empfehlen, wenn man gerade keine Kondensatoren zur Hand hat. Die Widerstaende liegen schon eher herum (da bspw. die meisten Module damit bestueckt sind)
- es spricht nichts dagegen, eine lange Kette aus DIN und DOUT Modulen zu bilden, es kann sogar vorteilhaft sein, wie ich mittlerweile gelernt habe (verschiedene Zweige fuehren zu unterschiedlichen Wellenwiderstaenden, die man irgendwann nicht mehr in Griff bekommt)
- die von mir vorgeschlagene sternfoermige Verdrahtung von SCLK geht auch, sollte aber nur angewendet werden, wenn die Leitungen in etwa gleich lang sind (schwierig)
- eine professionelle Loesung wuerde so aussehen: fuer jeden SCLK Zweig einen eigenen Buffer hernehmen - Buffer nicht hintereinanderschalten, das wuerde das Signal nur unnoetig verzoegern.
- manchmal - aber nicht immer - funktioniert AC Terminierung nur dann zufriedenstellend, wenn man R+C gegen +5V (Vdd) schaltet
Gruss,
Thorsten.
#32
Posted 16 January 2008 - 23:51
Gruss,
Thorsten.
#34
Posted 17 January 2008 - 18:09
Wollte auch nochmal den Vorschlag mit dem 150R zurückziehen, da zwei shift register vom DIN innerhalb kürzester Zeit abgeraucht sind. Soweit ich es überflogen habe steht hier auch warum...
1000 Dank für die Vorschläge!
#35
Posted 11 February 2008 - 20:21
Am DOUT Pin:SC oder RC mit R+C gegen 5V und der Encoder von Step9 nimmt dann immer den maximal Wert an. Das Flimmern ist aber komplett verschwunden, das tut den Augen richtig gut...
Könnte jemand mal Erfahrung mit der R+C Kombi Posten...
Danke!
#36
Posted 14 February 2008 - 01:56
wie lang sind eigentlich die Kabel zu (und zwischen) den einzelnen Modulen?
Encoder-Problem: hast Du schonmal einen zusaetzlichen R+C am Ende der DIN-Kette ausprobiert?
Gruss,
Thorsten.
P.S.: weitere Erfahrungsberichte wuerden mich sehr interessieren
#37
Posted 14 February 2008 - 21:58
Quote
wie lang sind eigentlich die Kabel zu (und zwischen) den einzelnen Modulen?
Encoder-Problem: hast Du schonmal einen zusaetzlichen R+C am Ende der DIN-Kette ausprobiert?
Gruss,
Thorsten.
P.S.: weitere Erfahrungsberichte wuerden mich sehr interessieren
Die Kabel sind sehr knapp, ca. 30 - 40 cm, die Module sind alle von hinten auf dem Panel montiert.
Allerdings, hatte ich erst nur SC bzw. nur RC terminiert. Mit beiden Pins scheint es jetzt zu klappen, der Encoder von Step 9 und 15 funktioniert wieder normal.
Bis jetzt hängen wieder nur 300R Widerstände dran, wie bei Stuart...
Werde die Tage noch die Kondensatoren dazuschalten und dann nochmal Ergebnisse posten...
Danke! :)
#38
Posted 19 February 2008 - 09:38
mit 100Ohm/100pF von SC und RC gegen 5V war das problem dann gelöst
danke tk
#39
Posted 19 February 2008 - 20:49
Danke fuer den Input!
Somit scheint Seppoman's Vorschlag wohl wirklich weiterzuhelfen :)
Gruss,
Thorsten.
#40
Posted 19 February 2008 - 21:41
Wie lange bauen wir schon SEQ? Ich hatte dieses Problem nie (bzw. noch nicht).
Kann es sein, das die Schieberegister jetzt empfindlicher sind als früher?
Ich finde es immer noch komisch, bin aber heilfroh, dass es eine Lösung gibt.
Gruss
Doc



Help



















