Protocoles de communication
Les **données série** circulent dans un circuit, de la **source à la destination**, sous forme de **tensions variables**.
L’émetteur **initie le changement** sur la ligne de signal, et le récepteur **détecte la modification du potentiel**.
Il existe **de nombreux protocoles** couramment utilisés dans l’industrie, notamment :
**ATA, SCSI, CAN, I²C, SPI, UART, RS232, RS485, USB, Ethernet, Microwire, 1-wire, etc.**
Cependant, les **capteurs commerciaux utilisent principalement I²C et SPI**.
Communication synchrone
La communication **synchrone** nécessite **au minimum deux lignes de signal** :
– Une ligne pour **les données**
– Une ligne pour **le signal d’horloge**
Communication asynchrone
La communication **asynchrone** nécessite **au moins une ligne de signal**.
Cependant, l’**émetteur et le récepteur doivent se mettre d’accord** sur la **fréquence d’horloge** avant d’établir la communication.
I²C
Le **RTC, le BNO055 et le BME280** communiquent avec **l’ATMega328 via I²C**.
Le protocole **Inter-Integrated Circuit (I²C)** utilise **deux lignes de données** :
– **SCL (Serial Clock Line)** : transmet l’information d’horloge
– **SDA (Serial Data Line)** : transmet les données
Le **maître** et l’**esclave** peuvent **déclencher la ligne de données**, mais **seul le maître contrôle l’horloge**.
Cela permet une communication **semi-duplex** entre le maître et l’esclave.
Avantages
L’un des **grands avantages** du protocole **I²C** est qu’il permet une communication **multi-maître, multi-esclave**.
Plusieurs **microcontrôleurs** peuvent être connectés au bus et lire les mêmes **données de capteurs**, tant qu’ils ne **contrôlent pas l’horloge simultanément**.
Cependant, **I²C est généralement utilisé** par un **seul microcontrôleur** pour communiquer avec plusieurs **périphériques esclaves** (EEPROM, capteurs, écrans, etc.).
Inconvénients
Conflits d’adresses
De nombreux **périphériques I²C** utilisent des **adresses sur 7 bits**.
Avec seulement **128 adresses possibles (2⁷ = 128, mais toutes ne sont pas utilisées)**, il est possible que **deux appareils aient la même adresse**.
Pour contourner ce problème, la plupart des fabricants ajoutent une **broche d’adresse (ADDR)** ou une **broche multifonction (MP)**, permettant de **modifier l’adresse** en changeant le **niveau logique** de la broche.
Capacitance
Un autre inconvénient du bus I²C est que **la haute capacité parasite** réduit la **vitesse de transmission**.
I²C est conçu pour une communication **relativement lente sur de courtes distances** (sur une même carte).
Bien qu’il puisse parfois être utilisé pour **relier deux cartes par fils**, il n’est **pas conçu pour cela**, surtout **à haute vitesse**.
Considérations d’ingénierie pour I²C
Les **dispositifs maîtres I²C** **tirent directement** le signal logique à la **masse** et permettent aux **résistances de tirage** de ramener le signal au potentiel **Vcc**.
– La **transition de l’état haut à l’état bas** est **rapide** et ressemble à un **signal carré** sur un oscilloscope.
– La **transition de l’état bas à l’état haut** est influencée par **la capacité parasite du bus** et le choix des **résistances de tirage**.
Dans le bus **I²C**, la **constante de temps RC** de la **transition logique haute** **limite la vitesse du bus**.
– **La résistance** est fournie par les **résistances de tirage** et la **faible résistance des pistes**.
– **La capacité parasite** est **la somme** des **capacités des pistes**, des **broches des composants** et des **autres sources de capacitance**.
Selon la **spécification I²C**, la **capacitance maximale** autorisée est :
– **400 pF** en mode **Standard (100 kHz)** et **Fast (400 kHz)**
– **500 pF** en mode **Fast Plus (1 MHz)**
**400 pF est une valeur relativement faible**.
Par exemple :
– Une **broche d’entrée/sortie** a une capacitance d’environ **2-10 pF**.
– Une **piste de 6 mils sur un PCB FR-4** ajoute environ **2 pF par pouce** de longueur.
Logique binaire
La **logique binaire** a **deux états** : **haut** et **bas**.
– L’état **haut** correspond à une tension entre **70% et 100% de Vcc**.
– L’état **bas** correspond à une tension entre **0 et 30% de Vcc**.
– Entre **30% et 70% de Vcc**, l’état logique est **indéfini**.
(Ces seuils ne sont pas universels, mais constituent un bon point de départ.)
SPI
L’**ATMega328 communique avec l’écran via le bus SPI**.
Le **Serial Peripheral Interface (SPI)** est un protocole de **transfert de données synchrone bidirectionnel**.
Ce protocole nécessite **au moins trois lignes de données** :
– **MISO (Master In Slave Out)**
– **MOSI (Master Out Slave In)**
– **CLK (Clock)**
Une ligne supplémentaire appelée **Slave Select Not (SS̅)** est utilisée pour **activer/désactiver la transmission** sur un ou plusieurs circuits intégrés.
Le **trait supérieur (SS̅)** indique que **l’entrée numérique est inversée** :
– L’esclave est **activé** lorsque le **signal est bas**.
– Dans de nombreux cas, cette entrée peut être **connectée à la masse** pour **activer le bus en permanence**.

