Résistances de terminaison: sont-elles nécessaires?


20

Pour un projet que je conçois, j'utilise une SDRAM IS42s32800 (TSOP) avec un microcontrôleur LPC1788 (QFP). Sur le PCB, j'ai 4 couches avec un plan de masse juste en dessous de la couche de signal supérieure et un plan VDD juste au-dessus de la couche de signal inférieure. Les traces moyennes entre le CPU et la RAM sont de 60 mm de long, la trace la plus longue étant de 97 mm, la ligne d'horloge de 53 mm de long et aucune ligne n'a de résistance de terminaison montée. Ce qui m'intéresse, c'est s'il est absolument nécessaire ou non d'avoir des résistances de terminaison sur les lignes DRAM. Cette conception fonctionnerait-elle sans eux ou ne devrais-je même pas prendre la peine de l'essayer sans les résistances?


Que dit la fiche technique?
Matt Young


Réponses:


32

Si la fréquence / le temps de montée et la distance sont suffisamment élevés pour causer des problèmes, alors oui, vous avez besoin d'une résiliation.

Modèle de ligne de transmission

À la trace la plus longue de 97 mm, je pense que vous vous en sortirez probablement sans eux (compte tenu des résultats des calculs ci-dessous). vous en avez besoin à partir des résultats.

Si vous ne disposez pas de cette fonctionnalité, vous pouvez effectuer des calculs approximatifs à l'aide de SPICE.
J'ai eu un petit problème avec LTSpice , voici les résultats (n'hésitez pas à corriger les choses si quelqu'un voit une erreur)

Si nous supposons:

  • Le temps de montée de votre signal d'entrée RAM est d'environ 2ns
  • Le PCB est FR4 avec un Er ou ~ 4.1
  • L'épaisseur du cuivre PCB est de 1 oz = 0,035 mm
  • Hauteur de trace au-dessus du plan du sol = 0,8 mm
  • Largeur de trace = 0,2 mm
  • Longueur de trace = 97 mm
  • L'entrée de données RAM est de 10kΩ en parallèle avec 5pF (capacité de la fiche technique, résistance choisie pour une entrée LVTTL typique car rien n'est donné - la fiche technique est assez mauvaise, par exemple le courant de fuite sur p.21 est donné comme 10A !?)
  • L'impédance du pilote est de 100Ω (tirée des valeurs de sortie et de courant élevées / basses de la fiche technique -> Vh = Vdd - 0,4 @ 4mA, donc 0,4V / 4mA = 100Ω)

Utilisation de wCalc (un outil de calculateur de ligne de transmission) réglé en mode microruban et en entrant les chiffres, nous obtenons:

  • Zo = 177,6Ω
  • L = 642,9 pH / mm
  • C = 0,0465 pF / mm
  • R = 34,46 mΩ / mm
  • Délai = 530,4 ps

Maintenant, si nous entrons ces valeurs dans LTSpice en utilisant l'élément de ligne de transmission avec perte et simulons, nous obtenons:

Stripline

Voici la simulation du circuit ci-dessus:

Stripline Sim Zdrv = 100 ohms

De ce résultat, nous pouvons voir avec une impédance de sortie de 100 Ω que nous ne devrions pas nous attendre à des problèmes.

Juste pour l'intérêt, disons que nous avions un pilote avec une impédance de sortie de 20 Ω, le résultat serait assez différent (même à 50 Ω, il y a 0,7 V de dépassement / de sous-dépassement. Notez que cela est en partie dû à la capacité d'entrée de 5pF provoquant la sonnerie, le dépassement à 2 ns serait moindre sans capacité [~ 3,7 V], donc comme Kortuk le souligne, vérifiez également les paramètres localisés même s'il n'est pas traité comme une TLine - voir fin):

Stripline Sim Zdrv = 20 ohm

