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
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
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.
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.
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.
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.
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 ?
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
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.
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.
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.
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.
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
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.
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...