Y a-t-il une exigence en matière d’impédance des liaisons SPI ?

Zachariah Peterson
|  Créé: August 10, 2022  |  Mise à jour: October 6, 2022
Impédance de liaison SPI

Cet article traite de la norme SPI (Serial Peripheral Interface) et de ses défis en matière d’intégrité du signal, qui découlent tous de l’impédance de l’interface et des liaisons transportant des signaux numériques.

Avant de passer au sujet principal de cet article, je vais répondre à ma propre question :

  • Il n’y a pas d’exigence en matière d’impédance des liaisons SPI. Vous pouvez bien sûr dimensionner les pistes du bus SPI de sorte que leur impédance soit de 50 Ohms, mais cela n’est pas nécessaire.

En écrivant cela, je veux dire que la norme SPI ne mentionne aucune exigence d’impédance particulière. Si vous regardez d’autres recommandations de conception qui avancent quelque chose comme « la norme SPI a besoin d’une impédance contrôlée », vous verrez en fait que, très souvent, elles n’indiquent aucune valeur d’impédance spécifique. Au mieux, elles indiqueront une gamme allant de 30 Ohms à 150 Ohms. C’est une gamme de valeurs vaste (et peu utile).

J’ai également vu récemment une note d’application d’un grand fabricant de semi-conducteurs indiquant que les lignes SPI ont besoin d’une impédance contrôlée et d’une correspondance des longueurs, ignorant apparemment les temps de configuration et le duplex intégral de cette interface. Elles n’indiquent pas non plus de valeur d’impédance ou de valeur de tolérance de disparité de longueur. À mon humble avis, ce n’est pas une recommandation très utile.

La réalité est que les lignes SPI n’ont besoin d’un contrôle d’impédance que lorsque la longueur de l’interconnexion devient très longue. Et comme il n’y a pas d’exigence d’impédance spécifique dans le bus, vous avez une certaine liberté dans la conception et dans la terminaison des canaux.

Mais alors, qu’est-ce que l’on considère comme interconnexion « très longue » et quand est-ce qu'une méthode de terminaison est-elle nécessaire ? Nous allons le découvrir dans cet article.

Topologie SPI et conception de liaisons

La topologie d’une interface SPI est très simple. Elle utilise trois lignes avec une seule liaison contrôleur-périphérique, ou quatre lignes avec plusieurs esclaves dans le bus. Le contrôleur en amont peut envoyer et recevoir des données sur une paire de lignes jusqu’à 60 Mbps, les données pouvant être envoyées via un câble à une autre carte ou un autre dispositif. La topologie d’un bus SPI typique est illustrée ci-dessous.

Topologie de bus SPI

Que se passe-t-il sur le circuit imprimé ? Si vous consultez les fiches techniques d’un composant doté d’une interface SPI, vous trouverez des valeurs minimales de temps de montée pouvant descendre jusqu’à 1 ns pour les composants avancés. Pour certains composants, le temps de montée peut être beaucoup plus long, peut-être de 20 ns ou plus.

De toute évidence, un bus lent comme un bus SPI peut toujours avoir un comportement de signal haute vitesse même si le débit de données et le débit d’horloge sont faibles, mais il n’y a aucune spécification d’impédance ! Quelle est la meilleure façon d’aborder les conceptions SPI ?

Quel est le temps de montée dans un routage SPI ?

On parle peu de ce problème de l’interface SPI alors qu’il s’agit de l’un des problèmes classiques de la conception de circuits imprimés haute vitesse. Puisque nous avons une situation où nous devons déterminer si une liaison SPI est « rapide » ou « lente » en termes de temps de montée, la première étape consiste à comprendre ce qui influe exactement sur le temps de montée.

La première étape consiste à rechercher dans vos fiches techniques le composant principal qui contrôlera votre bus SPI. Si votre composant est bien documenté, le temps de montée sur l’interface SPI sera exprimé en fonction d’une capacité de charge particulière observée sur le bus. Notez que la « capacité de charge » suppose une inductance nulle dans la connexion entre la sortie SPI et la charge de test, de sorte que vous pouvez traiter cette valeur de temps de montée comme une constante de temps RC en première approximation.

Capacité de charge du temps de montée SPI
Exemple d’entrée de fiche technique relative au temps de montée et de descente du signal pour une capacité de charge particulière.

Les valeurs figurant dans l’exemple ci-dessus qui montre une capacité de charge élevée ne sont pas typiques de la plupart des composants, mais elles illustrent l’idée principale : le temps de montée est déterminé par la capacité du bus.

Dans cet exemple, si nous prenons le temps de montée de 10 % - %-90 % indiqué ci-dessus et que nous déterminons son équivalent en 2.2RC (norme utilisée pour déterminer les valeurs constantes de temps), nous obtenons une résistance observée dans le bus de R = 113,6. Cela signifie que, si nous ajoutions une résistance au driver (voir ci-dessous), nous pourrions ralentir le temps de montée tout en faisant correspondre l’impédance.

