3.2.2. Acquisition de la tension d’entrée

Le cœur du système est constitué de trois boucles de régulation de type PID. Pour pouvoir fonctionner, il est nécessaire d’avoir un retour d’information en courant afin de commander le bras de puissance. Ce courant est compris entre 0 et 50 A, il est mesuré à l’aide d’un capteur fourni par le client qui renvoie une tension entre 0 et 5V image du courant. La récupération de la tension s’effectue avec un CAN. Selon le cahier des charges, il doit avoir une précision de 12 bits et communiquer via une liaison SPI. Les CAN sont implantés sur la carte ADC.

Notre choix s’est tourné vers le AD7928 de chez Analog Devices. Il répond aux critères du cahier des charges.

La fréquence maximale du bus SPI est de 20 MHz. Ainsi, en 1 us la donnée est disponible dans le FPGA. Il dispose de 8 voies de mesures. Cependant, afin d’optimiser le temps de boucle de la régulation, une seule voie par ADC est utilisée pour une boucle. Toutefois, quelques voies seront connectées à des sorties afin de rendre la carte fille plus flexible en cas de changement. Ainsi la carte ADC se compose de trois ADC pour mesurer le retour en courant, et un CADC pour la tension, ce dernier ne sera pas utilisé dans un premier temps.

Pour communiquer avec le FPGA, un bloc SPI doit être créé afin de configurer l’AD7928 et récupérer les données. Une carte ADC de test a été développée afin de tester les différents blocs du système.

La carte ADC se compose de quatre AD7928. Afin de rendre la carte plus flexible, 3 voies par ADC sont disponibles sur le connecteur d’entrée des tensions. De plus, une voie est reliée à la masse et une autre à la référence de tension, cela permettra l’intégration future d’un système de correction de l’erreur de la valeur lue en entrée de l’ADC. Le schéma électronique est représenté en annexe IV.

La carte ADC se place sur un des connecteurs de la carte DE0-nano-SoC.

L’ADC dispose de quatre modes de fonctionnement. Le mode normal Operation permet d’avoir une vitesse de fonctionnement optimale. Il sera donc utilisé afin de minimiser le temps de traitement des données.
Avant de pouvoir lire correctement les données du CAN, il faut initialiser son registre.

Afin d’écrire dans le registre, le bit 11 doit être à 1. Le bit 10 n’est pas utilisé, car nous utilisons le mode normal Operation. La voie connectée au capteur de courant étant la voie 0, l’adresse est 000, elle correspond aux bits 8,7 et 6. Pour utiliser le mode normal Operation, les bits 5 et 4 doivent être initialisés à 1. Le mode shadow n’étant pas utilisé le bit 3 est égal à 0. La référence de tension est de 2.5V, sachant que la plage de mesure est définie entre 0 et 5 V donc le bit 1 est égal à 0. Enfin, nous utilisons un codage « classique » donc le bit 1 est initialisé à
Les valeurs du registre sont envoyées à l’ADC, ainsi à chaque front descendant de /CS, ce dernier renverra la valeur de la tension codée sur 12 bits au FPGA.

Le bloc SPI permet d’initialiser l’ADC et de récupérer la valeur de la tension lue en entrée.
Grâce à la carte ADC développée précédemment, nous avons pu valider le fonctionnement de cette dernière et du bloc SPI. À l’aide d’un Logic Analyzer, nous avons pu observer les trames échangées entre le FPGA et l’ADC. L’horloge est de 50MHz, la fréquence maximale de fonctionnement de l’ADC.

______________________________________________________________________________________________________________________________________________________
Page précédente : 3.2.1. Génération d’une PWM
Page suivante : 3.2.3. Le correcteur PID