• Aucun résultat trouvé

protocole SPIMise en oeuvre du

N/A
N/A
Protected

Academic year: 2022

Partager "protocole SPIMise en oeuvre du"

Copied!
6
0
0

Texte intégral

(1)NOM :. Systèmes communicants : TP sur le protocole SPI. SCLK MOSI MISO SS. SPI Slave. SCLK MOSI MISO SS. SPI Slave. SCLK MOSI MISO SS. SPI Slave. R IS C. SPI Master. SCLK MOSI MISO SS1 SS2 SS3. SN. Une liaison SPI (pour Serial Peripheral Interface) est un bus de données série synchrone, qui opère en mode Full-duplex. Les circuits communiquent selon un schéma maître-esclaves, où le maître s'occupe totalement de la communication. Plusieurs esclaves peuvent coexister sur un même bus, dans ce cas, la sélection du destinataire se fait par une ligne dédiée entre le maître et l'esclave appelée chip select.. -. Mise en oeuvre du bus SPI à partir d'un microcontrôleur et d’un potentiomètre numérique MCP41010 (à interface SPI). -B. AC. Pr. o. Théorie Etude du bus SPI 1) Nommer les fils nécessaires pour réaliser un bus au protocole SPI 2) Quel type de liaison est réalisé par la liaison SPI ? ( liaison série ou parallèle , synchrone ou asynchrone , half duplex ou full duplex ). 3) A partir du schéma structurel ci-dessous , repérer et nommer les fils du bus SPI :. LP. VE. YN. ES. Repérer sur le schéma les circuits maître et esclave. Bac Pro SN - Lycée Pro Veynes. 1/6.

(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)

Références

Documents relatifs