Séance 3

publicité
Option Architecture et traitement des signaux – 2016
Séance 3 : CAN et Interface SPI Nios2
L’objectif de cette séance est de réaliser la conversion analogique numérique des signaux
issus du capteur OPT101. Pour cela, deux parties sont nécessaires ; le développement matériel
(connexion analogique du CAN à l’étage d’amplification et au FPGA, intégration de l’IP SPI
sous QSYS) et la programmation des registres de l’IP SPI via le Nios2 pour la récupération
des échantillons puis leur traitement.
Le synopsis ci-dessous résume les deux dernières séances et montre l’objectif de la séance 3.
Figure 1. synopsis séance 3
I. Convertisseur Analogique Numérique – AD7810
L’AD7810 de chez Analog Device, est un convertisseur analogique numérique de type SAR –
à approximations successives. Le convertisseur sera alimenté entre 0 et 5v. La tension de
référence sera positionnée à 5v. L’entrée Vin- sera positionnée à 0v.
Figure 2. AD7810 schéma fonctionnel
L’AD7810 comprend une interface SPI (Serial Protocol Interface) sur 3 fils, CONVST –
début de conversion actif en passant de 0 à 1, DOUT – MISO (Master Input Slave Output) et
SCLK – l’horloge du protocole de transfert (100kHz). Ces trois signaux sont produits par la
uC (NIOS2) à l’intérieur du FPGA.
Pr. Olivier ROMAIN
1
Option Architecture et traitement des signaux – 2016
Figure 3. Diagramme de connexion AD7810 - FPGA / uC
Travail à réaliser
1.1.1 A l’aide du datasheet donné en annexe, déterminer le nombre de bits du CAN.
1.1.2 Régler la résistance R1 de l’étage de gain de manière à avoir une amplitude du signal
cardiaque de l’ordre de 3V.
1.1.3 Déterminer théoriquement la valeur du Quantum.
1.1.4 Quelle sera la précision sur le signal quantifié ?
Consigner les résultats dans votre CR.
1.1.5 Déterminer la plage théorique du signal cardiaque numérisé en sortie du CAN.
1.1.6 Compte tenu des caractéristiques de l’étage d’amplification, quelle doit être la
fréquence d’échantillonnage minimale à respecter ?
1.1.7 Identifier à partir du datasheet, le signal permettant l’échantillonnage.
1.1.8 Câbler comme sur la figure 3, le CAN. Vin+ sera relié à la sortie de l’étage
d’amplification. Les signaux SCLK, MOSI (DOUT) et CONVST seront
respectivement les broches du JP1 de la carte DE1, comme suit :
SCLK : PIN_H13
MISO - DOUT : PIN_G15
CONVST : PIN_E15
Masse : broche 10
Figure 4. Définition des broches du GPIO1
1.1.9 Relier avec des fils, les broches du FPGA à la carte Labdec.
1.1.10 Faites contrôler par l’enseignant.
Pr. Olivier ROMAIN
2
Option Architecture et traitement des signaux – 2016
II. Développement HW sous Qsys : intégration de l’IP bus SPI
Le convertisseur AD7810 est contrôlé par le Nios2 via un bus SPI. Ce bus permet de
programmer les registres de l’AD7810, d’initier une conversion analogique numérique et de
récupérer l’échantillon acquis.
Nous allons modifier le design du Nios2 de la séance 1 pour y intégrer un bus SPI via un IP
(megacore) fournit par ALTERA.
Travail à réaliser
1.1.11
1.1.12
1.1.13
1.1.14
1.1.15
1.1.16
1.1.17
Lancer Quartus et ouvrir sous Qsys votre processeur de la séance 1.
Intégrer l’IP SPI et mettre les paramètres suivants :
Connecter sous Qsys l’IP suivant la figure5
Faites contrôler par l’enseignant.
Générer sous Qsys le design.
Affecter sous Quartus les broches de sorties de l’IP. Nous prendrons pour MOSI la
broche PIN_G16.
1.1.18 Compiler le programmer la carte FPGA.
1.1.19 Faites vérifier par l’enseignant.
1.1.20 Consigner vos développements dans votre compte-rendu.
III. Développement logiciel sous Eclipse : acquisition du signal
cardiaque
Cette partie est consacrée à la programmation en C du Nios2 sous Eclipse. Le programme à
réaliser permettra de récupérer les échantillons à intervalles fixes (période d’échantillonnage)
afin de pouvoir les traiter (extraction de la fréquence cardiaque, dynamique, mesure de SP02,
etc.).
Travail à réaliser
1.1.21 Lancer Quartus et ouvrir Eclipse (menu tools – Nios II Software Build Tools for
Eclipse). Vous utiliserez le projet logiciel de la séance 1.
1.1.22 Avec le clique droit de la souris, dans la fenêtre « Project Explorer », cliquer sur votre
projet_BSP, menu Nios2, Generate BSP. Votre design ayant été modifié sous Qsys
vous devez remettre à jour les drivers de votre Nios2. Ces drivers permettront
d’accéder aux périphériques comme le bus SPI.
1.1.23 Les deux instructions IOWR et IORD permettent respectivement d’écrire à l’adresse
d’un périphérique et de lire. Modifier le programme ci-dessous afin de pouvoir réaliser
une acquisition à 100Hz.
int main()
{
int valeur=0;
alt_putstr("Seance 3: acquisition du signal\n");
Pr. Olivier ROMAIN
3
Option Architecture et traitement des signaux – 2016
while(1)
{
//délais de 5000us = 5ms <=> 200Hz
usleep(5000);
//génère les signaux d'horloge et convst
IOWR_ALTERA_AVALON_SPI_TXDATA(A MODIFIER, 128);
//récupère la valeur acquise
valeur = IORD_ALTERA_AVALON_SPI_RXDATA(A MODIFIER_BASE);
//Affichage de la valeur + enregistrement dans un fichier
à compléter
}
1.1.24 Compiler le programme et faites vérifier par l’enseignant.
1.1.25 Programmer le Nios2 et vérifier à l’oscilloscope sur la broche CONVST que votre
acquisition est réalisée à 100Hz.
1.1.26 Déconnecter la sortie de l’étage d’amplification sur l’entre V+ de l’AD7810. Injecter
en entrée de l’AD7810, une rampe de tension entre 0 et 5V avec une fréquence de
1Hz. Afficher sur le console avec la fonction printf les valeurs acquises et vérifier la
linéarité du convertisseur.
1.1.27 Faites contrôler par l’enseignant.
1.1.28 Consigner vos développements dans votre compte-rendu.
1.1.29 Reconnecter la sortie de l’étage d’amplification à l’entrée de l’AD7810 et faites
l’acquisition du signal cardiaque. Enregistrer les valeurs dans un fichier pour pouvoir
les traiter sous Matlab.
1.1.30 Ajouter sous Qsys un timer programmable au Nios2 avec une IRQ. Regénérer sous
Qsys et recompiler sous Quartus. Modifier le programme en programmant une
interruption à 100Hz permettant de faire l’acquisition du signal.
1.1.31 Vérifier avec un oscilloscope sur la broche CONVST que le signal est acquis à la
fréquence programmée (100Hz).
1.1.32 Faites vérifier par l’enseignant.
1.1.33 Consigner les développements dans le compte-rendu.
IV. Compte rendu
Consigner dans votre compte rendu, les résultats que vous avez obtenus pour cette partie.
Vous mettrez en annexe de votre compte rendu les différents programmes que vous avez
développés ainsi que la méthodologie que vous avez adopté pour développer cette IP.
Fin Séance 3
Pr. Olivier ROMAIN
4
Téléchargement