protocole SPIMise en oeuvre du
6
0
0
Texte intégral
(2) NOM : Etude du circuit MCP41010 (Potentiomètre numérique à bus SPI) A partir de la documentation technique sur ce circuit , répondez aux questions suivantes : 4) Donner la valeur du potentiomètre numérique de référence MCP41010.. -. 5) Combien de valeurs différentes (résistances RWA et RWB) peut avoir ce potentiomètre numérique ?. Valeurs numériques Calcul RWA. 0. 64. R IS C. 6) Calculer les valeurs des résistances ( en ohms) RWA et RWB de ce potentiomètre numérique pour les valeurs numériques suivantes 0 ; 64 ; 127 ; 191 ; 255 127. 191. SN. RWA =. 255. (10000*(256 -D) /256 ) + 52. Calcul RWB. o. RWB=. AC. Pr. (10000*D) /256 ) + 52. Data. X. X. 191. X. P1. P0. D7. D6. D5. D4. D3. D2. D1. VE. 255. X. D0. YN. 64 127. C0. ES. 0. C1. -B. 7) A partir de la question 6) , donner les valeurs binaires nécessaires pour programmer (écrire) les registres de commande et de données du circuit MCP4821 à la configuration demandée. (voir page 18 / 32) Registre de données Registre de commande. LP. SIMULATION avec PROTEUS 8) Analyse du programme « MCP41010_RES.ino » qui mesure les résistances RWA et RWB du potentiomètre numérique MCP41010 - A quoi sert la fonction void setup() dans ce programme ?. Bac Pro SN - Lycée Pro Veynes. 2/6.
(3) NOM :. -. - Repérer sur le programme la boucle sans fin . Que permet-elle de réaliser en sortie du potentiomètre ?. R IS C. - Repérer sur le programme , la fonction (appelée aussi sous-programme) qui permet de gérer le bus SPI. Surligner l'instruction permettant de valider le potentiomètre MCP41010 (entrée Chip select) . 9) Avec le logiciel Arduino , sélectionner la carte adéquate (Arduino UNO) et compiler le programme avec « Exporter les binaires compilés » pour avoir le fichier binaire ( en .hex). SN. Vérifier que dans le dossier contenant le fichier MCP41010_RES.ino , ce fichier .hex a bien été généré.. o. Signature Professeur :. -B. AC. Pr. 10) - Ouvrir avec Proteus le fichier de simulation « mesure resistance mcp41010 arduino .DSN » - Placer dans le microcontrôleur , le fichier binaire .hex généré ( clic droit sur la carte Arduino , puis « Edit Properties » puis « Program Files ») - Lancer l’animation avec la touche « play » puis faire une « Pause » - Compléter le tableau avec les valeurs RWA et RWB mesurées à l’ohmmètre et les valeurs affichées sur le terminal série RS232 pour différentes valeurs ( NUM à 0 ; 64 ; 127 ; 191 ; 255 ) Attention ! Modifier la valeur dans le programme .ino et le compiler à chaque fois avant de lancer la simulation avec Proteus. 0 Terminal. RWA. RWB. 127 RWA. 191 RWB. RWA. 255 RWB. RWA. RWB. YN. Ohmmètre. RWB. ES. RWA. 64. Signature professeur :. LP. VE. Comparer vos valeurs mesurées avec la simulation avec vos valeurs calculées en théorie (question 6) Calculs théorie RWA. RWB. Mesures Ohmmètre RWA. RWB. Calcul pourcentage d’erreur en % = [(Val théorie – Val mesurée) / Val théorie ]*100. RWA. RWB. Valeur 127. Bac Pro SN - Lycée Pro Veynes. 3/6.
(4) NOM : - Quantifier la qualité de la mesure ( si le pourcentage d’erreur est inférieur à 1 % , la mesure est précise ). -. 11) Modification du programme « MCP41010_eleves.ino ». R IS C. En analysant le précédent programme MCP41010_RES.ino, compléter ce nouveau programme pour changer automatiquement les résistances RWA et RWB du potentiomètre numérique en incrémentant (pas de 1) de 0 à 255 la valeur numérique puis en la décrémentant (pas de 1) de 255 à 0. SN. - Initialiser le protocole SPI en mode 2 , MSB en premier , Horloge SCK à 250KHz - Initialiser la liaison série RS232 (8 bits , sans parité avec un débit de 4800bps). - décrémenter de 255 à 0 par pas de 1 pour changer les valeurs des résistances RWA et RWB du potentiomètre numérique MCP41010. Pr. o. Avec le logiciel Arduino , sélectionner la carte adéquate (Arduino UNO) et compiler votre programme avec « Exporter les binaires compilés » pour avoir le fichier binaire ( en .hex). AC. Vérifier que dans le dossier contenant le fichier MCP41010_eleves.ino , ce fichier .hex a bien été généré. Signature Professeur :. -B. - Ouvrir avec Proteus le fichier de simulation « simul mcp41010 arduino.DSN» - Placer dans le microcontrôleur , le fichier binaire .hex généré ( clic droit sur la carte Arduino , puis « Edit Properties » puis « Program Files ») - Paramétrer correctement le terminal série. ES. - Lancer l’animation avec la touche « play » - Vérifier avec le voltmètre et le terminal série qu’ à chaque incrémentation (et décrémentation) la valeur du potentiomètre MCP 41010 varie et modifie la tension à sa sortie PW0. YN. Compléter le tableau avec vos mesures de simulation Mesure au voltmètre. Tension affichée sur le terminal série. LP. VE. Valeur incrément / décrément 0 127 255 191 16. Signature professeur : - Imprimer votre programme « MCP41010_eleves.ino » modifié (ajouter votre nom en commentaire) - Faire une « Pause » dans l’animation . Faire une copie d’écran du moniteur SPI (SPI debug) et l’imprimer. Bac Pro SN - Lycée Pro Veynes. 4/6.
(5) NOM :. R IS C. - Stopper l’animation - Simuler le graphe « protocole bus SPI » en mettant le curseur dans la fenêtre du graphe et en appuyant sur la barre d’espace . Agrandir ce graphe (clic gauche sur le bandeau vert du graphe). Utiliser la touche « Zoom to View Entire Sheet » pour avoir plusieurs cycles du bus SPI Utiliser ensuite la touche « Zoom to Area » en faisant une fenêtre sur la partie à zoomer. -. - Que représentent les 2 octets (répondre sur la feuille imprimée ) ?. Répondre sur vos graphes aux questions ci-dessous :. SN. - Imprimer les signaux obtenus ( dans « Files » puis « Print » ( paramétrer l’imprimante et cliquer sur « Fit to page » ) ) . Ajouter votre nom.. - Sur quel état logique du signal CS apparaissent le signal d’horloge et les données ?. Pr. o. - Mesurer la période T du signal SCK et en déduire la fréquence f ( f = 1 / T ) ( utiliser 2 curseurs , le 2eme curseur apparaîtra avec la touche Ctrl ). AC. - Sur le signal SCK , mettre en couleur les fronts actifs (↑ ou ↓ ). -B. - Coder en binaire les 2 octets de données puis les convertir en hexadécimal.. LP. VE. YN. ES. A quoi correspondent ces 2 octets pour le circuit MCP41010 ( voir doc page 18 / 32) ?. Exemple d’application du potentiomètre numérique : - Contrôle du volume audio d’un téléviseur avec une télécommande. 12) Vous allez simuler avec Proteus un dispositif permettant de contrôler le gain d’un amplificateur à l’aide de 2 boutons poussoirs BP_UP et BP_DN connectés sur la carte Arduino et du potentiomètre numérique MCP41010. Bac Pro SN - Lycée Pro Veynes. 5/6.
(6) NOM : Avec le logiciel Arduino , sélectionner la carte adéquate (Arduino UNO) et compiler le programme « MCP41010_gain_ampli_eleves.ino » avec « Exporter les binaires compilés » pour avoir le fichier binaire ( en .hex). R IS C. -. Vérifier que dans le dossier contenant le fichier MCP41010_gain_ampli_eleves.ino , ce fichier .hex a bien été généré. Signature Professeur :. Compléter le tableau avec vos valeurs de la simulation Ventrée ampli en V. Vsortie ampli en V. Amplification en Gain Gv en dB de l’amplificateur tension Av Av = Vsortie /Ventrée Gv = 20 log ( Av ). o. RWB en Ω. Pr. NUM. SN. - Ouvrir avec Proteus le fichier de simulation «contrôle gain ampli avec mcp41010 arduino .DSN » - Placer dans le microcontrôleur , le fichier binaire .hex généré ( clic droit sur la carte Arduino , puis « Edit Properties » puis « Program Files ») - Lancer l’animation avec la touche « play » - Donner la valeur de la résistance RWB du MCP41010 , la valeur max du signal à l’entrée de l’ amplificateur , la valeur max du signal de sortie de l’amplificateur pour différentes valeurs de la variable NUM ( valeur affichée sur le terminal et variant avec les boutons poussoirs). 0. AC. 125. Signature Professeur :. -B. 255. ES. - Imprimer les signaux obtenus à l’entrée de l’amplificateur et à sa sortie pour NUM = 125. Repérer les axes et les signaux de différentes couleurs .Donner la valeur maximale de chaque signal ainsi que la période . En déduire l’amplification en tension Av avec les valeurs mesurées. Vérifier que cette amplification Av est égale à RWB / R ( voir schéma sur Proteus ) .. YN. (Remarque : pour faire les mesures à l’oscilloscope , utiliser les curseurs et prendre des calibres permettant de zoomer les courbes). LP. VE. - Quel est le défaut du programme lorsque vous incrémentez (ou décrémentez) pour une valeur supérieure à 255 ou une valeur inférieure à 0 ?. - Modifier le programme pour que le dispositif ne dépasse pas 255 ou 0 et ajouter un bouton poussoir « MUTE » pour couper le son . Imprimer votre programme ( ajouter votre nom en commentaire ). Compiler le programme modifié et le tester avec Proteus en modifiant le schéma . Signature Professeur Bac Pro SN - Lycée Pro Veynes. 6/6.
(7)
Documents relatifs