Huhu,
ich würde gerne einen Schaltungsteil auf eine zweite Platine auslagern.
Derzeit habe ich auf dem Controller-Board ein Schieberegister, an dem
ein ULN2803 hängt, welches wiederum LEDs schaltet.
Die LEDs, den 2803 und das 74HC595 Schieberegister würde ich nun gerne
auf eine externe Platine verfrachten und dann die Spannungsversorgung,
Clock, OutputEnable und SerialInput über ein Flachbandkabel verbinden.
Ist das eine gute Idee? Wie lang dürfen solche Flachbandkabel eurer
Meinung nach sein?
Freue mich auf Anregungen ;)
Danke, Mario
Hi
Mario La schrieb:> Wie lang dürfen solche Flachbandkabel eurer> Meinung nach sein?
Das dürfte stark von den von Dir geforderten Geschwindigkeiten abhängen.
Was brauchst Du also/was hast Du aktuell laufen?
MfG
Holla (die Waldfee) schrieb:> Bis zu zwei Meter dürfen TTL Signale über auch> über Kabel geführt werden.
Das ist bei einem taktgesteuerten IC ganz großer Mist, erfreue Dich an
undefinierten Schaltzuständen, weil Störungen einstrahlen.
> ABER: Spannungsabfall beachten!
Quatsch! Ein Leiter mit 0,14qmm hat 0,255 Ohm pro Meter - gibt bei 2
Metern Kabel ein ganzes Ohm.
Holla (die Waldfee) schrieb:> Das ist kein Problem. Bis zu zwei Meter dürfen TTL Signale über auch> über Kabel geführt werden.
Woher stammt diese wirre Weisheit?
Es kommt auf die Taktfrequenz an. Je schneller, desto kürzer.
> gibt bei 2 Metern Kabel ein ganzes Ohm.
Das kann bei der angedachten Spannungsversorgung durchaus schon ein
Problem werden, immerhin sollen hier LEDs (in unspezifizerter Menge)
betrieben werden.
Bei 1 A Strom ergibt 1 Ohm einen Spannungsabfall von einem Volt.
Hallo @all,
vielen Dank für eure Antworten.
Also das Flachbandkabel soll keine zwei Meter lang werden ;)
10-15cm reichen völlig aus - den Spannungsabfall sehe ich daher erstmal
nicht so problematisch.
Was die Geschwindigkeit betrifft, so müsste ich das morgen mal mit dem
Oszilloskop messen, wie schnell das SR mit Daten beschickt wird.
Im Code mache ich es so:
Wie schnell die Daten dann allerdings übertragen werden, habe ich mir
noch garnicht angesehen.
Werde das prüfen. Oder kann man das ausrechnen? Der AVR läuft mit
16MHz...
LG, Mario
Für meine Nixieuhr habe ich es genauso gemacht. Eine Controllerplatine,
ein Netzteil und drei Anzeigeplatinen mit je zwei Röhren, 3x
Adressierbarem D-Latch und 3x ULN2803A.
Die längste Kabelstrecke zu den Anzeigen ist bei mir 40 cm. Der Atmega8
taktet mit 4 MHz und die 5-V-Schaltflanke ist gegenwärtig etwa vier
Taktzyklen lang (müsste ich noch mal in meinem Asm-Code gucken). Eine
Zustandsänderung habe ich logischerweise einmal pro Sekunde. Die
Schieberegister auf der entfernten Platine unbedingt abblocken mit 100
nF Kerkos, sonst rutscht dir beim Umschalten die Versorgungsspannung
zusammen.
Ich hatte auch Angst vor Störeinflüssen, aber das funktioniert ohne wenn
und aber. Du wirst ja wahrscheinlich eher keine hochfrequente Taktung
des Schieberegisters anstreben, da würde ich mir keine allzu großen
Sorgen machen.
Mario La schrieb:> Werde das prüfen. Oder kann man das ausrechnen? Der AVR läuft mit> 16MHz...
Du kannst dir mal den Asm-Code anzeigen lassen, da kannst du dann draus
folgern, wie schnell dein Schieberegister angesprochen wird.
Ggf. einfach ein paar "nop" Befehle einfügen wenn es dir zu schnell ist,
ich glaub Inline-Assembler heißt das. Da kann dir jemand anders eher
helfen, ich habs direkt in Asm geschrieben und bei mir gehts.
Mit Messen bist du aber sicher schneller und musst dich nicht durch den
Asm-Wust durchwurschteln :)
Huhu,
Assembler lesen fällt mir sehr schwer. Ich habe das zwar mal MASM auf
80386 CPUs gelernt, fand das aber wenig ästhetisch und überlasse das
daher den echten Freaks ;)
Mit meinem Scope-Meter habe ich gerade immerhin noch 610.505 kHz am
Shift-Clock-Pin gemessen (wenn ich in einer Dauerschleife Bytes
rausshifte).
Das könnte ich aber zur Not auch reduzieren, wenn das ein Problem
darstellen könnte.
Aus dem Bauch heraus: Ab welcher frequenz wird's denn kritisch?
Sollte man generell das Flachbandkabel so belegen, dass zwischen den
Signalleitungen immer eine GND liegt?
Mario La schrieb:> Aus dem Bauch heraus: Ab welcher frequenz wird's denn kritisch?> Sollte man generell das Flachbandkabel so belegen, dass zwischen den> Signalleitungen immer eine GND liegt?
Das würde ich lassen, erhöht nämlich den Kapazitätsbelag der Leitung und
sie wird "langsamer", d.h. die Signale verschleifen.
Ich würde da nich so viel überlegen, das ganze aufbauen und dann am Ende
der Leitung mal den Flankenverlauf angucken. Wenn der passt, kanns so
bleiben, wenn nicht, musst du eben mit der Frequenz bisschen runter, das
sollte dir ja zeitmäßig keine Probleme bereiten.
Einen weiteren Tipp würde ich dir mitgeben:
Sieh Widerstände (Pullup/-down) vor, die das Schieberegister beim
Programmieren des uC vorm Einfangen von Quatsch schützen. Habe ich bei
meiner Nixieuhr nicht gemacht und jedes Mal beim Programmieren, wenn die
Ausgänge wieder zu hochohmigen Eingängen werden, treibt meine Anzeige
Schabernack, wenn die Anodenspannung nicht aus ist!
Rufus Τ. F. schrieb:> Es kommt auf die Taktfrequenz an. Je schneller, desto kürzer.
Es kommt auch sehr auf die Flankensteilheit an... ;-)
Klar hängt "höhere Taktfrequenz" mit "steilen Flanken" zusammen (ein
10MHz Signal kann nicht mit 100ns Flanken übertragen werden), aber die
Ursache des Übels sind die Flanken selber.
Patrick schrieb:> Ich würde da nich so viel überlegen, das ganze aufbauen und dann am Ende> der Leitung mal den Flankenverlauf angucken. Wenn der passt, kanns so> bleiben, wenn nicht, musst du eben mit der Frequenz bisschen runter
Das hilft nur bei Datensignalen. Der Takt muss sauber kommen,
Überschwinger sind da sehr gefährlich, denn im dümmsten Fall kann eine
Taktflanke mit anständigem Überschwinger als 2 Takte erkannt werden.
Zum Thema Serienterminierun siehe den
Beitrag "Signalproblem bei langem Kabel" und besonders auch das
letzte Drittel des Beitrag "Serienwiderstand bei Hochfrequenz"
Hallo Lothar,
vielen Dank für die Hinweise. Ich werde das heuteabend mal mit
verschiedenen Kabellängen aufbauen und dann messen.
So ein Serienwiderstand kommt dann einfach vor am Schieberegister vor
CLK und DS? Oder muss der controller-seitig sitzen?
Vielen Dank,
Mario
Mario La schrieb:> So ein Serienwiderstand kommt dann einfach vor am Schieberegister vor> CLK und DS? Oder muss der controller-seitig sitzen?
Die Serienterminierung muss direkt an bzw. nahe bei der Signalquelle
erfolgen. Und wie in den Links beschrieben ist der Takt problematisch.
Denn der sagt, wann die Daten gültig sind. Es reicht also "prinzipiell"
aus, den Takt zu terminieren. Ich sehe so einen widerstand aber bei den
Datenleitungen auch vor. Der kann dann immer noch später im Kupfer
gebrückt werden, wenn er nicht gebraucht wird.
Hallo zusammen,
Also die Variante mit der Flachbandkabel-Verbindung zwischen Controller
und Schieberegister funktioniert auf der Werkbank schonmal ganz gut.
Nun meinte ein Bekannter von mir, dass die bei ihm in der Firma in
solchen Fällen ganz gerne Schmitt-Trigger dazwischen setzen. Auf beiden
Seiten des Flachbandkabels jeweils einen, so dass die Invertierung sich
wieder aufhebt.
(siehe Anhang)
Zwischen SV1 und SV2 wäre also eine ca. 30cm lange Kabelverbindung...
Kennt jemand von euch diese Praxis? Und was tut der Kondensator zwischen
Clock und GND?
Vielen Dank für weitere Anregungen und frohe Ostern ;)