Hallo,
ich habe eine Schaltung mit dem XC9572XL, die mir ein SPI Signal
abtasten soll.
Leider funktioniert das nur teilweise. Die Bilder im Anhang zeigen drei
Mitschnitte. Wie man sieht sind da z.T. sehr viele Störungen auf den
Leitungen.
Ich vermute mal es liegt an den Signalen selbst, dem Hardware-Layout
oder dem VHDL-Code.
Leider habe ich keinen Plan wie und wo ich da am besten anfange zu
suchen und brauche deshalb eure Hilfe!
Danke im Voraus,
Gruß Gerd
Gerd schrieb:> Ich vermute mal es liegt an den Signalen selbst, dem Hardware-Layout> oder dem VHDL-Code.
Hmm, noch nicht sehr eingegrenzt.
Gib die SPI-Signale doch als erstes mal auf den KO, dann weist Du ob es
die Hardware ist oder nicht (stimmen die Pegel, passen die Pegel zu
Deinen I/O usw.).
Layoutprobleme würde ich nicht erwarten, SPI ist eher langsam.
Falls nicht die Hardware querschlägt: Schau mal die Abtasterei an, wie
schnell tastest Du ab, hast Du noch Logik zwischen den Clockdomains
(Signallaufzeit), etc.
Gerd schrieb:> Leider habe ich keinen Plan wie und wo ich da am besten anfange zu> suchen und brauche deshalb eure Hilfe!
Uns fehlt natürlich auch der Schaltplan, das Layout, ein Foto vom
Aufbau, Anschlusspunkte des LA, Leitungslängen, usw.
> Leider funktioniert das nur teilweise. Die Bilder im Anhang zeigen drei> Mitschnitte.
Von was? Womit gemacht?
>>Kannst Du uns Deinen Code zeigen?
Nein, leider nicht.
Es ging bei meiner Hilfesuche eher um Grundsätzliches (Hatte gehofft,
das Fehlerbild weisst vlt. auf eine bestimmte Ursache hin).
>>Dann wird es Zeit für Fehlersuche.
Deshalb Danke ich auch mal für den Link. Da sind wirklich eine Menge
nützliche Infos zu finden.
>>Gib die SPI-Signale doch als erstes mal auf den KO, dann weist Du ob es>>die Hardware ist oder nicht (stimmen die Pegel, passen die Pegel zu>>Deinen I/O usw.).
Was ist eigentlich KO? ... Simulator?
>>Uns fehlt natürlich auch der Schaltplan, das Layout, ein Foto vom>>Aufbau, Anschlusspunkte des LA, Leitungslängen, usw.
Ich weiss.
Ich werde mal zuerst die Ein- und Ausgänge am CPLD messen und
vergleichen. Danach seh ich weiter. Also nochmal Danke für die Hinweise.
Gruß Gerd
Gerd schrieb:> das Fehlerbild weisst vlt. auf eine bestimmte Ursache hin
Ich würde hier am ehesten erst mal einen Messfehler vermuten (falscher
Masseanschluss). Und dann nach einem Schaltregler oder eine anderen
Störer suchen...
Peter K. schrieb:> Kathodenstrahl-Oszilloskop>> Macht mir etwas Angst, dass Dir das kein Begriff ist...
Mir ist das auch kein Begriff. Klingt irgendwie nach 60er Jahre :-)
Ich würde ein "Oszi" verwenden...
Duke
Ich habe jetzt mal den VHDL Code geändert und die Eingänge am CPLD durch
einen Zähler ersetzt. Und siehe da, die Zählerstände werden ohne Fehler
ausgegeben.
>Gib die SPI-Signale doch als erstes mal auf den KO, dann weist Du ob es>die Hardware ist oder nicht (stimmen die Pegel, passen die Pegel zu>Deinen I/O usw.).
Der Gedanke war also genau der Richtige - die Eingangssignale sind schon
verrauscht.
Ich hab bisher noch kein KO angeschlossen, um das exakt zu messen, aber
ich hab mal die Jumper-Kabel von 30 cm, mit denen ich die Signale auf
den CPLD führe, durch kürzere (10 cm) ersetzt. Die Störungen haben stark
abgenommen, womit also dann die Zuleitungen das KO-Kriterium sind!
Leider sind die Störungen nicht ganz weg und ich frage mich, wie ich die
nun endgültig KO (sorry, das war jetzt das letzte Mal) schlagen kann?
Noch kürzere Leitungen sind keine Lösung.
Gerd schrieb:> Noch kürzere Leitungen sind keine Lösung.
Nein. Ich denke auch nicht, dass die 30cm Leitungen das ursprüngliche
Problem sind (ausser Du hast einen potenten Sender in unmittelbarer
Nähe), sondern nur der Tropfen, der das Fass zum überlaufen bringt.
Ich denke, es wäre nun an der Zeit, besagtes Gerät anzuschliessen und
die Signale zu visualisieren (und dann prüfen: stimmen die Pegel, passen
die Pegel zu Deinen I/O, hast Du irgenwo ungewollte pull-downs oder
-ups, usw.).
Gerd schrieb:> ich frage mich, wie ich die nun endgültig KO schlagen kann?
Gut, dass du uns nicht frägst, denn ohne Wissen um dein System
könnte dir ja auch keiner ein brauchbare Antwort geben...
> Noch kürzere Leitungen sind keine Lösung.
Du weißt ja noch nicht mal, woher diese Störungen kommen. Was bastelst
du dann an den Leitungen rum? Aber ich schütte nochmal Öl ins Feuer und
verweise auf den Beitrag "Re: Signalproblem bei langem Kabel"
>Aber ich schütte nochmal Öl ins Feuer und>verweise auf den Beitrag "Re: Signalproblem bei langem Kabel"
So ein Serienwiderstand wirkt wahre Wunder - nicht ein Zappler!
>Du weißt ja noch nicht mal, woher diese Störungen kommen. Was bastelst>du dann an den Leitungen rum?
Aber irgendwie beschleicht mich der Gedanke, dass das wieder nur
gebastelt ist!?
>Ich denke, es wäre nun an der Zeit, besagtes Gerät anzuschliessen und>die Signale zu visualisieren (und dann prüfen: stimmen die Pegel, passen>die Pegel zu Deinen I/O, hast Du irgenwo ungewollte pull-downs oder>-ups, usw.).
Was ich dann mal nach dem Wochenende auch tun werde.
Gerd schrieb:>>Aber ich schütte nochmal Öl ins Feuer und>>verweise auf den Beitrag "Re: Signalproblem bei langem Kabel"> So ein Serienwiderstand wirkt wahre Wunder - nicht ein Zappler!
Schaltet du mit sehr steilen Flanken? Wie sieht die Entkopplung
(Blockkondensatoren) der Teilnehmer aus?
>Schaltet du mit sehr steilen Flanken? Wie sieht die Entkopplung>(Blockkondensatoren) der Teilnehmer aus?
Der Versuchsaufbau besteht aus 2 AVR die per SPI verbunden sind. Beide
hängen an einem Labornetzteil. Von den SPI-Leitungen gehen 4
Stichleitungen an die CPLD Eingänge.
Der CPLD wird über 5 Volt vom PC versorgt. Am CPLD sind 1uF und 100nF
Kondensatoren vor jedem Spannungseingang.
Also, das mit dem Serienwiderstand alleine hat doch nicht richtig
funktioniert. Ich hatte nur Glück.
Deshalb habe ich ein paar Testreihen gemessen. Und zwar mit
verschiedenen Oszillatoren (3, 2 und 1 MHz) an einem Kanal. Die anderen
Kanäle lagen auf Masse.
Trotz (oder gerade) dessen, dass die anderen auf Masse lagen traten
frequenzabhängige Störungen auf den Kanälen auf. Bei 3 MHz alle 18ms,
bei 2 MHz alle 12ms usw.
Ich bin dann her gegangen und habe den 24 MHz Oszi, der den CPLD
versorgt sauber eingelötet (SMD). Bei den Tests war noch einer mit
Kabeln im DIP-Gehäuse dran - zum Testen eben.
Siehe da, die Störungen waren schon weniger. Nach dem hinzunehmen der
Serienwiderstände treten jetzt keine Fehler mehr auf. Hätte nicht
gedacht, das so ein Oszi die Stabilität einer Schaltung so sehr
beeinflusst, zumal 24 MHz vermeintlich nicht allzu viel sind.
Ich habe mich jetzt ein bischen mehr mit EMV auseinander gesetzt, z.B.
http://www.rotgradpsi.de/mc/etc/emv.htmlBeitrag "EMV-Gerechtes Layout für Oszillator"
und muss sagen, es hat seine Daseinsberechtigung:)
Ich werde der Schaltung zur Sicherheit noch eine Handvoll weiterer
Kondensatoren spendieren und denke das wars dann.
Vielen Dank für die Denkanstöße und Hilfen.
Gruß Gerd
Gerd schrieb:> Am CPLD sind 1uF und 100nF Kondensatoren vor jedem Spannungseingang.
Da möchte ich noch darauf hinweisen, dass CPLDs gern mal recht knackig
schalten, da ist evtl. ein 22nF Kondensator direkt zwischen den
Versorgungsanschlüssen nicht fehl am Platz:
http://www.lothar-miller.de/s9y/categories/14-Entkopplung
Gerd schrieb:> Danke Lothar, sehr aufschlussreich!
Keine Ursache. Das ist natürlich nur "die reine Lehre". In der Praxis
wirst du da das eine oder andere Mal Abstriche machen müssen. Aber wenn
du den Mechanismus kennst...
> Meine C's sind richtig, falsch, falscher und am falschesten> positioniert.
... lässt sich das korrigieren. ;-)
Ich weise noch mal darauf hin, dass das Parallelschalten von
Keramikkondensatoren unterschiedlicher Kapazität (auf kleinem Raum) ganz
schlimme Auswirkungen haben kann.
Dann solltest du aber sinnvollerweise auch auf das "Warum" hinweisen.
Und ich meine fast, dass du da einen Teufel an die Wand malst. Ich
meine: besser unterschiedliche Kondensatoren als vor lauter Angst /gar
keine/....
Das niederimpedante Kondensatoren lokale Schwingkreise bilden und die
Gesamtschaltung insgesamt dann eine höhere Impedanz haben kann, mag
schon sein. Aber besser eine "schlechte" Impedanz zur Dämpfung als gar
keine...