Problème de terminaison de bus SPI


10

Je travaille sur un projet dans lequel un maître OMAP Linux SPI interagit avec 6 périphériques esclaves SPI (5 convertisseurs A / N et magnétomètre unique).

Je peux régler la fréquence d'horloge SPI et j'ai expérimenté avec 50 kHz, 100 kHz et 1 MHz.

J'ai joint un schéma de câblage / carte montrant la longueur du maître SPI et de tous les périphériques. La longueur du bus SPI (toutes les longueurs de fils) à partir du maître est d'environ 970 mm pour mon cas d'expérience.

entrez la description de l'image ici

Le problème que j'ai trouvé est que la communication avec 1 périphérique échoue car j'ajoute d'autres périphériques sur le bus. Même si la communication parvient au magnétomètre de l'autre côté du bus, la communication avec les convertisseurs A / D de l'autre côté échoue jusqu'à ce que le tronçon du faisceau du magnétomètre soit retiré, puis la section A / D revient.

J'ai fait quelques lectures ici: considérations sur la terminaison du bus SPI et ici: communication courte distance de carte à carte

où il est recommandé de placer un LPF RC aussi près de n'importe quel nœud pilote, donc SCLK et MOSI côté maître et chacun de mes signaux 6x MISO / SOMI. J'ai vu une approche similaire faite pour USB avec un réseau RC 47pF / 27R. Mon intention est d'essayer ceci sur mon circuit dans le but de réduire la transition de bord rapide ~ 100nsec.

Est-ce la bonne procédure que je suis ici pour ajouter un LPF RC? Cela semble vraiment inquiétant, y a-t-il une meilleure pratique? J'ai vu une note d'application de TI où ils parlent d'étendre le SPI pour des distances de bus plus longues, est-ce une solution appropriée ici ou mon problème est-il simplement l'un des harmoniques haute fréquence de la transition de bord à grande vitesse? http://www.ti.com/lit/an/slyt441/slyt441.pdf

Merci Nick

Une mesure CLK / MISO propre du magnétomètre

Mesure du temps de transition d'horloge du signal CLK

Cette ligne MISO (canal # 1) montre-t-elle des réflexions?  Les niveaux ne semblent pas numériques avec une cage d'escalier, est-ce des réflexions


Avez-vous la possibilité d'ajouter des résistances série et de changer le câblage?
efox29

Salut efox29, oui mais ce sera un peu sale. Mon maître SPI est sur un SOM monté sur ma carte fille. Mon intention est de couper la trace pour SCK et MOSI et de monter un RC de 330 ohms / 47pF 0603/0805 pour chacun en utilisant de l'époxy / de la colle et de faire quelque chose de similaire sur les cartes A / D et magnétomètre pour MISO. Je vais essayer de faire le stub GND aussi près que possible du pad ou de l'avion GND. Tenir le coup jusqu'à ce que j'entende plus, mais je prévois d'essayer demain. Je n'ai pas la capacité de changer SPI en guirlande ou quoi que ce soit. Cela ne ferait pas grand-chose de toute façon, les planches ont besoin d'être aux extrémités opposées.
Shraken le

Comment est votre système avec une horloge plus lente comme 50Khz? Quel est le microcontrôleur que vous utilisez?
efox29

Je suggérerais de commencer par la ligne SCK avant d'ajouter Rs et Cs aux autres lignes. Après tout, les bords ne comptent que sur la ligne d'horloge, les autres lignes seront plus tolérantes aux réflexions.
alex.forencich

2
Et avec ce genre de problème, c'est le taux de balayage des bords qui est le problème, pas la fréquence d'horloge. Si vous voyez le même problème indépendamment de la fréquence d'horloge, alors les fronts rapides sont le problème et doivent être ralentis.
alex.forencich

Réponses:


5

Il est difficile de répondre à cela sans tous les détails, mais voici un aperçu générique du problème qui, je pense, peut également être le type de réponse le plus utile pour ce site.

Les réseaux multi-nœuds doivent toujours être simulés. Ils sont si difficiles à prévoir. Et il a fallu environ 3 minutes pour voir que votre conception n'était peut-être pas optimale.

Voici la configuration de simulation pour l'horloge du maître à tous les appareils esclaves (les valeurs ne sont que des estimations approximatives, comme ce serait le cas si vous faisiez cela avant de construire quoi que ce soit):

entrez la description de l'image ici

Et le graphique de simulation résultant (nous ignorons ce qui est quoi, les unités, etc. car cela ne vaut évidemment pas la peine d'être construit):

entrez la description de l'image ici

La première idée qui vient à l'esprit est une connexion en guirlande de toutes les entrées et une simple terminaison parallèle. Un plan de survol si vous le souhaitez. Cela ressemble à ceci dans la configuration de simulation:

entrez la description de l'image ici

Et l'intrigue de résultat semble beaucoup plus agréable:

entrez la description de l'image ici

Si vous pouvez vivre avec l'augmentation de la consommation d'énergie de la terminaison du four et la variation de tension réduite sur les entrées d'horloge des différents appareils et ... (vous seul connaissez les contraintes réelles) ... alors certaines variations de cela peuvent réellement valoir la peine bâtiment.

Il existe d'autres solutions qui fonctionneraient, mais la clé est de comprendre que les réseaux multi-nœuds ne sont pas faciles à prévoir. Les 5 minutes de simulation ici avant de construire quelque chose peuvent vous faire gagner beaucoup de temps plus tard. Malheureusement, ce type de simulateurs n'est pas bon marché.

J'utilise ici Cadence SigXplorer. La clause de non-responsabilité habituelle s'applique: j'enseigne des cours sur l'intégrité du signal et j'ai souvent des licences de logiciels de parrainage Cadence ou Mentor pour ces cours.


Quel logiciel utilisez-vous pour simuler les lignes de transmission?
efox29

@ efox29 Cadence SigXplorer et Mentor Hyperlynx.
Rolf Ostergaard

@nickishere (OP) Cela at-il répondu à votre question?
Rolf Ostergaard du

Salut Rolf, Merci d'avoir pris le temps de simuler ce circuit, vraiment l'apprécie. Je vais devoir examiner Cadence SigXplorer et je vais vaincre. chercher un outil comme ça la prochaine fois que j'approche de ça un gros bus. Je note que votre réponse est aussi correcte que la plus détaillée et la plus pertinente. Cependant, je dois dire que j'ai fini par utiliser la topologie empiriquement, donc je ne peux pas dire que cela fonctionne.
Shraken
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.