Skip to content
RFrftools.io
Comms

Calculateur de synchronisation et d'intégrité du signal SPI

Calculez les paramètres de synchronisation du bus SPI, y compris la période de bits, la durée de trame, la fréquence d'horloge maximale limitée par la capacité de trace et la fréquence de balayage du signal

Loading calculator...

Formule

tbit=1/fCLK;τ=RdriveCtrace;fmax=1/(4.4τ)t_bit = 1/f_CLK; τ = R_drive·C_trace; f_max = 1/(4.4τ)
t_bitPériode de bits (ns)
τConstante de temps RC (ns)
R_driveImpédance de sortie du lecteur (3,3 V/I_Drive) (Ω)
C_traceCapacité de trace totale (F)
f_maxFréquence d'horloge maximale (Hz)

Comment ça marche

Ce calculateur détermine les limites de fréquence d'horloge SPI, les temps de configuration/d'attente et les taux de transfert de données pour une communication maître-esclave fiable. Les ingénieurs embarqués et les concepteurs de FPGA l'utilisent pour vérifier les marges temporelles entre les microcontrôleurs et les circuits intégrés périphériques. Conformément à la spécification SPI d'origine de Motorola (désormais maintenue par les fabricants de circuits intégrés individuels et documentée dans la note d'application NXP AN3020 « Interfacing to the SPI »), le protocole utilise 4 signaux : SCLK, MOSI, MISO et CS. Bien que le SPI ne soit régi par aucune norme ISO/IEC unique, les paramètres de synchronisation de facto sont documentés dans la note d'application AN901 de Microchip et la norme JEDEC JESD79F pour les mémoires compatibles SPI définit les exigences de synchronisation pour les périphériques flash et SRAM à haut débit. Les fréquences d'horloge vont de 100 kHz à 100 MHz selon les capacités de l'appareil. Les mémoires flash classiques prennent en charge 50 à 133 MHz (série Winbond W25Q), tandis que les ADC se limitent souvent à 1 à 20 MHz. Les paramètres de synchronisation critiques incluent t_setup (données valides avant la fin de l'horloge, généralement de 5 à 25 ns), t_hold (données valides après la fin de l'horloge, généralement de 5 à 15 ns) et t_clk (période d'horloge minimale). Une horloge SPI de 10 MHz fournit une période de 100 ns, permettant une configuration de 40 ns, un maintien de 40 ns et une marge de 20 ns. À 50 MHz, ces marges sont réduites à 8 ns chacune, ce qui nécessite une disposition minutieuse du circuit imprimé avec une correspondance des traces dans un délai de 1 ns (15 cm).

Exemple Résolu

Une interface de capteur industrielle connecte un microcontrôleur STM32H7 à un ADC 24 bits ADS1256 via SPI. Selon la fiche technique de l'ADS1256 : F_SCLK_Max = 1,92 MHz, t_setup = 50 ns, t_hold = 25 ns. Le STM32H7 fonctionnant à 480 MHz fournit une horloge SPI à partir de l'APB2 (120 MHz). Calcul du préscaler : 120 MHz/1,92 MHz = 62,5, arrondi à 64, ce qui donne un SCLK réel = 1,875 MHz. À cette fréquence : t_clk = 533 ns, fournissant une demi-période de 266 ns contre une exigence de configuration de 50 ns (marge de 5,3 fois). Débit de données = 1,875 MHz/24 bits = 78,1 kSps. Avec des traces de PCB de 10 cm (propagation de 0,6 ns), le délai total est bien inférieur au temps de maintien requis de 25 ns.

Conseils Pratiques

  • Conformément à la puce AN1067, maintenez les longueurs de trace SPI inférieures à 10 cm pour les fréquences supérieures à 10 MHz afin de maintenir les marges temporelles supérieures à 5 ns
  • Utilisez CPOL=0, CPHA=0 (Mode 0) par défaut - 85 % des périphériques SPI prennent en charge ce mode selon des enquêtes menées auprès du secteur
  • Ajoutez des résistances de terminaison de la série 33-100 ohms sur SCLK et MOSI pour les traces de plus de 5 cm à des fréquences supérieures à 20 MHz afin de réduire la sonnerie de 60 à 80 %

Erreurs Fréquentes

  • Exécution du SPI à la fréquence maximale du microcontrôleur (par exemple, 50 MHz) sans vérifier les limites des périphériques esclaves - de nombreux capteurs sont limités à 1 à 10 MHz
  • Ignorer l'inadéquation des modes CPOL/CPHA : le mode 0 par rapport au mode 3 entraîne une corruption de 100 % des données malgré des formes d'onde d'apparence similaire
  • Utilisation de longs câbles non blindés (>30 cm) à des fréquences supérieures à 1 MHz, introduisant une diaphonie de 10 à 50 mV qui corrompt les LSB

Foire Aux Questions

En fonction de l'appareil : les microcontrôleurs prennent généralement en charge 25 à 50 MHz, les mémoires flash SPI atteignent 133 MHz (Quad SPI) et les FPGA peuvent dépasser 200 MHz. La limite pratique est fixée par le dispositif le plus lent de la chaîne et par les parasites des PCB (généralement une capacité de trace de 1 à 2 pF/cm).
Limité par les lignes CS et la capacité du bus. Chaque appareil ajoute une capacité de charge de 5 à 15 pF. À 50 MHz, la capacité totale du bus doit rester inférieure à 30 pF (environ 3 à 5 appareils). L'utilisation d'un décodeur 74HC138 permet d'utiliser 8 appareils avec seulement 3 broches GPIO.
t_setup (5-50 ns en général) : les données doivent être stables avant la fin de l'horloge. t_hold (5-25 ns en général) : les données doivent rester stables après la fin de l'horloge. t_clk_min (8-1000 ns) : période d'horloge minimale. t_css (20-100 ns) : temps de configuration CS avant la première horloge. t_csh (20-100 ns) : temps d'attente CS après la dernière horloge.

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

Calculateurs associés