Je reviens sur le SPI.
Par honnêteté je précise de suite que je n'ai pas encore fait l'essai, mais je serai fort surpris que cela ne fonctionne pas comme cela avait déjà fonctionné avec un LM35 au bout de 50 mètre de câble. Le cas du LM35 est différent mais le principe de l'adaptation est le même.
Tu ne change pas de câble, tu changes juste les connections. Il faut utiliser une paire de fils torsadés par fonction.
Rappel
MoSi = Master Out Slave In
Miso = Master In Slave Out
Paire N: 1 un fil constitue le MiSo, l'autre la masse --> reliée aux deux extrémités, c'est une ligne et non pas un blindage.
Paire N:2 un fil constitue le MoSi, l'autre la masse --> reliée aux deux extrémités, c'est une ligne et non pas un blindage.
Paire N:3 un fil constitue l'horloge, l'autre la masse --> reliée aux deux extrémités, c'est une ligne et non pas un blindage.
Paire N:4 un fil constitue le chip select, l'autre la masse --> reliée aux deux extrémités, cela ne mange pas de pain.
La paire N: 4 qui transporte un simple signal continu ne subira pas de traitement, par précaution tu laissera un petit délai entre son activation pour prendre la commande du BMP280 et le début des opérations SPI.
Un peu de documentation :
- Une paire torsadée constitue une ligne d'impédance constante tout comme un câble coaxial pour la télé.
- Une ligne d'impédance constante possède une impédance caractéristique (Zc), elle doit être adaptée c'est à dire que le générateur doit avoir une impédance Zc ainsi que le récepteur.
- Une désadaptation de la ligne affecte les fronts du signal, tant qu'on est pas à plus de 100 MHz on peut considérer que pendant le plat du signal l'effet de ligne ne se manifeste pas.
Le schéma de principe :
Coté émission les circuits intégrés présentent une impédance de 0 à 30 ohms (pour le micro). En sortie ce sont des transistors MosFet mais des tout petits transistors et c'est la valeur de leur Rdson.
Théoriquement la résistance en série fait 100 ohms, je pense qu'une valeur comprise entre 60 et 80 ohms fera parfaitement l'affaire.
Coté réception les entrées des circuits numériques sont à très fortes impédances (plusieurs megohms) donc on place 100 ohms.
Rôle de la capa :
S'il n'y avait pas de capa l'amplitude du signal serait divisée par 2 ce qui n'est pas acceptable.
Vu ce qui a été écrit plus haut on peut mettre un condensateur qui fera que pendant le front la ligne verra 100 ohms et sur le plat du signal la ligne le fil verra une impédance infinie.

Liaison SPI complète, le CS n'est pas mentionné puisqu'on n'y fait rien mais il le faut quand même.

Pour câbler les résistances et le condensateur il faut tenir compte du sens de transmission.
Limites de ce schéma :
Il ne fonctionne pas avec l'I2C puisque la liaison SDA est bidirectionnelle.
En SPI il ne peut fonctionner que s'il n'y a qu'un maître sur la montage.
C'est de loin le cas le plus fréquent mais le cas de plusieurs maîtres est prévu dans la norme, un seul pouvant être actif simultanément
Quand il n'y a qu'un seul module SPI il est tentant d'économiser une connexion en reliant directement la pin CS du module externe à la masse. La pin CS du module SPI du micro (D10 pour la UNO) est alors disponible mais attention si elle est configurée en entrée et qu'elle reçoit un niveau 0, elle fera passer instantanément le SPI du micro en mode Esclave (voir la datasheet).
Note importante : la fréquence du SPI est modifiable, par défaut il me semble qu'elle est fixée à la fréquence max Fréquence du quartz/2.
Donc revenir a des valeurs plus basses pour commencer me paraît prudent.
Si cela fonctionne rien n’empêchera de chercher la limite haute.
Nota : Schémas établis avec gschem de la suite gEDA.

