Skip to content
RFrftools.io
Comms

SPI-Timing- und Signalintegritätsrechner

Berechnen Sie die SPI-Bus-Timing-Parameter, einschließlich Bitperiode, Frame-Zeit, maximale Taktfrequenz, begrenzt durch die Leiterbahnkapazität, und Signalanstiegsrate

Loading calculator...

Formel

tbit=1/fCLK;τ=RdriveCtrace;fmax=1/(4.4τ)t_bit = 1/f_CLK; τ = R_drive·C_trace; f_max = 1/(4.4τ)
t_bitBitperiode (ns)
τRC-Zeitkonstante (ns)
R_driveAntriebs-Ausgangsimpedanz (3,3 V/i_Drive) (Ω)
C_traceGesamtspurenkapazität (F)
f_maxMaximale Taktfrequenz (Hz)

Wie es funktioniert

Dieser Rechner bestimmt SPI-Taktfrequenzgrenzen, Einrichtungs-/Haltezeiten und Datenübertragungsraten für eine zuverlässige Master-Slave-Kommunikation. Embedded-Ingenieure und FPGA-Designer verwenden ihn, um die Zeitabstände zwischen Mikrocontrollern und Peripherie-ICs zu überprüfen. Gemäß der ursprünglichen Motorola SPI-Spezifikation (die jetzt von einzelnen IC-Herstellern verwaltet und im NXP-Anwendungshinweis AN3020 „Interfacing to the SPI“ dokumentiert ist) verwendet das Protokoll 4 Signale: SCLK, MOSI, MISO und CS. Obwohl SPI keinen einheitlichen ISO/IEC-Standard hat, sind die De-facto-Timing-Parameter im Microchip-Anwendungshinweis AN901 dokumentiert, und der JEDEC-Standard JESD79F für SPI-kompatible Speicher definiert die Timing-Anforderungen für Hochgeschwindigkeits-Flash- und SRAM-Geräte. Die Taktfrequenzen liegen je nach Gerätekapazität zwischen 100 kHz und 100 MHz. Typische Flash-Speicher unterstützen 50-133 MHz (Winbond W25Q-Serie), während ADCs häufig auf 1—20 MHz begrenzt sind. Zu den kritischen Zeitparametern gehören t_setup (Daten gültig vor der Taktrandbreite, typischerweise 5—25 ns), t_hold (Daten gültig nach der Taktrandbreite, typischerweise 5—15 ns) und t_clk (minimale Taktperiode). Ein 10-MHz-SPI-Takt bietet einen Zeitraum von 100 ns, was eine Einrichtung von 40 ns, eine Haltezeit von 40 ns und eine Zeitspanne von 20 ns ermöglicht. Bei 50 MHz schrumpfen diese Margen auf jeweils 8 ns, was ein sorgfältiges PCB-Layout mit einer Leiterbahnanpassung innerhalb von 1 ns (15 cm) erfordert.

Bearbeitetes Beispiel

Eine industrielle Sensorschnittstelle verbindet einen STM32H7-Mikrocontroller über SPI mit einem ADS1256 24-Bit-ADC. Laut ADS1256-Datenblatt: F_SCLK_Max = 1,92 MHz, t_setup = 50 ns, t_hold = 25 ns. Der STM32H7, der mit 480 MHz läuft, liefert den SPI-Takt von APB2 (120 MHz). Prescaler-Berechnung: 120 MHz/1,92 MHz = 62,5, auf 64 aufgerundet, ergibt den tatsächlichen SCLK = 1,875 MHz. Bei dieser Frequenz gilt: t_clk = 533 ns, was 266 ns Halbperiode gegenüber 50 ns Einrichtungsbedarf ergibt (5,3-fache Marge). Datenrate = 1,875 MHz/24 Bit = 78,1 kSPS. Bei 10 cm Leiterbahnen (0,6 ns Ausbreitung) liegt die Gesamtverzögerung deutlich unter der für die Haltezeit erforderlichen 25 ns.

Praktische Tipps

  • Halten Sie pro Microchip AN1067 die SPI-Leiterbahnlängen für Frequenzen über 10 MHz unter 10 cm, um Zeitmargen über 5 ns beizubehalten
  • Verwenden Sie CPOL=0, CPHA=0 (Modus 0) als Standard — laut Branchenumfragen unterstützen 85% der SPI-Peripheriegeräte diesen Modus
  • Fügen Sie SCLK und MOSI Abschlusswiderstände der Serie 33-100 Ohm hinzu, um Leiterbahnen mit einer Länge von mehr als 5 cm bei Frequenzen über 20 MHz zu reduzieren, um das Klingeln um 60-80%

Häufige Fehler

  • SPI mit maximaler MCU-Frequenz (z. B. 50 MHz) ausführen, ohne die Grenzwerte für Slave-Geräte zu überprüfen — viele Sensoren sind auf 1—10 MHz begrenzt
  • Nichtübereinstimmung zwischen CPOL/CPHA-Modus wird ignoriert: Modus 0 im Vergleich zu Modus 3 verursacht trotz ähnlich aussehender Wellenformen eine 100-prozentige Datenbeschädigung
  • Verwendung langer (> 30 cm) ungeschirmter Kabel bei Frequenzen über 1 MHz, wodurch ein 10-50-mV-Übersprechen entsteht, das LSBs beschädigt

Häufig gestellte Fragen

Geräteabhängig: Mikrocontroller unterstützen in der Regel 25-50 MHz, SPI-Flash-Speicher erreichen 133 MHz (Quad SPI) und FPGAs können 200 MHz überschreiten. Die praktische Grenze wird durch das langsamste Gerät in der Kette und durch PCB-Parasiten (typischerweise 1—2 pF/cm Leiterbahnkapazität) festgelegt.
Begrenzt durch CS-Leitungen und Buskapazität. Jedes Gerät fügt eine Ladekapazität von 5-15 pF hinzu. Bei 50 MHz sollte die Gesamtbuskapazität unter 30 pF bleiben (etwa 3 bis 5 Geräte). Die Verwendung eines 74HC138-Decoders ermöglicht 8 Geräte mit nur 3 GPIO-Pins.
t_setup (5-50 ns typisch): Daten müssen vor dem Taktrand stabil sein. t_hold (5-25 ns typisch): Daten müssen nach dem Taktrand stabil bleiben. t_clk_min (8-1000 ns): minimale Taktperiode. t_css (20-100 ns): CS-Einrichtungszeit vor der ersten Uhr. t_csh (20-100 ns): CS-Haltezeit nach der letzten Uhr.

Shop Components

As an Amazon Associate we earn from qualifying purchases.

USB-UART Adapter

USB to serial adapter for protocol debugging and flashing

USB Logic Analyzer

8-channel USB logic analyzer for capturing digital bus traffic

Verwandte Taschenrechner