Forum: Mikrocontroller und Digitale Elektronik Bus entstören


von Rangi J. (rangi)


Angehängte Dateien:

Lesenswert?

Hallo Forum,

ich suche einen Hinweis, was das Problem bei meiner Schaltung sein 
könnte. Ich habe zwei Platinen, eine Relais-Platine und eine µC-Platine 
mit einem kurzen Stück Flachbandkabel verbunden.
Selten kommt es zu einem Fehler, wenn mehrere Relais gleichzeitig 
schalten, scheint die Übertragung gestört zu sein. Es klickern andere 
Relais kurz an und wieder aus oder auf mehrfach. Ich kann aber nicht 
sagen welche und welches Muster aber es sind scheinbar zufällige. 
Aufgefallen ist es, weil an einem Relais ein Gong hängt, der dann 
scheinbar ohne Grund losging. Manchmal hört man Relais klicken aber der 
Gong geht nicht los. Es tritt aber immer auf eine Aktion eines anderen 
Relais auf. Zusätzlich tritt das Problem nur dann auf, wenn vor dem 
Schaltvorgang eine lange Zeit (Stunden) Ruhe war, also keine 
Schaltvorgänge. Im Test (häufiges Schalten verschiedener Relais) ist nie 
ein Fehler aufgetreten, nur wenn ich nicht dabei bin.

Die 24V-Relais (24 Stk) werden von 3 x ULN2803 getrieben. Davor sitzt 
jeweils ein HC595. Diese sind alle miteinander verbunden nur das RCK 
geht einzeln über das Flachbandkabel zur zweiten Platine. Hier wählt ein 
HC138 jeweils einen der HC595 aus.
Die Datenleitungen gehen direkt vom µC zu den Latches, am RCK ist ein 
Pull-Up von 10k. Alle 25ms werden alle Latches neu beschrieben.
Ich gehe davon aus, das es am Bus/Hardware liegen muss, da ich zuvor zum 
Testen ein langes Flachbandkabel (ca. 50cm) dazwischen hatte und der 
gleiche Fehler häufiger (1 mal pro 10..20 Schaltvorgängen) auftrat. 
Daraufhin habe ich das Kabel gekürzt (jetzt ca. 8..10cm) und es 
funktionierte. Ich denke nicht, dass es an der Software liegt, da im 
Handbetrieb alles ohne Probleme funktioniert.
Ich habe schon die Taktrate stark reduziert aber ohne Erfolg.

Ich suche nach schlauen Tipps was ich noch probieren könnte. Kann ich 
den Takt/Daten mit einem R/C belasten? wenn ja, welche Größe in etwa?
Es gibt ein Problem, ich kann die Leiterplatte mit den Relais nicht oder 
nur sehr aufwendig ausbauen und ich komme auch nicht an alle Punkte zu 
messen heran.

von asdf (Gast)


Lesenswert?

Ich sehe an den Relais keine Freilaufdiode oder einen snubber. Ohne die 
wird es nicht gehen.

von Schlumpf (Gast)


Lesenswert?

Der Takt der Schieberegister geht direkt über die Flachbandleitung?
Das MUSS eigentlich schon schief gehen.
Ich vermute, dass du Spikes auf der Leitung hast, die dann das 
Schieberegister "unkontrolliert" weiter schieben.
Da bringt es auch nichts, die Datenrate zu reduzieren.

Du musst die Taktleitung filtern!
Und wenn dein Filter so "stark" sein muss, dass es dein Signal kaputt 
macht, dann musst du mit der Taktrate runter

von spontan (Gast)


Lesenswert?

Verrat doch mal was über die Verkabelung der Versorgungspannung und von 
GND.

Oft liegt der Fehler an ungünstiger Auslegung, schlechter Pufferung 
(wenn mehrer Relais schalten) oder an den fehlenden Freilaufdioden. 
Können die internen Dioden der ULN das überhaupt ab?

von Rangi J. (rangi)


Lesenswert?

@asdf
wird es doch ! siehe Datenblatt ULN2803:
The device consists of eight npn Darlington pairs that feature 
high-voltage outputs with common-cathode clamp diodes for switching 
inductive loads.

