SPI ou I2C: Que choisissez-vous comme protocole de puce mémoire de circuits imprimés ?

Icône d’une puce mémoire de circuit imprimé

L’autre jour, je suis sorti pour m’acheter des chaussures et j'ai réalisé exactement pourquoi je n'achète pas des chaussures si souvent : il y a trop de paramètres ! Je recherchais des baskets spécifiques pour combiner des mesures pour évaluer le confort, le rebond, la durabilité, la résistance à l'humidité, le poids, l’espace des orteils, le soutien de la voûte plantaire, et plus encore. Parfois, on a l'impression qu'il faut un diplôme universitaire juste pour trouver des chaussures à son pied. À mon sens, c’est un cas évident de surcharge d’informations. 

Pendant la conception d’un dispositif électronique, vous serez confronté à une décision tout aussi complexe si vous devez choisir entre les protocoles Serial Peripheral Interface (SPI) et Inter-Integrated Circuit (I2C) pour vos puces mémoires. Votre décision est encore plus difficile lorsque les coûts ne sont pas très différents. Tout ce qui concerne les paramètres de votre puce mémoire doit être basé sur une bonne connaissance des résultats attendus de chaque fonction au sein de votre produit. 

Fondamentaux des protocoles SPI et I2C

SPI est un protocole de communication qui intègre une configuration « full duplex ». Il utilise quatre signaux : Chip Select (CS), Clock (SCK), Master Out / Slave In (MOSI) et Master In / Slave Out (MISO), pour assurer les communications entre un maître et un esclave. Une seule connexion maître-esclave nécessite un seul signal CS. Cela signifie que le nombre de signaux CS augmente lorsque le nombre d’esclaves connectés au même bus augmente. 

Il n'y a pas de limite officielle à la vitesse d'un bus SPI. Le plus souvent, les microcontrôleurs pilotent le bus SPI à des vitesses allant jusqu'à 10Mhz. SPI offre quatre modes où les données sont verrouillées sur les différentes limites et la polarité du signal d'horloge. Il n'existe cependant aucun mécanisme standard permettant à un maître de confirmer que les données ont été reçues et stockées avec succès par l'esclave.

Le bus I2C, en revanche, ne nécessite que deux fils : données série (SDA) et horloge série (SCLK). Il fonctionne à une vitesse beaucoup plus faible de 100 kHz, même si des vitesses plus élevées sont possibles, et que la plupart des microcontrôleurs acceptent pas. Les dispositifs esclaves connectés au bus I2C sont identifiés par l'adresse de la puce, définie par le matériel. Avec I2C, les broches de signal du microcontrôleur sont les plus basses.

Une norme bien définie pour I2C couvre non seulement la vitesse du protocole, mais aussi les commandes, l'initialisation, le transfert de données et la confirmation des communications entre les dispositifs maître et esclave. Cela garantit que tous les dispositifs qui prennent en charge I2C respectent une norme unique pour faciliter la mise en œuvre. 

Considérations importantes pour choisir entre SPI et I2C pour les puces mémoires.

SPI et I2C sont tous deux des protocoles très répandus, avec des puces mémoires sérielles telles que : SRAM (Static Random Access Memory), Flash ou EEPROM (Electrically Erasable Programmable Read-Only Memory). Pour déterminer le protocole qui convient le mieux à votre conception, il ne suffit pas de comparer les coûts. Voici quelques considérations importantes qui pourraient simplifier votre prise de décision :

1. Vitesse

Chaque microseconde compte lorsque vous transférez des données en masse ou que vous disposez d'une fenêtre étroite pour vérifier l'entrée de l'utilisateur par rapport aux données stockées dans une puce mémoire. Si la vitesse est votre critère de sélection principal, choisissez SPI pour bénéficier d'un taux de transfert de données commun de 10 MHz, beaucoup plus rapide que la pleine vitesse de l'I2C (400 Khz).

 Véhicule à vive allure entouré de lumières : si la vitesse est votre critère de sélection principal, choisissez SPI pour vos PCB

Si la vitesse est votre critère de sélection principal, choisissez SPI

2. Broches en nombre limités

Tous les concepteurs de matériel n'ont pas le plaisir d'utiliser des microcontrôleurs haut de gamme avec plus de 100 broches. Certains ont du mal à connecter des puces mémoires avec des microcontrôleurs à 28 broches. Dans ces situations, I2C est idéal car il ne nécessite que quelques pistes de communication.

3. Taille du PCB

Si vous n'avez aucune contrainte de taille de PCB, alors SPI ou I2C sera parfait pour vous. Mais si vous essayez d'insérer votre PCB dans un boîtier minuscule, moins de pistes signifie un PCB plus petit... et dans ce cas l'I2C est un choix plus judicieux.

4. Problèmes et correction d'erreurs

Les concepteurs ne sont pas parfaits et le protocole I2C non plus. Le bus I2C est sensible aux pannes et aux blocages car l'émission et la réception se font sur les mêmes pistes physiques. Lorsqu'un maître ne libère pas le bus à temps, l'esclave peut être bloqué, car il a envoyé une réponse que le maître n'a pas reçue. La correction des erreurs peut s'avérer délicate, car dans certains cas, il peut être nécessaire de réinitialiser l'alimentation des dispositifs bloqués. 

5. Alimentation

Si vous concevez des appareils alimentés par piles ou par énergie solaire, la consommation d'énergie doit être réduite au minimum. Les dispositifs I2C consomment généralement plus d'énergie que les SPI et si la consommation d'énergie est un problème, vous devriez choisir SPI.

PCB à petite carte simple. Préférez I2C à SPI pour votre PCB

Choisissez I2C si vous avez besoin que votre PCB soit petit et facile. Crédit éditorial : Robson90 / Shutterstock.com

Prendre la meilleure décision pour les besoins de votre conception de PCB

Quel que soit votre choix, les protocoles SPI et I2C exigent tous deux que les signaux soient acheminés en parallèle et qu'ils aient une longueur similaire pour éviter tout problème de signal. Votre décision n'a pas seulement une incidence sur la fonctionnalité de votre conception, mais aussi sur le délai de réalisation et l'efficacité globale. 

Vous serez en mesure de faire facilement ces choix si vous utilisez un logiciel de conception de PCB capable de vous apporter les fonctions et les outils dont vous avez besoin pour passer sans effort du schématique à l’agencement et à la fabrication. Profitez de multiples outils de routage de signaux et d'un contenu de conception illimité pour faciliter le processus avec Altium’s CircuitStudio.

Vous vous demandez toujours quel protocole convient le mieux à votre conception ? Demandez à un expert Altium.

Previous Article
Comment éviter les problèmes courants d'intégrité du signal dans vos conceptions
Comment éviter les problèmes courants d'intégrité du signal dans vos conceptions

Garantissez l’intégrité du signal sur les PCB de vos conceptions haut débit. Grâce à Altium, détectez et év...

Next Article
Comment simplifier votre routage avec l'échange de broches de PCB
Comment simplifier votre routage avec l'échange de broches de PCB

Voyez comment l’échange de broches de PCB peut vous aider à simplifier le routage des circuits imprimés et ...