Forum: Mikrocontroller und Digitale Elektronik SPI Taktleitung nicht sauber


von Joni (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

Ich habe eben mal meine SPI Taktleitung mit einem Analog Kompensierten 
Tastkopf überprüft, finde das Signal bei höherer Datenübertragungsrate 
aber nicht sauber. Eventuell kann mir ja jemand sagen ob das dennoch in 
Ordnung ist. Probleme habe ich gar keine.

Anbei 3 Bilder: eins bei 1,25 Mhz; 5 Mhz und 20 Mhz.

Tastkopf hat eine Bandbreite von 300Mhz.

lG

von GEKU (Gast)


Lesenswert?

Joni schrieb:
> Probleme habe ich gar keine.

Die Signale sehen sauber aus, interessant wäre eine Zweikanalaufnahme, 
Takt mit Daten, um es komplett bewerten zu können

von Dunno.. (Gast)


Lesenswert?

wo und wie hast du denn die Masse abgegriffen?

von Stefan F. (Gast)


Lesenswert?

Die Signale sehen gut aus. Die Bilder zeigen, dass du eine kapazitive 
Last auf der Leitung hast (was vollkommen normal ist) und dass du bei 20 
MHz in den Bereich kommst, wo die Leistung des Treiber allmählich zu 
schwach wird, diese Kapazitäten schnell genug umzuladen.

Ich würde die Schnittstelle sicherheitshalber mit maximal 10 MHz 
betreiben, falls Zuverlässigkeit wichtig ist.

von Einer K. (Gast)


Lesenswert?

Das 20Mhz  Signal sieht nicht ganz so gut aus...
Als wäre es hinter einem Serienwiderstand abgenommen, und würde darum 
nicht die Endlagen erreichen.
Dabei gehe ich davon aus, dass die Pegel der Realität entsprechen und 
nicht eine Folge einer Messwertverfälschung sind.

Kann sein, dass es so noch zuverlässig funktioniert.
Aber viel höher darf die Frequenz nicht mehr werden.

von Joni (Gast)


Angehängte Dateien:

Lesenswert?

Danke für die Antworten.

Anbei mit SCK und MOSI.

Als Massebezug habe ich die "interne" Masse der Platine genommen, also 
nach dem DCDC Converter.

Hier habe ich an einem Debug Header abgegriffen, da ist kein 
Serienwiderstand auf der Clock/Daten Leitung. Ansonsten besitzen alle 
anderen SPI Geräte jeweils einen 22 Ohm Serienwiderstand auf der 
Taktleitung sowie Datenleitungen.

von HildeK (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Das 20Mhz  Signal sieht nicht ganz so gut aus...
Das stimmt!

> Als wäre es hinter einem Serienwiderstand abgenommen, und würde darum
> nicht die Endlagen erreichen.
Ein (niederohmiger) Serienwiderstand bewirkt das nicht.
Leider nicht erkennbar, aber vielleicht ist die Bandbreite des Skopes 
auf 20MHz limitiert. Das würde jedenfalls gut zu den Bildern passen.

von Einer K. (Gast)


Lesenswert?

SPI Mode 0 oder 2  ?
Dann scheint mir das 20MHz Signal noch ok zu sein.

von GEKU (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> SPI Mode 0 oder 2

Ich würde auf Mode 0 tippen, da die Clock Ruhelage Low ist.

Die Daten werden mit der steigenden Flanke des Clocksignals, bei der 
fallenden Flanke findet der Datenwechsel statt, da sowohl Flanken am 
Clocksignal alsauch beim Datensignal zusammenfallen.

https://www.mikroe.com/blog/spi-bus

welches Zeichen wurde übertragen?   0x05 ?

von Joni (Gast)


Lesenswert?

HildeK schrieb:
> Leider nicht erkennbar, aber vielleicht ist die Bandbreite des Skopes
> auf 20MHz limitiert. Das würde jedenfalls gut zu den Bildern passen.

Hm, habe jetzt nicht dergleichen in den Einstellungen gefunden.. Laut 
Handbuch ist die mindest BW 70MHz.

Es wurde mit Mode 1 und 0xA0=0b1010 0000 übertragen.

Vielen Dank

von Wolfgang (Gast)


Lesenswert?

GEKU schrieb:
> Die Signale sehen sauber aus

Hüstel ...

Findest du nicht, dass das 20MHz sehr danach aussieht, als ob es mit der 
kapazitiven Belastung nicht mehr so wirklich klar kommt?

Man müsste sich unter Berücksichtigung der tatsächlichen Schaltschwellen 
der Empfänger das auf der digitalen Seite resultierende Timing genauer 
ansehen, um abschätzen zu können, wieviel Reserven noch bleiben. 
Insbesondere wenn Master und Slave unterschiedliche Treiberleistung 
haben, kann das schief gehen.

von Jürgen W. (Firma: MED-EL GmbH) (wissenwasserj)


Lesenswert?

Ein typischer uC hat 50-100R Quellwiderstand. Dazu kommen mindestens 5pF 
am Pin, nochmal 10-20pF an der Leitungsführung und je Anschluß nochmal 
5pF - der Tastkopf alleine hat mindestens 15pF.

Bei Dir scheint die Zeitkonstante ca. 20nsec zu sein, also ca. 200 bis 
400pF - das oder, wie oben auch vermutet, Du hast irrtümlich die 
Bandbegrenzung aktiv - das sind auch typisch 20MHz.

von Einer K. (Gast)


Lesenswert?

Joni schrieb:
> Es wurde mit Mode 1 .... übertragen.
Dann glaube ich kaum, dass das funktioniert.
Dafür kommt die steigende Taktflanke zum falschen Zeitpunkt
Zumindest sieht es für mich bei 20MHz so aus.
Das 1,25MHz Bild sieht dann richtig aus.

von Falk B. (falk)


Lesenswert?

Joni schrieb:
> Danke für die Antworten.
>
> Anbei mit SCK und MOSI.
>
> Als Massebezug habe ich die "interne" Masse der Platine genommen, also
> nach dem DCDC Converter.

Das war gar nicht die Frage. Sondern WIE du den Tastkopf und dessen 
Masse kontaktiert hast. Denn bei den Signalsteilheiten, aka, 
Anstiegszeiten sollte man wissen was man tut. Stichwort Massefeder.

https://www.mikrocontroller.net/articles/Oszilloskop#Tastk.C3.B6pfe_richtig_benutzen

> Hier habe ich an einem Debug Header abgegriffen, da ist kein
> Serienwiderstand auf der Clock/Daten Leitung. Ansonsten besitzen alle
> anderen SPI Geräte jeweils einen 22 Ohm Serienwiderstand auf der
> Taktleitung sowie Datenleitungen.

Wozu soll das gut sein? Das Taktsignal ist für alle SPI-Slaves ein 
Eingang, da gehört im Normalfall kein Widerstand hin. Und an den 
SPI-Master auch nicht, wenn mehrere Slaves dran hängen, denn diese 
Serienterminierung ist nur bei Punkt zu Punkt Verbindungen zulässig, 
siehe Wellenwiderstand.

von Joe F. (easylife)


Lesenswert?

Joni schrieb:
> Tastkopf hat eine Bandbreite von 300Mhz.

Bei x1 oder x10?
Stell mal "x10" ein, wenn du mit "x1" misst.
Du wirst erstaunt sein.

von GEKU (Gast)


Lesenswert?

Wolfgang schrieb:
> Man müsste sich unter Berücksichtigung der tatsächlichen Schaltschwellen
> der Empfänger das auf der digitalen Seite resultierende Timing genauer
> ansehen, um abschätzen zu können, wieviel Reserven noch bleiben

Genau so ist es. Man könnte mit dem Oszilloskope mit den Daten ein 
Augenmuster aufzeichnen und dann kontrollieren, ob zum Zeitpunkt der 
übernehmenenden Taktflanken ein eindeutiger High oder Lowpegel mit 
Spielraum davor und danach vorliegt.
Nicht steil angesteigende Flanken alleine sind noch kein 
Qualitätskriterium, es gilt auch die Lage und den Jitter zu bewerten. 
Eine Methode  ist die Darstellung von Augenmusterdiagramme. 
https://de.m.wikipedia.org/wiki/Augendiagramm

von c-hater (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:

> Das 20Mhz  Signal sieht nicht ganz so gut aus...

> Aber viel höher darf die Frequenz nicht mehr werden.

So ist es.

von P. S. (namnyef)


Lesenswert?

Bei der Beurteilung der Signalqualität ist es recht hilfreich, wenn man 
mit dem Oszi einfach mal ein "Eye Pattern" (google) aufzeichnet.

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


Lesenswert?

Joni schrieb:
> Tastkopf hat eine Bandbreite von 300Mhz.
Und das Oszi? Was hat das für eine analoge Bandbreite?

von neuer PIC Freund (Gast)


Lesenswert?

> Stell mal "x10" ein, wenn du mit "x1" misst.

Hat bestimmt keine 33V Hub, was für x10 steht würde. Plädiere daher auch 
für x10.

von Helmut S. (helmuts)


Lesenswert?

In den Oszibildern steht unten bei den Eingängen 1:1.
Waren die Tastköpfe bei der Messung wirklich auf 10:1 gestellt?

In der Stellung 1:1 hat man ca. 100pF Kapazität an der Messspitze.

von Falk B. (falk)


Lesenswert?

Helmut S. schrieb:
> In der Stellung 1:1 hat man ca. 100pF Kapazität an der Messspitze.

Und eine Bandbreite von 6-10MHz ;-)

von Joe F. (easylife)


Angehängte Dateien:

Lesenswert?

Falk B. schrieb:
> Helmut S. schrieb:
>> In der Stellung 1:1 hat man ca. 100pF Kapazität an der Messspitze.
>
> Und eine Bandbreite von 6-10MHz ;-)

Und das Icon "1:1" unten am Rand lässt das auch vermuten...

: Bearbeitet durch User
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.