Une règle de base est que si le temps de retard (temps pour que le signal passe du conducteur à l'entrée) est supérieur à 1/6 du temps de montée, nous devons alors traiter la trace comme une ligne de transmission (notez que certains disent 1/8, certains disons 1 / 10ème, qui sont plus conservateurs) Avec un retard de 0,525 ns et un temps de montée de 2ns donnant 2 / 0,525 = 3,8 (<6), nous devons le traiter comme une TLine. Si nous augmentons le temps de montée à 4ns -> 4 / 0,525 = 7,61 et faisons à nouveau la même simulation de 20 Ω, nous obtenons:

Stripline Zdrv = 20 ohm Tr = 4ns

Nous pouvons voir que la sonnerie est beaucoup moins importante, donc aucune action ne doit être prise.

Donc, pour répondre à la question, en supposant que je suis proche des paramètres, il est peu probable que les laisser de côté vous cause des problèmes - d'autant plus que j'ai choisi un temps de montée / descente de 2ns, ce qui est plus rapide que la fiche technique du LPC1788 (p.88 Tr min = 3 ns, Tfall min = 2,5 ns)
Pour être sûr, mettre une résistance série 50 Ω sur chaque ligne ne ferait probablement pas de mal.

Modèle à composants regroupés

Comme indiqué ci-dessus, même si la ligne n'est pas une ligne de transmission, nous pouvons toujours avoir une sonnerie causée par les paramètres localisés. La trace L et le récepteur C peuvent provoquer de nombreuses sonneries si le Q est suffisamment élevé.
En règle générale, en réponse à une entrée de pas parfaite , un Q de 0,5 ou moins ne sonnera pas, un Q de 1 aura un dépassement de 16% et un Q de 2 44% de dépassement.
En pratique, aucune entrée de pas n'est parfaite, mais si le pas de signal a une énergie significative au-dessus de la fréquence de résonance LC, alors il y aura une sonnerie.

Donc, pour notre exemple d'impédance de pilote de 20 Ω, si nous traitons simplement la ligne comme un circuit groupé, le Q sera:

Q=LCRs=62,36nH9.511pF20Ω=4,05

(La capacité est une capacité d'entrée de 5pF + une capacité de ligne - la résistance de ligne est ignorée)

La réponse à une entrée de pas parfaite sera:

Vovershoot=3.3Ve-π(4Q2)-1=2.23V

Ainsi, le pire pic de dépassement sera 3,3 V + 2,23 V = ~ 5,5 V

Pour un temps de montée de 2 ns, il faut calculer la fréquence de résonance LC et l'énergie spectrale supérieure à celle-ci en raison du temps de montée:

Fréquence de sonnerie = 1 / (2PI * sqrt (LC)) = 1 / (2PI * sqrt (62,36nH * 9,511pF)) = 206 MHz

12πLC=12π62,36nH9.511pF

Un temps de montée de 2 ns a une énergie significative en dessous de la (règle générale) fréquence "genou", qui est:

0,5 / Tr = 0,5 / 2 ns = 250 MHz, ce qui est supérieur à la fréquence de sonnerie calculée ci-dessus.

Avec une fréquence de genou exactement égale à la fréquence de sonnerie, le dépassement sera environ la moitié de celui de l'entrée de pas parfaite, donc à environ 1,2 fois la fréquence de genou, nous examinons probablement environ 0,7 de la réponse de pas parfaite:

Donc 0,7 * 2,23 V = ~ 1,6 V

Pic de dépassement estimé avec une durée de montée de 2 ns = 3,3 V + 1,6 V = 4,9 V

LC0,5
Avec la résistance du pilote de 100 Ω par le haut, cela signifierait une résistance de série de 60 Ω (d'où l'ajout d'une résistance de série de 50 Ω ne ferait pas de mal ci-dessus)

Simulations:

Lumped

Perfect Step Simulation:

Réponse par étapes groupées

Simulation Risetime 2 ns:

Risque forfaitaire de 2ns

Solution (avec 100 Ω Rdrv + résistance série 60 Ω = 160 Ω R1 total ajouté):

Solution amortie de façon critique

Nous pouvons voir que l'ajout de la résistance de 160 Ω produit le dépassement critique de 0 V attendu.

Les calculs ci-dessus sont basés sur des règles empiriques et ne sont pas tout à fait exacts, mais devraient se rapprocher suffisamment dans la plupart des cas. L'excellent livre "High Speed ​​Digital Design" de Jonhson et Graham est une excellente référence pour ce genre de calculs et bien plus encore (lire le chapitre d'exemple NEWCO pour des informations similaires à celles ci-dessus, mais mieux - une grande partie de ce qui précède était basée sur les connaissances de ce livre)


@OliGlaser, généralement, dans le monde réel, mesurons-nous L et C d'une microruban (pour un système à blocs) ou le calculons-nous simplement pour obtenir une estimation éclairée d'une résistance pour un Q de 0,5, puis ajustons cette valeur empiriquement ?
Saad

1
Je dirais que cela dépend de votre projet et de vos outils. Si vous utilisez des outils PCB haut de gamme, ce genre de choses et plus encore seront faites automatiquement pour vous si vous spécifiez les bonnes contraintes. Si vous n'utilisez pas d'outils coûteux, il est certainement avantageux d'exécuter au moins les estimations initiales pour déterminer si vous pourriez rencontrer des problèmes - cela ne prend pas longtemps et peut potentiellement éviter de nombreux problèmes plus tard. Si vous n'êtes pas sûr, vous pouvez toujours faire des choses comme ajouter des tampons pour une résistance de terminaison à installer si nécessaire (différentes valeurs peuvent être essayées - empiriquement, c'est bien si cela fonctionne)
Oli Glaser

Notez également que vous n'avez pas besoin que le Q soit sur 0,5, en dessous c'est aussi bien (c'est au-dessus du point de départ de la sonnerie - sous-amorti) 0,5 est juste la valeur optimale (atténuée par les critiques) pour le temps de montée le plus rapide sans dépassement. Lorsque vous augmentez R (suramorti), le temps de montée ralentit et finit par devenir un problème, mais vous aurez généralement une certaine marge.
Oli Glaser

6

Altera recommande leur utilisation avec certains types de SDRAM dans ce document, mais dit qu'ils peuvent être évités en utilisant une terminaison interne pour le FPGA et la SDRAM, si elle est offerte. Aucune des cartes FPGA que j'ai avec SDRAM n'a de terminaison externe sur les connexions et les périphériques n'ont pas de terminaison interne. Il semble qu'ils devraient être utilisés, idéalement, mais dans la pratique, ils sont souvent laissés de côté. Vous devriez vous en tirer.


Je ne l'ai pas non plus - mais le fabricant de ma carte de développement les a utilisés, alors j'ai pensé que je devrais aussi bien
özg

@ user9663 Si vous voulez effectuer des tests d'émissions, je pense que les résistances de terminaison sont une bonne idée pour éviter les sonneries. Pour être honnête, j'ai très peu d'expérience avec la SDRAM.
juste
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.