Forum: Mikrocontroller und Digitale Elektronik daisy-chaining Verzögerung


von Kai F. (kai-) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe vor den TLC5922 (Datenblatt im Anhang) für ein Moodlight 
daisychained anzusteuern. Allerdings hat mich beim Lesen vom Datenblatt 
etwas stutzig gemacht. Auf Seite 4 steht unter den SWITCHING 
CHARACTERISTICS, dass die Verzögerung von SCLK zu SOUT bis zu 300ns 
beträgt. Jetzt stehe ich vor dem Problem, dass ich dann nur wenige 
Controller bei 8MHz SPI Frequenz ansteuern könnte bevor der Takt 
komplett verschoben ist. Hab ich da was falsch verstanden und ist es 
normal, dass dieses Problem beim daisy-chaining auftritt?
Gruß
Kai

PS: der Beitrag über die Adressierung >10 Metern ist mir bekannt, ein 
Tiny für jeden Treiber kommt allerdings nicht in Frage

von 6632 (Gast)


Lesenswert?

Der Delay ist schon auf der laengeren Seite. Was spricht dagegen den 
SCLK langsamer laufen zu lassen ?

von Kai F. (kai-) Benutzerseite


Lesenswert?

ich wollte bis zu 30 Treiber ansteuern und einen fließenden Farbübergang 
hinbekommen und das eben nicht zuuuu langsam. Außerdem sind 300ns auch 
bei 512kHz noch viel.
Gibt es da nicht irgendwelche Tricks, wie zB einen Transistor in die 
SCLK Leitung um da auch eine Verzögerung rauszuholen?

von Falk B. (falk)


Lesenswert?

@ Kai Franke (kai-)

>CHARACTERISTICS, dass die Verzögerung von SCLK zu SOUT bis zu 300ns
>beträgt. Jetzt stehe ich vor dem Problem, dass ich dann nur wenige

D.h. du kannst mit bis zu 3 MHz takten. Nicht sooo schlecht (wobei ich 
mich frage, wieso das soo tierisch langsam ist).
Der IC verträgt ja angeblich bis zu 30 MHz Takt, warum sollte plötzlich 
im Daisy-Chain Modeus das auf 1/10 runtergehen?

>Controller bei 8MHz SPI Frequenz ansteuern könnte bevor der Takt

Ich tippe mal auf a) einen Schreibfehler (300 statt 30ns) oder eine sehr 
konservative Angabe. Ich denke mit 8 MHz Takt sollte das laufen. Kann 
man ja fix messen.

MfG
Falk

von Falk B. (falk)


Lesenswert?

@ Kai Franke (kai-)

>Gibt es da nicht irgendwelche Tricks, wie zB einen Transistor in die
>SCLK Leitung um da auch eine Verzögerung rauszuholen?

In dem Fall nicht.

MfG
Falk

von Kai F. (kai-) Benutzerseite


Lesenswert?

das Problem, das ich sehe ist, dass sich die Verzögerung aufsummiert und 
man daher nicht sagen kann, dass es mit 3/8Mhz klappen wird.
Jeder Treiber packt sein eigenes delay hinzu, daher kann ich zwar 2 
Treiber mit 3MHz ansteuern, sobald ich 3 Treiber will, gehen nur noch 
1,5MHz und bei 30? Hab leider kein Oszi um den Wert nachzumessen, aber 
ich gehe davon aus, dass es auch temperaturabhängig ist.. daher sollte 
es schwer messbar sein.
Ich glaub ich werde das mal von einem AVR messen lassen, sowas wie ein 
selfmade Oszi :P

von Falk B. (falk)


Lesenswert?

@ Kai Franke (kai-)

>das Problem, das ich sehe ist, dass sich die Verzögerung aufsummiert und

NEIN! Keinesfalls! Denk mal früber nach? Der nachfolgende Ic taktet die 
Daten wieder ein und gibt sie dann "aufgefrischt" wieder aus. Die 300ns 
sind die Obergrenze, egal ob mit zwei oder zwanzig Schieberegistern.

>man daher nicht sagen kann, dass es mit 4/8Mhz klappen wird.
>Jeder Treiber packt sein eigenes delay hinzu, daher kann ich zwar 2

???

>Treiber mit 4MHz ansteuern, sobald ich 3 Treiber will, gehen nur noch
>2MHz und bei 30?

Völlig falsch.

> Hab leider kein Oszi um den Wert nachzumessen, aber ich