Les données stockées dans un registre à décalage linéaire sont déplacées bit par bit à chaque cycle d'horloge. SPI est un protocole full-duplex : l'émetteur et le récepteur peuvent transférer des données simultanément.
![]()

La spécification du bus série universel (USB) s'appuie sur la signalisation par paires différentielles pour transférer des données à haut débit. Une paire différentielle est constituée de deux lignes de signaux numériques de même amplitude mais de polarité opposée.
Règles de conception
Pour qu'une paire différentielle fonctionne comme prévu, les traces individuelles doivent avoir une largeur constante et un espacement constant par rapport aux autres conducteurs, et les deux traces doivent rester aussi identiques que possible, en suivant un chemin identique et en ayant la même longueur. L'idée générale est qu'une transition Low→Haut doit se propager le long du fil parallèlement et en même temps qu'une transition High→Low. Les champs électriques sont étroitement confinés entre les deux traces si les deux signaux parcourent la même distance sur le même diélectrique.
Si les pistes/fils ne sont pas de même longueur, ou si l'impédance du milieu environnant varie, la symétrie entre les deux fils est perdue, et une transition est en avance ou en retard sur l'autre. Lorsque les deux fils ont la même polarité, les champs électriques se repoussent et peuvent se propager plus loin.
Les interférences électromagnétiques sont le résultat de champs électromagnétiques à évolution rapide. Si les lignes de champ de la première animation changent pour ressembler à celles de la deuxième animation, ou inversement, la perturbation du champ électromagnétique se propagera de vos traces vers d'autres zones de votre circuit ou dans un environnement plus large. Le routage par paires différentielles a donc pour but de garantir que les deux fils restent aussi symétriques que possible sur une distance aussi égale et aussi courte que possible.
UART
Le protocole de réception et de transmission asynchrones universels permet une communication en duplex intégral entre deux nœuds. La seule condition est que les deux nœuds conviennent d'un débit de transmission commun (débit en BAUDs).
Contrairement aux autres protocoles de communication utilisés dans notre conception, UART nécessite une connexion croisée. Transmettre→Recevoir et Recevoir→Transmettre.