@Schlumpf
bevor ich das Ding fest eingebaut habe, habe ich das durch einen 
Stresstest laufen lassen, mit dem kurzen Kabel und es gab nie Probleme. 
Ich hab auch alle Relais gleichzeitig angeschaltet, ohne Probleme.
Wenn das schiefgehen "muss" deiner Ansicht nach, dann hätte ich das doch 
schon viel häufiger feststellen müssen.
Wie mache ich das am besten mit der "Taktleitung filtern"?

von Helmut L. (helmi1)


Lesenswert?

Rangi Jones schrieb:
> bevor ich das Ding fest eingebaut habe, habe ich das durch einen
> Stresstest laufen lassen, mit dem kurzen Kabel und es gab nie Probleme.
                                    ^^^^^^
                                  eben drum



> Ich hab auch alle Relais gleichzeitig angeschaltet, ohne Probleme.
> Wenn das schiefgehen "muss" deiner Ansicht nach, dann hätte ich das doch
> schon viel häufiger feststellen müssen.
> Wie mache ich das am besten mit der "Taktleitung filtern"?

Du hast reflektionen auf deiner Taktleitung. Normalerweise schliesst man 
die mit dem Wellenwiderstand der Leitung ab (rund 120 Ohm bei 
Flachbandkabel)

Hast du mal mit einem Oszi dir dieses Signal angeschaut?

Filtern kannst du mit einem RC Glied, das versaut dir aber die Flanken 
sodas du die anschliessend mit einem Schmitttrigger wieder auf 
Vordermann bringen must.

Eingang---R----+-----HC14-----HC14-----Ausgang
               |
               C
               |
               GND

Allerdings macht das die Sache aber auch langsamer.

von Rangi J. (rangi)


Lesenswert?

@spontan
Jeder HC595 hat einen 100n Kondesator und die ULN's haben einen eigenen 
GND der sich von der Einspeisestelle abzweigt.
Die 24V/6A erzeugt ein Schaltnetzteil. Daraus wird mit einem 
Wandler-Modul 5V erzeugt. An der Einspeisestelle kommt 24V, 5V und 
gemeinsames GND an.

@helmi1
das kurze Kabel ist ja jetzt auch dran. Das Lange war nur aufm Tisch.
Warum tritt das dann nur zu so komischen Zeiten auf? Wenn da 
Reflektionen sind, die einen nennenswerten Einfluss haben, dann müsste 
doch noch häufiger auftreten und vor allem dann wenn richtig viel Last 
drauf ist.
Aber es tritt scheinbar nur dann auf, wenn nach längerer Zeit ohne eine 
Schaltaktion wieder ein (oder zwei) Relais geschaltet werden sollen.
Das kommt mir sehr merkwürdig vor, wie ein Kondensator, der sich 
irgendwo entlädt.

von Helmut L. (helmi1)


Lesenswert?

Rangi Jones schrieb:
> Wenn da
> Reflektionen sind, die einen nennenswerten Einfluss haben, dann müsste
> doch noch häufiger auftreten und vor allem dann wenn richtig viel Last
> drauf ist.

Die Reflektionen haben mit der angeschlossen Last nix zu tun. Hast du 
die Signale denn schon mal mit dem Oszi gemessen?

von Rangi J. (rangi)


Lesenswert?

@helmi1
nein, ich komm da schlecht ran. Ich wollte sowas vermeiden.
Mit "Last" meinte ich eher häufiges Schalten und damit verbundenen 
Störungen.

von Helmut L. (helmi1)


Lesenswert?

Rangi Jones schrieb:
> nein, ich komm da schlecht ran.

Da kann ich nur sagen Pech gehabt...

> Ich wollte sowas vermeiden.

Was man will und was man tun muss sind oft 2 verschieden Richtungen.

> Mit "Last" meinte ich eher häufiges Schalten und damit verbundenen

Ob mehr oder weniger geschaltet wird ist egal, die Stoerungen bleiben.

von spontan (Gast)


Lesenswert?

>Die 24V/6A erzeugt ein Schaltnetzteil. Daraus wird mit einem
>Wandler-Modul 5V erzeugt. An der Einspeisestelle kommt 24V, 5V und
>gemeinsames GND an.

Gibts mal ein Foto vom Aufbau?

Wie ist denn die GND-Führung? Vom Netzteil getrennt an die beiden 
Platinen oder gemeinsam?


Die Pull-Up mit 10 kOhm halt ich für zu hochohmig. Laß doch mal etwas 
Strom fließen.