Das ist schlecht.

>gehe davon aus, dass es auch temperaturabhängig ist.. daher sollte es
>schwer messbar sein.

???
Du malst dir Probleme and die Wand, die so nicht da sind. Die 300ns sind 
sowieso ultimativ Worst Case. Real tippe ich mal auf 50ns und weniger.
Und selbst das ist ne kleine Ewigkeit.

>Ich glaub ich werde das mal von einem AVR messen lassen, sowas wie ein
>selfmade Oszi :P

Das würde ich nicht. Zwei Unbekanne in einer Gleichung.

MfG
Falk

von Kai F. (kai-) Benutzerseite


Lesenswert?

Falk, du hast gerade meinen Plan gerettet!
Ich hab völlig falsch gedacht, das mit dem Aufsummieren ist natürlich 
Blödsinn. Ich werde die Daten einfach mit 4MHz übertragen, das passt 
dann schon. Alle 5-10Meter werde ich dann mein SCLK Signal auffrischen 
und dann passt das :)
Das mit dem Messen mit AVR benutze ich auch um zu messen wieviele Clocks 
der Code braucht (zB eine zeitkritische Funktion) und das klappt echt 
super :)
Das mit dem Osziersatz ist wohl nicht das wahre^^
Wenn ich mal zu viel Geld hab, hol ich mir ein kleines Oszi, solange 
muss das auch so funktionieren
Vielen Dank

von Falk B. (falk)


Lesenswert?

@ Kai Franke (kai-)

>Das mit dem Messen mit AVR benutze ich auch um zu messen wieviele Clocks
>der Code braucht (zB eine zeitkritische Funktion) und das klappt echt
>super :)

Das macht bei mir der Simulator.

MfG
Falk

von Gast (Gast)


Lesenswert?

A propos: Muss man das Clocksignal für die vielen Bausteine irgendwie 
speziell auffrischen oder einen Treiber verwenden?

Wie viele Bausteine kann so ein Standard-Mikrocontrollerausgang 
eigentlich treiben? (Fanout)

von Falk B. (falk)


Lesenswert?

@ Gast (Gast)

>A propos: Muss man das Clocksignal für die vielen Bausteine irgendwie
>speziell auffrischen oder einen Treiber verwenden?

Wieviele denn?

>Wie viele Bausteine kann so ein Standard-Mikrocontrollerausgang
>eigentlich treiben? (Fanout)

10++. Bei längeren Leitungen hat man eher ein Problem mit dem 
Wellenwiderstand und der Terminierung.

MfG
Falk

von Kai F. (kai-) Benutzerseite


Lesenswert?

ich hatte mir überlegt, dass ich ca. alle 5 Meter einen 
"Signalauffrischer" dazwischenstecke, wo ich die Signale terminiere und 
neu losschicke, wie ich das mache bin ich mir noch nicht sicher, 
Transistoren allein werden wohl nicht reichen.
Wieviele Treiber ein µC treiben kann hängt auch von der 
Übertragungsfrequenz ab, da man bei jedem Treiber die Kapazität am 
Eingang laden/entladen muss. Hat der Controller mehr Zeit, schafft er 
auch mehr.
Wo wir gerade dabei sind: Irgendwelche Ideen für den Signalaufbereiter?

von Falk B. (falk)


Lesenswert?

@ Kai Franke (kai-)

>ich hatte mir überlegt, dass ich ca. alle 5 Meter einen
>"Signalauffrischer" dazwischenstecke, wo ich die Signale terminiere und
>neu losschicke, wie ich das mache bin ich mir noch nicht sicher,

Sooo schnell wird das Signal nicht schlapp. Das kann man auch über 20m 
Kabel jagen. Die Terminierung bzw der halbwegs definierte 
Wellenwiderstand sind wichtig.

>Transistoren allein werden wohl nicht reichen.

Fang blos nicht mit sowas an. Nimm normale Gatter, idealerweise Schmitt 
Trigger.

MfG
Falk

von Kai F. (kai-) Benutzerseite


Lesenswert?

20 Meter würden mir sogar schon reichen :)
dann versuch ich es erstmal so, und wenn es irgendwann nicht mehr geht, 
klemm ich einfach einen Schmitt Trigger zwischen rein.
Und um zu messen wie stark das Signal nach 10 Meter noch ist, brauch ich 
nen Oszi (kommt mit auf die Liste warum ich ein Oszi brauche :)

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.