Étant donné qu'il présente un taux de transmission relativement lent, les lignes de données UART peuvent parcourir toute la longueur d'un panneau PCB entier et hors carte via plusieurs mètres de câblage sans trop de problèmes.
Les nœuds de communication asynchrone tolèrent généralement une légère différence de synchronisation. Cependant, si les débits de transmission sont trop différents des débits de réception, les informations finissent par être brouillées. Si vous voyez des caractères aléatoires ou aucun caractère sur un écran de débogage série, le problème est généralement dû à une différence de synchronisation.
Avant de concevoir un circuit imprimé, il est généralement recommandé de bien **comprendre son schéma électrique**.
Et avant d’élaborer un schéma, il est essentiel de **comprendre son diagramme fonctionnel**.
Vue d’ensemble
Ci-dessous se trouve le **diagramme fonctionnel de base** d’un circuit.
Le rôle de l’**ingénieur en électronique** est de déterminer **comment chaque bloc et chaque bus de données doivent fonctionner correctement** sans interférer avec les autres parties du circuit.
Chaque **bloc** du diagramme est ensuite **converti en schéma électrique**.

Pouvoir
L'alimentation du schéma de circuit ci-dessus est fournie par des piles. Les piles alimentent un régulateur linéaire à faible chute de tension (LDO) qui fournit 5 V pour alimenter les LED RVB adressables ainsi qu'un LDO 3,3 V qui alimente le reste du circuit. Un traducteur de niveau logique convertira les sorties logiques 3,3 V du Mega en entrées logiques 5,0 V.
Bus de données série
Quatre bus de données série sont présents dans notre exemple de circuit et sont utilisés pour transférer des informations.
- Un bus d'interface série-périphérique (SPI) qui communique avec le module TFT
- Réception et transmission asynchrones universelles (UART) utilisées pour programmer le microcontrôleur
- I2C qui communique avec nos capteurs et notre module d'horloge temps réel (RTC)
- Un bus série universel utilisé pour communiquer avec un ordinateur externe pour la programmation et le débogage.
Broches GPIO
- Plusieurs broches serviront à commander les LED RGB adressables, à lire l'état des boutons poussoirs et à activer un buzzer piézo.
Interaction des blocs
Les blocs doivent être conçus et connectés indépendamment au microcontrôleur principal. Il existe plusieurs méthodes courantes pour ce faire, notamment les réseaux globaux, les ports de connexion et les blocs hiérarchiques. Avec les blocs hiérarchiques, chaque bloc de circuit est conçu indépendamment sur une page hiérarchique, puis connecté au niveau supérieur via des connecteurs hiérarchiques. Dans une disposition hiérarchique, seules les connexions entre les blocs sont affichées au niveau supérieur (entrées, sorties, lignes de commutation, etc.). Les connexions d'alimentation sont souvent également incluses.



Comme vous pouvez l’imaginer, rien ne se passe. Les MOSFET à canal P se comportent comme un commutateur normalement fermé (conducteur) qui s’ouvre (non conducteur) lorsqu’une tension est présente sur la grille. Étant donné qu’aucune tension n’est présente sur la grille de Q1, Q2, Q3 ou Q4, les « commutateurs » sont tous fermés et tout courant qui arrive sera facilement conduit.
Option 2 : Seule la batterie est connectée


Avec la batterie attachée et l'interrupteur allumé, le courant circule vers le LDO 5,0 V et via Q3 et Q4 vers le LDO 3,3 V et vers le reste du circuit. R3 maintient le potentiel de grille de Q3 et Q4 à 0 V. En même temps, les grilles de Q1 et Q2 sont alimentées, ce qui arrête la conduction inverse du courant à travers le circuit.
Option 3 : Connexion USB uniquement


Lorsque l'alimentation USB est connectée, R2 maintient la grille de Q1 et Q2 et le potentiel de masse, ce qui permet à Q1 et Q2 de conduire le courant entre la source et le drain. Dans le même temps, les grilles de Q3 et Q4 sont connectées au réseau qui relie Q1 et Q2, fermant les chemins conducteurs entre le drain et la source de Q3 et Q4, ce qui empêche le retour du courant.
Option 4 : Les deux sources jointes


Lorsque les deux sources sont sous tension, le LDO 5,0 V génère une différence de potentiel aux portes de Q1 et Q2, coupant le chemin de conduction à travers le drain et la source, arrêtant le courant USB_VBUS avant qu'il n'ait la possibilité d'entrer dans le reste du circuit.