von Schlumpf (Gast)


Lesenswert?

Spikes auf dem Takt und oder schlechte Flanken können zum einen von 
Reflexionen herkommen (die sind bei kurzen Leitungen zwar auch schon da, 
aber haben unter Umständen keine Auswirkung) und oder von eingekoppelten 
Störungen (woher auch immer). Und je länger die Leitung desto besser 
kann sie als "Antenne" irgendwelchen Dreck einfangen.

Daher muss das bei langen Leitungen einfach schief gehen. Oder etwas 
abgemildert formuliert: Wenn es funktioniert, hast du einfach nur Glück 
gehabt.

Ein Filter wäre im einfachsten Fall ein Tiefpass mit nachgeschaltetem 
Schmitt-Trigger

von asdf (Gast)


Lesenswert?

>wird es doch ! siehe Datenblatt ULN2803: [...]

Das Verhindert, dass Du Dir den ULN brickst. Wenn Du den Bus entstoeren 
willst, musst Du die Stoerung an der Quelle = den Relais unterdruecken.

von Rangi J. (rangi)


Angehängte Dateien:

Lesenswert?

Was soll ich mit ULN2803 machen? bricken? steinigen?
Ich habe jetzt die Zeit gefunden den Bus nachzumessen. Das sieht 
eigentlich sehr gut aus. Steile Flanken, kaum Störungen.
In den Bildern sieht man den Clock und die Daten am Busende. Ich seh da 
keine nennenswerten Reflektionen.
Gibt eine Widerstands/Kondensator-Kombination, die ich einfach so am 
Busende drauf klemmen kann, um zu testen, ob es überhaupt einen Einfluß 
hat?

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Rangi Jones schrieb:
> Ich habe zwei Platinen, eine Relais-Platine und eine µC-Platine mit
> einem kurzen Stück Flachbandkabel verbunden.
Wo und wie? Wie sieht das Layout der Relaisplatine aus? Ein Herumbasteln 
am Takt mit RC-Glied und Schmitttrigger sollte hier (50cm 
Flachbandkabel) eigentlich noch nicht nötig sein...

Rangi Jones schrieb:
> Steile Flanken, kaum Störungen.
> Ich seh da keine nennenswerten Reflektionen.
Woher kommen im linken Bild diese Überschwinger? Wenn der Tastkopf 
korrekt abgeglichen ist, dann sind das Reflektionen...
Siehe den Beitrag "Re: Signalproblem bei langem Kabel"

spontan schrieb:
> Können die internen Dioden der ULN das überhaupt ab?
Ja, dafür sind sie da...
Die können genausoviel Strom wie der Transistor:
1
Peak collector current 500 mA
2
Output clamp current 500 mA

: Bearbeitet durch Moderator
von Rangi J. (rangi)


Lesenswert?

Nochmal, ich habe da kein langes Kabel dran (richtig lesen). Das Kabel 
ist ca. 8 cm lang. Auf der Leiterplatte kommen nochmal ca. 10 bis 15 cm 
dazu.
In dem Beitrag ist ein 100 Ohm Widerstand am Ende. Das sind 50 mA und 
eigentlich ein bisschen zu viel. Bringt ein größerer Widerstand auch was 
oder wird es dadurch evtl auch schlechter?

von oszi40 (Gast)


Lesenswert?

Rangi Jones schrieb:
> oder wird es dadurch evtl auch schlechter?

Der Versuch macht kug. Ich kenne Deinen Aufbau nicht so genau. Meine 
Glaskugel meint "Spannungsabfall auf der Masseleitung". Bevor Du weitere 
mühevolle Messungen machst, zieh mal zum Test einen DICKEN Massedraht 
parallel zu Deinem Hosenträger.

von Thomas (kosmos)


Lesenswert?

Ich denke das sich dein Reset Pin die Störung einfängt oder deine 
Spannungsversorgung kurz in die Knie geht.

Pauschaler Lösungsvorschlag
Abblock Kerko 100nF zw. VCC und GND
Abblock Kerko 100nF zw. RESET und GND jeweils möglichst nah an die Pins 
dann noch eine 100 microH Drosselspule in die VCC Leitung möglichst nah 
an den Kerko. Läuft bei mir direkt neben der Zündspule und 
Funkenstrecke.

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.