Convertisseur analogique numérique ADC

Stm32 est principalement un circuit numérique, le circuit numérique n’a que des niveaux bas et Bas, il n’y a pas de concept de tension de quelques V, donc si vous voulez lire la valeur de la tension, vous devez le faire à l’aide d’un convertisseur analogique – numérique ADC,ADC lit la tension analogique de la broche, convertit en une donnée, il y a un registre, nous lisons cette donnée dans la variable, nous pouvons faire l’affichage, le jugement, l’enregistrement et ainsi de suite, ADC peut convertir le signal analogique en signal numérique, est le pont du circuit analogique au circuit numérique,ADC est le pont analogique au numérique, à son tour, il y a un pont analogique au numérique, il y a certainement un pont numérique à analogique, c’est le DAC, le convertisseur numérique analogique, l’utilisation du DAC peut convertir les variables numériques en tension analogique, mais dans la section précédente, nous avons également appris un pont numérique à analogique,PWM,Section précédente nous utilisons PWM pour contrôler la luminosité de la LED, la vitesse du moteur, c’est la fonction du DAC, tandis que PWM n’a que deux états complètement conducteur et complètement déconnecté, dans les deux états, il n’y a pas de perte de puissance, donc dans le moteur à courant continu pour réguler ce scénario d’application de haute puissance, en utilisant PWM pour égaler la quantité analogique, est un meilleur choix que DAC,Et le circuit PWM est plus simple et plus couramment utilisé, donc on peut voir que PWM occupe encore beaucoup d’espace d’application du DAC, depuis l’application de l’ancien DAC est principalement dans la génération de formes d’onde dans ces domaines, tels que le générateur de signal, puce de décodage audio, etc., ces domaines PWM n’est toujours pas bien remplacé, c’est une introduction simple à ADC et DAC, nous apprenons dans cette section ADC,DAC tout le monde le sait, nous n’avons pas de périphérique DAC pour ce modèle stm32

L’ADC de stm32 est, 12 bits (résolution, généralement exprimée en combien de bits, la valeur de l’ad de 12 bits, sa gamme de représentation est 0 – 2 puissance 12 moins 1, est la gamme de résultats de quantification est 0 – 4095, plus le nombre de bits est élevé, plus le résultat de quantification est fin, plus la résolution correspondante est élevée) type d’approche progressive (mode de fonctionnement de l’ADC) ADC, 1us temps de conversion (fréquence de conversion, AD)La conversion prend un peu de temps, ici 1us signifie que le début de la conversion ad, pour produire le résultat, il faut 1us de temps, la fréquence de la conversion ad correspondante est de 1mhz, c’est la fréquence de conversion la plus rapide de stm32 ADC, si vous avez besoin de convertir un signal à très haute fréquence, alors considérez si cette fréquence de conversion est suffisante,Si la fréquence de votre signal est faible, cette fréquence de conversion maximale de 1 MHz est également suffisante.)

Tension d’entrée (les exigences générales sont toutes à varier entre le négatif et le positif alimenté par la puce, 0v correspond à 0, 3.3V correspond à 4095, au milieu sont tous les deux une relation linéaire correspondante) gamme: 0 – 3.3V, plage de résultats de conversion: 0 – 4095

18 canaux d’entrée pour mesurer 16 sources de signaux externes (16 ports GPIO, il suffit de connecter le signal analogique directement sur la broche, aucun circuit supplémentaire n’est nécessaire, la broche peut directement mesurer la tension) et 2 sources de signaux internes(capteur de température interne et tension de référence interne, le capteur de température peut mesurer la température du CPU, par exemple, votre ordinateur peut afficher une température du CPU, vous pouvez lire ce capteur de température avec l’ADC pour mesurer, la tension de référence interne est une tension de référence d’environ 1,2 V, cette tension de référence ne varie pas avec la tension d’alimentation externe, donc si vous êtes alimenté par la pucePas la norme 3.3V, alors mesurer la tension de la broche externe peut ne pas être correct, alors vous pouvez lire cette tension de référence pour l’étalonnage, afin d’obtenir la valeur de tension correcte)