Gardez ces points à l’esprit car, plus tard, nous les utiliserons pour comprendre pourquoi la terminaison de résistance série peut être utilisée pour ralentir le bus SPI. Maintenant que nous connaissons le temps de montée du bus observé au récepteur, nous pouvons déterminer quand le bus est considéré comme « long ».

Le bus SPI est-il long ou court ?

Pour obtenir une estimation approximative, nous pouvons comparer la distance parcourue par le signal pendant son temps de montée à la longueur totale. L’autre approche consiste à utiliser une estimation de la bande passante à partir du temps de montée (qui est de 35 MHz dans l’exemple ci-dessus) pour déterminer quand l’impédance d’entrée du bus s’éloigne trop d’une impédance de charge comme je l’ai décrit précédemment dans cet article. Le moyen le plus simple d’obtenir une estimation approximative est de comparer la distance parcourue par le signal pendant son temps de montée au délai de propagation de l’interconnexion.

Je préfère utiliser une limite conservatrice de 10 % pour estimer quand le bus commence à être long ; si le retard de propagation est inférieur à environ 10 % de la distance parcourue pendant le temps de montée du signal, alors le bus est considéré comme court et nous n’avons pas besoin de nous soucier de terminer l’impédance du bus :

Retard de propagation du temps de montée SPI

Notez que d’autres recommandations indiquent un seuil compris entre 10 % et 50 % ; il n’y a pas de valeur unique à partir de laquelle le bus devient soudainement long, c’est une question de jugement. Par exemple, pour un signal SPI de 10 ns sur une couche de circuit imprimé où Dk = 4, la limite de 10 % est de 0,15 mètre, soit 15 cm. Cela signifie que tout routage SPI portant un signal de 10 ns inférieur à 15 cm sera considéré comme un bus court, ce qui s’applique à de nombreuses situations.

Si vous avez un bus SPI lent, voici quelques recommandations très simples que vous pouvez suivre pour éviter certains problèmes élémentaires d’intégrité du signal. Voici quelques mesures très simples que vous pouvez mettre en œuvre pour réduire simultanément l’inductance (qui conduit à l’oscillation), la diaphonie et les émissions par rayonnement :

  • Acheminez vos lignes SPI sur un plan de masse, même si elles ne sont pas à haute vitesse
  • Utilisez des pistes plus larges sur les diélectriques minces : sur les couches externes, ces dimensions sont de 2 à 2,5 fois la distance à la masse sur la couche suivante ; des pistes de 10 à 15 mil sur les couches internes devraient faire l’affaire
  • Si vous utilisez une carte à deux couches et que vous n’avez pas de place pour un plan de masse, placez la masse autour de vos lignes SPI pour fournir un chemin de retour clair

Pour de meilleures performances, je recommande de ne pas utiliser deux couches et de plutôt commencer par un empilement de circuit imprimé compatible avec les conceptions numériques haute vitesse.

Pourquoi certains indiquent-ils ou utilisent-ils 50 Ohms pour les lignes SPI ?

Dans les cas où les lignes SPI doivent avoir une impédance spécifique, il existe une bonne raison pour laquelle les concepteurs utilisent 50 Ohms comme impédance cible. Ironiquement, je ne pense pas que les gens comprennent vraiment l’intérêt de faire cela, mais ils finissent par prendre la bonne décision, même si c’est pour de mauvaises raisons.

Si 50 Ohms est la cible d’impédance caractéristique d’un bus SPI électrique, il y a probablement sur la carte d’autres pistes à impédance contrôlée qui ciblent également l’impédance caractéristique de 50 Ohms. Le fait d’avoir une seule cible d’impédance facilite grandement le contrôle de l’impédance pour un fabricant. S’ils doivent échanger des matériaux dans l’empilement pour atteindre votre objectif d’impédance, il est beaucoup plus facile de le faire s’il n’y a qu’une seule cible à atteindre dans votre empilement.

Pourquoi utilise-t-on une terminaison en série sur les bus SPI courts ?

D’après ce que nous avons vu ci-dessus, dans la grande majorité des situations pratiques avec une liaison SPI, il n’y a pas besoin de terminaison au niveau du driver ou du récepteur. Si c’était le cas, il y aurait une spécification d’impédance quelque part dans les fiches techniques des composants, dans les spécifications SPI ou les deux. De plus, les composants auraient probablement une terminaison intégrée appliquée à l’impédance cible, ce qui vous éviterait d’avoir à placer une résistance.

Résistances de terminaison SPI
Résistances de terminaison placées sur un bus SPI.

La réponse est assez simple : l’idée est de ralentir le signal émis par le driver. La résistance offre également l’avantage d’amortir toute oscillation au niveau de la sortie. Notez que dans ce cas, le choix de cette résistance n’a rien à voir avec la correspondance d’impédance à déterminer en cas de ligne électrique courte.

Si votre contrôleur est un composant avancé comme un FPGA et que vous intégrez une interface SPI à ce contrôleur, le temps de montée peut être très court car la structure physique de l’appareil garantit simplement des temps de montée très rapides. Par conséquent, il peut être avantageux de ralentir le signal afin de ne pas avoir un signal rapide créant une diaphonie. Dans ce cas, vous devez placer la résistance près du driver.

