En lisant le manuel du STM32F051, il semble qu'il soit possible de configurer la même fonction alternative sur deux broches; par exemple, vous pouvez avoir plusieurs broches USART1_TX en même temps. Ou par exemple le cas plus problématique de deux broches USART_RX. Le manuel est muet sur ce cas. Est-ce légal / sûr? Est-ce utile?
10
Réponses:
Sur les processeurs qui utilisent des registres par broche pour sélectionner les fonctions d'E / S, il est généralement possible de router une fonction de sortie vers plusieurs broches sans conflit; toutes les broches feront écho à la même sortie. L'effet d'avoir plusieurs broches connectées à une entrée est souvent non spécifié; par exemple, si un UART avait des broches d'E / S 3 et 4 connectées à un UART, il pourrait se comporter comme si l'UART était connecté à une porte "ET" qui prenait les broches 3 et 4 comme entrées, ou il pouvait se comporter comme s'il était connecté à une broche et ignorer l'autre, ou il pourrait connecter les deux broches au tampon d'entrée de l'UART via des transistors qui avaient une résistance modérée, ou il pourrait tirer un courant supplémentaire lorsque la broche 3 est haute et 4 est faible ou vice versa, ou pourrait faire à peu près tout autre chose imaginable. Je ne '
Une approche de conception un peu plus agréable, utilisée dans certaines parties de micropuce (peut-être aussi certaines parties de STM) consiste à faire en sorte que chaque fonction d'E / S inclue un multiplexeur pour sélectionner la broche dont elle doit accepter l'entrée, et que la broche inclue un multiplexeur pour indiquer le I / O fonction à partir de laquelle il doit sortir des données. Une telle conception permet d'avoir une seule broche pour alimenter plusieurs fonctions d'E / S, tout en éliminant simultanément les ambiguïtés posées par les configurations conflictuelles.
la source
Oui, c'est utile. Résultat de l'expérience sur STM32F407VGT6: Les deux broches AF peuvent être utilisées simultanément comme AF, au moins si vous utilisez ces broches comme entrées AF. L'expérience devait déclencher TIM1 sur le front montant du déclencheur externe - signal "TIM1_ETR". Le signal "TIM1_ETR" peut être mappé aux broches PE7 et / ou PA12 du boîtier MCU.
L'expérience: initialiser les deux broches PE7 et PA12 comme AF "TIM1_ETR" pour TIM1:
Le résultat - TIM1 est démarré par front montant sur l'une des broches PE7 ou PA12.
Cela révèle le chemin vers les broches AF MUX (changement) en cours d'exécution:
Cela peut être utile, puis deux sources différentes sont nécessaires pour le déclenchement de la minuterie, cela peut nous sauver hors du MUX IC :). Les deux entrées peuvent être utilisées simultanément, si elles sont initialisées comme indiqué au début de l'article. Les entrées ne sont pas connectées ensemble, je veux dire que le signal sur PA12 n'est pas transféré vers PE7 et vice versa (car les GPIO sont définis comme entrées).
Le code est généré par "STM32CubeF4 v5.3" + "Package de micrologiciel V1.24.0 / 08-février-2019".
la source
Fondamentalement, les broches sont des GPIO qui peuvent être attribués à des fonctions alternatives, par exemple UART_RX. Chaque fonction alternative a sa broche par défaut et des broches alternatives auxquelles la fonction peut être remappée. Si vous consultez le manuel de référence du STM32F103 dans la section 9.1.5, ils disent:
la source