Groupe de règles et Groupe d’injection de deux unités de conversion, c’est l’amélioration de l’ADC stm32, le processus de conversion ad ordinaire est de commencer une conversion, lire une valeur une fois, puis recommencer, relire la valeur, un tel processus, mais l’ADC stm32 est relativement avancé, peut colonne un groupe, démarrer un groupe à la fois, convertir plusieurs valeurs successivement, et il y a deux groupes,L’un est un groupe de règles pour une utilisation régulière et l’autre est un groupe d’injection pour les événements soudains

Analogique chien de garde surveille automatiquement la plage de tension d’entrée, cet ADC, généralement peut être utilisé pour mesurer l’intensité de la lumière, la température de ces valeurs, et souvent il y aura une demande, si la lumière est supérieure à un certain seuil, en dessous d’un certain seuil, ou lorsque la température est supérieure à une certaine valeur de domaine, en dessous d’un certain seuil, effectuer une certaine opération, ce jugement au – dessus d’une certaine valeur, en dessous d’un certain seuil,Cela peut être fait automatiquement avec un chien de garde analogique, qui peut surveiller certains canaux spécifiés, et lorsque la valeur ad est supérieure à son seuil supérieur ou inférieur, il applique une interruption, et vous pouvez effectuer les actions correspondantes dans la fonction d’interruption, de sorte que vous n’avez pas à lire la valeur manuellement en permanence, puis à juger si.

Stm32f103c8t6 ressources ADC:Adc1, adc2,10 canaux d’entrée externes (c’est – à – dire qu’il peut mesurer le signal analogique jusqu’à 10 broches externes, avant de dire 16 sources de signaux externes, c’est cette série a jusqu’à 16 sources de signaux externes, mais nous avons moins de broches de puce, il y a beaucoup de broches qui ne sortent pas)

Voici comment cet ADC approche par approche mesure la tension

C’est la structure interne de l’ADC de type approche par approche, comprendre cette structure vous aidera beaucoup à apprendre l’ADC de stm32, car le principe de l’ADC de stm32 est le même que celui – ci, mais stm32 ne dessine qu’une boîte pour représenter l’ADC et ne décrit pas la structure interne.

Convertisseur analogique numérique ADC

Cette figure est le schéma de la structure interne de l’adc0809, il s’agit d’une puce ADC indépendante à approximation progressive de 8 bits, dans le temps précédent, la performance de la machine à puce unique n’était pas très forte, il fallait donc une puce ADC externe pour effectuer la conversion ad, cette puce adc0809 est une puce ADC plus classique, qui a maintenant une grande amélioration de la performance et de l’intégration de la machine à puce unique,Beaucoup de périphériques ADC sont déjà intégrés à l’intérieur du monopuce, de sorte qu’il n’y a pas de puce externe, la broche peut mesurer directement la tension, l’utilisation est toujours très pratique

Tout d’abord à gauche ici in0 ~ in7, est le canal d’entrée à 8 voies, à travers le commutateur de sélection de canal, cochez une voie, entrez à ce point pour la traduction, voici le verrouillage d’adresse et le décodage, est – ce que vous voulez vérifier quel canal, mettez le numéro de canal sur ces trois pieds (Adda, addb, addc), puis donnez un signal de verrouillage (ALE),Le commutateur de voie correspondant ici ci – dessus peut être composé automatiquement, ce qui équivaut en partie à un sélecteur de données qui peut passer le signal analogique, car la conversion ADC est un processus rapide, vous donnez un signal de départ, après quelques US, la conversion est terminée, donc si vous voulez convertir un signal multiplex, il n’est pas nécessaire de concevoir plusieurs convertisseurs ad, il suffit d’un convertisseur ad,Ensuite, ajoutez un commutateur de sélection Multiplex, pour savoir quelle voie convertir, débranchez d’abord le commutateur, cochez le canal correspondant, puis commencez la conversion.