Veillez à ne pas trop ralentir le temps de montée, sinon le signal sera trop lent pour faire basculer les E/S au niveau de la charge et le signal pourrait ne pas être lu correctement. Vous pouvez également outrepasser les temps de préparation si le temps de montée est trop long. Il existe un modèle RLC simple qui peut être simulé pour déterminer la valeur de résistance en série appropriée.

Un modèle d’éléments regroupés pour un bus SPI court

Le modèle réel d’un bus SPI est plus complexe. Il comprend les facteurs suivants :

  • Capacité des pistes de l’ensemble du bus (C)
  • Inductance des pistes (L)
  • Impédance de la source
  • Capacité de charge

Le bus court ressemble essentiellement à ce modèle LC :

Modèle LC de bus SPI
Modèle de bus SPI avec une ligne de transmission courte.

L’impédance de la source est idéalement de 0 Ohms, bien qu’en réalité il puisse s’agir d’une faible valeur d’environ 10 à 30 Ohms. La capacité de charge doit être spécifiée dans la fiche technique du récepteur.

Howard Johnson en parle sur le site Web de SigCon ; il s’agit d’un bus qui peut présenter une oscillation sous-amplifiée s’il reçoit un signal rapide et s’il y a trop d’inductance ; il peut également être simulé dans SPICE. L’ajout d’une résistance en série dans ce cas ajoute une atténuation, ce qui réduira le temps de montée.

Notez que je n’ai pas tenu compte de la résistance des pistes dans cette liste ; la résistance des pistes sera très faible et fournira des pertes et une atténuation négligeables. En effet, la résistance des pistes est de l’ordre du milliOhm et la résistance approximative qui régit le temps de montée est comprise entre 10 et 100 Ohms, donc la résistance des pistes est clairement négligeable.

Résistance en série dans un bus SPI long

Dans le cas d’un bus long, ce qui est peu courant, vous devez faire correspondre la ligne SPI à une impédance cible (50 Ohms est une valeur pratique). Dans ce cas, en comparant simplement le basculement du signal au niveau de l’E/S SPI au courant, vous obtiendrez une valeur de résistance pour le signal à l’état MARCHE.

Dans ce cas, la résistance en série nécessaire pour atteindre une cible de 50 Ohms sera généralement de 22 Ohms ou de 33 Ohms. Placez-la près du driver pour que l’impédance corresponde et ralentissez le signal comme décrit ici.

Modèle LC de bus SPI
Modèle de bus SPI avec une résistance de terminaison en série.

L’autre raison de le faire est si vous avez plusieurs composants esclaves sur le bus ; vous devrez alors adapter la résistance à l’impédance d’entrée dans chaque branche du bus, et il peut être pertinent de ralentir le temps de montée de manière suffisante pour que vous n’ayez pas à vous soucier de l’impédance d’entrée au niveau des séparations dans le bus. En général, il est préférable de séparer la ligne près du driver car l’impédance d’entrée dans chaque section sera plus proche de l’impédance caractéristique de la ligne.

Un aspect que nous n’avons pas abordé dans cet article est le format de signalisation dans les interfaces SPI. Pour en savoir plus sur cet aspect du protocole SPI, lisez cette excellente présentation de Mark Harris :

Que vous deviez ou non respecter une exigence d’impédance de liaison SPI, vous pouvez concevoir les meilleurs cartes à l’aide des fonctionnalités de conception et de routage des circuits imprimés d’Altium Designer®. Lorsque vous avez terminé votre conception et que vous souhaitez transmettre des fichiers à votre fabricant, la plateforme Altium 365™ vous permet de collaborer et de partager vos projets en toute simplicité.

Tout cela n'est qu'un aperçu des possibilités offertes par Altium Designer sur Altium 365. Commencez sans plus attendre votre essai gratuit d'Altium Designer + Altium 365.

A propos de l'auteur

A propos de l'auteur

Zachariah Peterson possède une vaste expérience technique dans le milieu universitaire et industriel. Avant de travailler dans l'industrie des PCB, il a enseigné à la Portland State University. Il a dirigé son M.S. recherche sur les capteurs de gaz chimisorptifs et son doctorat en physique appliquée, recherche sur la théorie et la stabilité du laser aléatoire. Son expérience en recherche scientifique couvre des sujets tels que les lasers à nanoparticules, les dispositifs électroniques et optoélectroniques à semi-conducteurs, les systèmes environnementaux et l'analyse financière. Ses travaux ont été publiés dans diverses revues spécialisées et actes de conférences et il a écrit des centaines de blogs techniques sur la conception de PCB pour de nombreuses entreprises. Zachariah travaille avec d'autres sociétés de PCB fournissant des services de conception et de recherche. Il est membre de l'IEEE Photonics Society et de l'American Physical Society

Ressources associées

Retournez à la Page d'Accueil