Qu'est-ce qu'une fonction de broche alternative sur un microcontrôleur?

15

Je voudrais savoir à quoi se réfère la "fonction alternative" dans le contexte des ports IO d'un microcontrôleur.

Je n'ai pas besoin de savoir comment l'activer lors de la connexion à un périphérique, mais j'aimerais savoir ce que c'est exactement et pourquoi nous en aurions besoin.

user929404
la source

Réponses:

18

De nombreuses broches de votre microcontrôleur ont différentes fonctions. La fonction «normale» se réfère à GPIO, General Purpose Input / Output . Dans ce cas, vous pouvez utiliser ces broches directement en écrivant et en lisant dans les registres appropriés.

Les fonctions `` alternatives '' se réfèrent à d'autres fonctions, qui peuvent inclure I 2 C, SPI, USART, CCP, PWM, Clock, ADC, etc ... La façon dont vous contrôlez les broches dans une fonction alternative dépend du périphérique, mais cela se résume généralement à l'écriture et à la lecture des registres de fonctions spéciales (SFR); le périphérique s'occupe du reste.

La fonction standard après un RESET dépend (ce n'est pas toujours GPIO!), Et vous pouvez le trouver dans la fiche technique correspondante. La plupart du temps, vous pouvez sélectionner la fonction que vous souhaitez utiliser à la volée, afin de pouvoir basculer entre les périphériques.

En utilisant une broche pour plusieurs périphériques, vous pouvez créer des microcontrôleurs avec beaucoup de fonctionnalités. Cependant, comme vous voulez la plupart du temps ce périphérique sur cette broche tout le temps (et que vous ne voulez pas changer de fonction à la volée), vous ne pouvez pas utiliser tous les périphériques dans un programme, ou du moins pas en même temps. temps. D'un autre côté, ce n'est pas vraiment nécessaire de toute façon.


Comme le souligne Connor , une `` fonction alternative '' peut également faire référence à autre chose, dans un contexte légèrement différent: ici, il ne s'agit pas de la fonction que vous mettez sur une broche, mais de la broche que vous utilisez pour une fonction. Cela s'appelle Peripheral Pin Select et signifie essentiellement que vous pouvez sélectionner la broche utilisée par votre périphérique. Vous pouvez, par exemple, faire RS232 sur RA1 et RA2 ou sur RB1 et RB2.

Voir la réponse de Connor pour une description plus détaillée (et voter pour lui).

Communauté
la source
5

En plus de la réponse @CamilStaps, il existe un autre contexte où "fonction de broche alternative" est un terme couramment utilisé.

Certains microcontrôleurs ont la possibilité de commuter leurs périphériques internes entre plusieurs ensembles de lignes d'E / S. De cette façon, vous pouvez éviter les problèmes si vous souhaitez utiliser des modules internes (SPI, I2C, etc ...) dont les fonctions sont mappées sur le même jeu de broches.

Il existe généralement un registre de contrôle qui détermine à quel jeu de broches les différents périphériques sont mappés.


Je sais que j'ai travaillé avec un microcontrôleur qui avait cette fonctionnalité, mais je serai damné si je me souviens du numéro de pièce spécifique.

Edit: Found it - Il est disponible sur de nombreuses pièces PIC24 et dsPIC: entrez la description de l'image ici

Ils l'appellent "Peripheral Pin Select", mais c'est fondamentalement un mécanisme pour configurer les autres fonctions de broche.

Connor Wolf
la source