J'ai une question concernant la connexion physique d'un bus SPI.
J'ai un maître SPI (un périphérique PIC32) et un certain nombre d'esclaves (dans ce cas, des périphériques PIC16). J'écris uniquement aux esclaves, et le protocole s'occupe de ce que l'on fait quand, donc il n'y a pas de signaux MISO ou SS à craindre et je ne fais que mettre en parallèle les lignes de données et d'horloge avec tous les esclaves. La longueur totale du bus ne dépasse pas quelques pieds (disons 60 cm) et je fais fonctionner le SCK à 8 MHz.
Maintenant, le placement physique des périphériques esclaves (qui sont en fait des nœuds d'interface sur d'autres cartes) est tel que le bus SPI boucle directement vers le maître afin qu'il soit possible de connecter les deux extrémités de chaque boucle à MOSI et SCK respectivement.
Le diagramme suivant montre ce que je veux dire - je parle des connexions en pointillés rouges - et la question est: est-ce une bonne chose de le faire ou non?
J'ai du courant et de la masse pour faire un voyage similaire, et c'est évidemment - et manifestement - utile car cela minimise la chute de tension causée par les esclaves. Cependant, je n'ai aucune idée si c'est une bonne ou une mauvaise chose de faire la même chose avec ces lignes de signaux. Dois-je plutôt autoriser une sorte de terminaison - des résistances à la masse (?) - ou peut-être des résistances en série pour supprimer les réflexions, ou quoi?
Je l'ai essayé à la fois avec et sans connecter les points, pour ainsi dire, et il n'y a pas de différence fonctionnelle et aucun changement que je peux voir sur la portée, mais peut-être que si elle était un peu plus longue que 60 cm ou un peu plus rapide que 8 MHz, J'aurais un problème? Je suis donc à la recherche de conseils sur ce qu'il faut faire pour éviter les ennuis si quelque chose change.
Bien que cette question me préoccupe particulièrement pour un bus SPI de 60 cm @ 8Mhz, existe-t-il des principes généraux pour d'autres situations? Peut-être que les tractions sur un bus I2c devraient être placées différemment?
Tout lien vers du matériel de lecture approprié serait également le bienvenu - je n'ai rien trouvé qui couvre cette question spécifique.
la source
Réponses:
Boucle en arrière? NON. Si la ligne est suffisamment longue pour nécessiter une terminaison (plus longue que risetime * c / 10 environ), conduisez-la suffisamment pour terminer la terminaison correctement et faites correspondre la ligne et la terminaison raisonnablement bien. Si la ligne est suffisamment courte pour ne pas nécessiter de terminaison, elle n'aura pas besoin de la conductivité «supplémentaire» que vous semblez rechercher avec la connexion en boucle.
Une résistance série? NON. Ce style de terminaison de source ne fonctionne que pour un récepteur à un seul point à la fin de la ligne. Aux points antérieurs de la ligne, vous obtenez la pire forme d'onde possible pour vos récepteurs, qui est une étape à demi-tension, suivie d'une pause, suivie d'une autre étape à pleine tension.
la source
c/10
?Le problème que je vois avec la topologie de boucle est qu'il est difficile de placer correctement les terminateurs pour supprimer les réflexions. cela n'a pas beaucoup d'importance à 8 MHz, mais pourrait être devenu un problème à des fréquences plus élevées ou avec des lignes plus longues.
Le seul cas où je vois où les lignes pointillées pourraient aider, c'est quand le délai de propagation du maître à
SLAVE 6
était inacceptable. Dans ce cas, vous devez connecter les lignes pointillées, mais rompre la boucle quelque part au milieu (disons entreSLAVE 3
etSLAVE 4
) et terminer chaque branche indépendamment.la source
Avec des signaux rapides ou de longues lignes, la réflexion du signal devient un problème. Dans ces cas, vous devez terminer correctement la ligne en mettant une résistance reliant l'extrémité de la ligne et la masse (pas le début de la ligne). La terminaison fait que la ligne "semble électriquement infinie", donc le signal ne revient pas. La terminaison a parfois également besoin d'éléments LC pour contrer l'impédance réactive.
Cependant, pour votre cas, la terminaison n'est pas nécessaire (ligne courte pour votre vitesse de signal, en supposant que vous n'opérez pas dans un environnement électriquement bruyant). Voilà pourquoi vous ne voyez aucune différence. C'est également une mauvaise pratique de conception de boucler votre signal. Cela fait boucler le signal, introduisant du bruit dans votre circuit (et il boucle dans les deux directions). Il facilite également la capture du bruit RF dans vos lignes.
De plus, il est généralement mauvais de boucler les lignes de terre et d'alimentation. Le bruit de commutation numérique et les boucles de masse sont également présents et peuvent avoir un impact dramatique sur les circuits analogiques. Si nécessaire, vous pouvez utiliser des fourches Y (pas de connexion à l'extrémité) pour réduire la chute de tension. Si cela ne suffit pas, utilisez des traces plus larges (trace plus large -> moins de résistance -> moins de chute de tension).
la source