C’est la partie de cette sélection de canaux d’entrée, cet adc0809 n’a que 8 canaux d’entrée, nous avons l’ADC à l’intérieur de stm32 qui a 18 canaux d’entrée, donc la correspondance ici, c’est un multiplexeur de 18 entrées, alors le signal d’entrée est sélectionné, d’ici, comment peut – on savoir quelles sont les données codées auxquelles cette tension correspond?Cela nous oblige à comparer un par un avec une approche approche approche par approche, d’abord c’est un comparateur de tension qui peut juger de la relation de taille des tensions des deux signaux d’entrée, la sortie d’un niveau haut et bas indiquant qui est grand et qui est petit, ses deux entrées, l’une est La tension à mesurer et l’autre est la sortie de tension du DAC ici,Le DAC est un convertisseur numérique – analogique, nous l’avons dit plus tôt, donnez – lui une donnée et il peut sortir la tension à laquelle correspondent les données,DAC interne est l’utilisation d’un réseau de résistance pondérée pour réaliser la conversion, en particulier, vous pouvez regarder la section ad / da dans le tutoriel 51 monopuce, qui maintenant, nous avons une entrée de canal externe, une tension codée inconnue, et une sortie DAC, une tension codée connue, les deux entrées en même temps dans un comparateur de tension pour le jugement de taille, si la tension de sortie DAC est plus grande,J’ai réduit les données DAC, si la tension de sortie DAC est relativement petite, j’ai augmenté les données DAC jusqu’à ce que la tension de sortie DAC et la tension d’entrée du canal externe soient égales en myopie, de sorte que les données d’entrée DAC sont des données codées pour la tension externe.

Ce processus de régulation de la tension est ce que ce SAR approche par approche se fait, et pour trouver le codage de la tension inconnue le plus rapidement possible, nous le cherchons généralement en utilisant la dichotomie.Par exemple, voici l’ADC de 8 bits, le codage est de 0 ~ 255, la première fois que nous comparons, nous allons donner au DAC la moitié de l’entrée 255, faire la comparaison, qui est 128, puis voir qui est plus grand et plus petit, si la tension DAC est plus grande, la deuxième fois que nous comparons, nous allons donner la moitié de 128, 64.

En procédant de cette façon, vous trouverez le codage de la tension inconnue le plus rapidement possible, et ce processus, si vous le représentez en binaire, vous trouverez 128, 64, 32 ces données, exactement le droit de bits de chaque bit du binaire, ce processus de jugement est comparable à celui – ci, qui détermine Si le binaire est 1 ou 0 Dans l’ordre, du BIT haut au BIT bas,C’est d’où vient le nom du type d’approximation progressive, qui pour un ADC de 8 bits, juger 8 fois de haut en bas pour trouver le codage de la tension inconnue, et pour un ADC de 12 bits, juger 12 fois à son tour, c’est le processus d’approximation progressive, puis,Une fois la conversion ad terminée, les données d’entrée du DAC, c’est – à – dire le codage de la tension inconnue, sont sorties ici, il y a 8 fils sur 8 bits, 12 fils sur 12 bits, et enfin ici,EOC est end of Convert, signal de fin de conversion, START est le début de la conversion, donner une impulsion d’entrée, commencer la conversion, Clock est l’horloge ADC, parce que l’intérieur de l’ADC est étape par étape pour juger, donc une horloge est nécessaire pour pousser ce processus, ci – dessous,Vref + et vref – sont la tension de référence du DAC, comme vous donnez une donnée 255, est – ce que cela correspond à 5V ou 3,3v, est déterminé par cette tension de référence, la tension de référence de ce DAC détermine également la plage d’entrée de l’ADC, donc c’est aussi la tension de référence de l’ADC, et enfin à gauche est l’alimentation de l’ensemble du circuit de la puce,VCC et GNd, généralement le pôle positif de la tension de référence et VCC sont les mêmes, seront connectés ensemble, et le pôle négatif de la tension de référence et GNd sont les mêmes, donc en général, la plage de tension d’entrée de l’ADC est la même que l’alimentation de l’ADC.

Fin du texte principal
 0