3.4. Broches et périphériques

Une broche est le périphérique le plus simple du MCU : un fil unique qui relie la puce au monde extérieur. Chaque interaction avec du matériel réel – piloter une LED, lire un interrupteur, mesurer une tension, envoyer des octets sur une ligne série – passe en fin de compte par une ou plusieurs broches.

3.4.1. Modes des broches

Une broche est configurée dans l’un de quelques modes avant de faire quoi que ce soit d’utile :

  • Pin.IN – entrée. La broche observe la tension qui lui est appliquée de l’extérieur et la rapporte comme 0 (bas) ou 1 (haut).

  • Pin.OUT – sortie. La broche se pilote elle-même soit vers la tension d’alimentation (1), soit vers la masse (0), de sorte que les composants externes voient cette tension.

  • Pin.OPEN_DRAIN – sortie qui ne peut que tirer la ligne vers le bas. Pour passer à l’état haut, la broche se relâche (flotte) et une résistance de tirage externe vers le haut remonte la ligne. Utilisée pour les bus partagés où plusieurs périphériques peuvent piloter la même ligne.

Les entrées peuvent optionnellement activer une résistance de tirage interne qui garantit un niveau défini lorsque rien d’externe ne pilote la broche :

Le constructeur prend id, mode et pull comme arguments positionnels :

from machine import Pin

led    = Pin("P0", Pin.OUT)
button = Pin("P1", Pin.IN, Pin.PULL_UP)

3.4.2. Fonctions alternatives

La plupart des broches ont une fonction alternative en plus de leur rôle de GPIO. Un seul plot physique sur la puce peut être :

D’autres périphériques (bus série supplémentaires, minuteurs, etc.) revendiquent également des broches spécifiques ; le concepteur de la puce câble chaque bloc matériel à un ensemble fixe de plots. L’ADC échantillonne uniquement les broches routées vers son multiplexeur ; un UART transmet sur l’unique broche à laquelle son signal TX est câblé.

Note

Les caméras OpenMV étiquettent les broches du connecteur externe de P0 à P9 (varie légèrement selon la carte). La fonction alternative que porte chaque broche est spécifique à la carte ; consultez la référence rapide de l’OpenMV Cam pour le tableau.

3.4.3. Variations selon la carte

Quelques détails varient selon la carte et doivent toujours être vérifiés dans la référence rapide plutôt que supposés à partir d’une autre carte :

  • Tolérance de tension. Certaines caméras ont des broches d’E/S tolérantes au 5 V (un signal de 5 V peut être appliqué directement sans dommage) ; d’autres font fonctionner leurs E/S à 3,3 V ou 1,8 V et nécessitent un adaptateur de niveau pour tout signal supérieur. Connecter une source 5 V à une broche non tolérante peut endommager la puce.

  • Référence de l’ADC. La tension que l’ADC considère comme pleine échelle dépend de l’alimentation d’E/S de la carte. read_u16() renvoie toujours 0..65535, mais la tension que représente 65535 correspond à la référence de la carte, quelle qu’elle soit.

  • Capacité de pilotage. Une broche GPIO peut fournir ou absorber un courant limité – généralement quelques dizaines de milliampères. Suffisant pour une petite LED à travers une résistance ; insuffisant pour un moteur, un buzzer ou toute charge inductive. Recourez à un pilote externe (transistor, MOSFET, pont en H) pour tout ce qui est plus lourd.

La référence rapide de l’OpenMV Cam donne les chiffres exacts pour chaque carte.