Je suis en train de monter un projet qui profite du périphérique comparateur sur le microcontrôleur STM32F051. J'ai lu dans la documentation que pour que le comparateur fonctionne, la broche d'entrée doit être configurée pour analogique ... ce qui est la même configuration si vous utilisiez la broche comme entrée ADC.
Puis-je utiliser une seule broche, par exemple PA1, comme entrée et la configurer à la fois comme entrée de comparateur de fenêtre et comme entrée ADC sur ADC_IN1?
Y a-t-il des problèmes avec cette configuration, tels que du bruit supplémentaire, que je devrais considérer?
Fiche technique (p 19)
Manuel de référence (p 295)
Une référence intéressante, suggérant que cela devrait être possible: Tiré de AN4232: Premiers pas avec les comparateurs analogiques pour la série STM32F3
Réponses:
Cela fonctionne, vous récupérerez les numéros, ainsi que les interruptions. Je l'ai vérifié, téléchargez à partir de .
La précision et le glitchiness sont encore indéterminés. Mais est bien décrit dans les Appnotes comme indiqué par @Bence Kaulics dans ce fil (voir results.txt pour des AppNotes supplémentaires)
Je pense qu'il sera stable pour les raisons suivantes.
Cela fonctionne également avec le DAC, c'est-à-dire que vous pouvez configurer le tout en interne avec le DAC ou en externe avec le DAC et quelques résistances.
En regardant simplement le circuit, vous utiliserez l'ADC en parallèle au comparateur, essentiellement un amplificateur. Comme nous le savons, ce sont des appareils à grand gain à très haute impédance. Les pépins ne sont pas notre ami.
Maintenant, nous allons frapper un bouchon déchargé sur cette broche de temps en temps pour alimenter l'ADC.
Comme nous le savons tous, nous devons suréchantillonner l'ADC et rejeter de préférence la première lecture après un événement de commutateur de multiplexage pour éliminer l'inclinaison depuis et vers les canaux adjacents.
L'ADC sur le STM a une impédance d'entrée quelque peu <50K // 5pF selon la façon dont ils sont utilisés. (DM00039193.pdf pg 76ff)
Le tableau 53 donne 400-> 50KOhm, ce que j'ai trouvé il y a quelque temps lorsque j'ai étalonné mon ADC F373.
La page 79 montre les circuits ADC.
La page 82 donne une brève description de la broche de comparaison, lue de concert avec la description générale des broches analogiques ci-dessus (pg73ff)
Mettez cela en parallèle avec votre entrée de comparateur et ADC MUX et modélisez-la en piquant. N'oubliez pas de charger régulièrement le bouchon ADC à une tension aléatoire.
Quoi qu'il arrive d'autre dans le circuit et le logiciel, vous obtiendrez des problèmes assez raisonnables sur votre entrée de comparateur. MAUVAISE IDÉE, même si vous connectez la broche à un suiveur à faible impédance et à un capuchon de découplage (sur la ligne mobile d'une entrée de comparateur ????).
La casquette utilisée par l'ADC est le tueur. Espérons que les futurs appareils échantillonneront à l'aide d'un suiveur / isolateur interne à la fois sur l'ADC et le comparateur. Celles-ci peuvent déjà être là en tant que fonctionnalités non documentées (peu probable en raison de la diaphonie mux).
Comme moi, je pense que nous nous impliquons tellement avec le côté numérique des choses que lorsque nous passons à l'analogique et à l'hybride, nous oublions les bases.
Comment mesurer de petits courants en utilisant un convertisseur courant-tension? est une discussion que j'ai eue avec quelqu'un d'autre hier. Je connaissais la réponse car je m'en suis moi-même trompé. Même au meilleur 3V en 50K, nous obtenons une AVO de 16K / volt. Quand ai-je utilisé pour la dernière fois un tel AVO / multimètre?
Tout cela étant dit, un coup d'œil aux circuits du F373 montre que ST et ARM semblent avoir l'intention d'obtenir des résultats exploitables à la fois du comparateur et de l'adc étant utilisés simultanément dans un appareil mixte. L'ajout d'amplificateurs opérationnels dans les séries 150 et 300 donne un indice quant aux exigences d'isolation d'impédance.
Je suis sûr que quelqu'un de plus intelligent que moi pourra réorganiser l'environnement pour lequel ces interconnexions internes ont été conçues. Je pense que l'automobile ou le HVAC ... les onduleurs et les FOC. La bibliothèque FOC peut fournir des informations précieuses.
Sauf si vous construisez un instrument à haute vitesse et très précis, une telle utilisation peut être suffisamment stable pour être utilisée pratiquement (dans les mises en garde ci-dessus). Cela permettra certainement d'économiser beaucoup de circuits externes. Il est préférable de laisser des tests rigoureux à grande vitesse comme exercice pour l'étudiant (tentez-moi d'étudier).
Solution ici .
On dirait que la bibliothèque HAL ADC est un peu cassée pour le DMA multicanal. J'ai posté sur le site de la STM pour obtenir une réponse. Solutions de contournement: -
a) IRQ les deux ADC
b) Interroger les deux ADC
c) DMA un canal et interroger l'autre
d) Initialiser les registres de bas niveau manuellement
Ceci est encore une autre mise en garde à la solution où les deux comparateurs sont utilisés, jusqu'à ce qu'une meilleure solution soit trouvée.
la source
La configuration la plus pertinente que j'ai pu trouver est la suivante, tirée de Utilisation des comparateurs analogiques STM32F05xx dans les cas d'application , ( AN4112 ), page 4:
Ça dit:
Ici, l'ADC et le COMP fonctionnent alternativement, mais je pense que les deux sont configurés en même temps. Si nous continuons dans le document, il y a un schéma de principe sur la configuration COMP.
Sur la base de cette image, je pense que l'ADC et le COMP partagent le même canal ADC, la seule différence est le nombre de sources de seuil analogiques activées .
Le texte sous la figure 5 de la question indique que le
peut-être le même que ADC_IN1.
Le but de toute cette configuration est d'économiser de l'énergie, le COMP déclenche des changements d'état du MCU (STOP <--> RUN). Ainsi, lorsque l'entrée est inférieure à un certain seuil, le MCU et l'ADC sont fermés et seul le comparateur fonctionne, et lorsque l'entrée est supérieure au seuil, le MCU et l'ADC se réveillent, l'ADC mesure la tension d'entrée. Mais si l'entrée tombe à nouveau en dessous du seuil, le COMP envoie le MCU à l'état STOP.
C'est une façon de les utiliser ensemble, j'espère que cela fera avancer la question.
la source
Je pense que vous devriez demander sur le forum STM. Il y a aussi (STM32F1) UART RX et TIMx sur la même broche, les deux entrées, mais vous ne pouvez pas les utiliser ensemble, comme la détection d'une interruption de temporisation de fin de transmission. Au lieu de cela, une broche TIMx différente doit être connectée en parallèle pour que la fonction UART RX et la temporisation soient interrompues. Je suppose qu'une seule fonction peut être active en même temps.
Essayez de télécharger MxCube et voyez quelle configuration peut être créée.
la source