Outils pour utilisateurs

Outils du site


tns_nucleo

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révision Les deux révisions suivantes
tns_nucleo [2018/03/02 00:11]
bvandepo [Analyse du code généré]
tns_nucleo [2019/03/27 17:48]
bvandepo [Configuration du Timer 1]
Ligne 1: Ligne 1:
 +
 +{{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/warning.jpeg}}
 +<color red>
 +A FAIRE A LA FIN DE CHAQUE SEANCE POUR COPIER VOS FICHIERS SUR UN DISQUE PARTAGE (ET PERMETTRE LA RECUPERATION DES FICHIERS SI UN MEMBRE DU BINOME EST ABSENT)
 +
 +copier coller dans une console:
 +</color>
 +  rsync -av --delete ~/workspace_ac6 /mnt/etu/s4
 +
 +<color red>
 +et completer la ligne en appuyant 3 fois sur la touche Tabulation, puis entrée.
 +
 +
 +</color>
 +
 +
 +
 ====== Mise en place du projet architecture pour le TNS sur plateforme Nucléo ====== ====== Mise en place du projet architecture pour le TNS sur plateforme Nucléo ======
  
Ligne 16: Ligne 33:
 {{ ::carte_stm32f334r8.png?600 |}} {{ ::carte_stm32f334r8.png?600 |}}
  
-<ifauth @prof> Il faut ouvrir le lien suivant pour voir la fréquence de l'oscillateur interne du micro à 72Mhz: </ifauth> 
 Cette carte dispose d'un micro-controlleur STM32F334R8 [[http://www.st.com/en/microcontrollers/stm32f334r8.html]] associé à : Cette carte dispose d'un micro-controlleur STM32F334R8 [[http://www.st.com/en/microcontrollers/stm32f334r8.html]] associé à :
  
Ligne 24: Ligne 40:
   * Une led pilotable logiciellement   * Une led pilotable logiciellement
   * Un bouton lisible logiciellement   * Un bouton lisible logiciellement
-  * Un oscillateur 32kHz+  * Un oscillateur externe 32kHz 
 + 
 +La fréquence maxi du microcontroleur est de 72Mhz (par horloge externe). Par contre l'oscillateur interne est à 8Mhz et peut être multipliée par un facteur 8 (*16/2) maximum, ce qui fournit une fréquence de 64Mhz. 
  
 Les connecteurs sont liés au micro-controlleur selon le schéma suivant : Les connecteurs sont liés au micro-controlleur selon le schéma suivant :
Ligne 61: Ligne 80:
   Help -> Updater Settings ...   Help -> Updater Settings ...
      
-et modifier le chemin intitulé "Repository Folder" en "/opt/STM32/STM32Cube/Repository"+et modifier le chemin intitulé "Repository Folder" en "/opt/STM32/STM32Cube/Repository" (en copiant collant du caractère / au caractère y inclus)
  
 {{ ::modify_respository.png?600 |}} {{ ::modify_respository.png?600 |}}
Ligne 135: Ligne 154:
 Dans ce panneau, l'utilisateur a accès aux différents périphériques listés dans les catégories : Connectivity, Analog, System, Control. Dans ce panneau, l'utilisateur a accès aux différents périphériques listés dans les catégories : Connectivity, Analog, System, Control.
  
-Dans notre cas, il est nécessaire de : +Dans notre cas, il est nécessaire de configurer
-  * Configurer l'ADC pour la conversion sur la canal 1 avec un déclenchement en logiciel +  * l'ADC pour la conversion sur la canal 1 avec un déclenchement en logiciel 
-  * Configurer le timer pour la génération d'une interruption toutes les N µs +  * le timer pour la génération d'une interruption toutes les N µs 
-  * Configuration du NVIC (Nested Vectored Interrupt controller) pour la prise en charge de l'interruption timer +  * le NVIC (Nested Vectored Interrupt controller) pour la prise en charge de l'interruption timer 
-  * Configuration du DAC  +  * le DAC  
-  * Configuration de la liaison série en 115200bauds+  * la liaison série en 115200bauds
  
  
Ligne 153: Ligne 172:
  
 ==== Configuration du Timer 1 ==== ==== Configuration du Timer 1 ====
 +Cliquer sur l'onglet Clock Configuration pour visualiser les différentes horloges disponibles. Repérer l'horloge utilisée pour cadencer le TIMER1.
  
  
Ligne 168: Ligne 188:
 {{ ::timer_base_config.png?600 |}} {{ ::timer_base_config.png?600 |}}
 <color red> auto-reload preload ? up ? </color> <color red> auto-reload preload ? up ? </color>
-Dans notre cas, nous voulons générer des évènements à la fréquence de 24kHz.+Dans notre cas, nous voulons générer des évènements à la fréquence de 48kHz.
  
  
Ligne 192: Ligne 212:
            ARR = 16/32-bit Autoreload register            ARR = 16/32-bit Autoreload register
            RCR = 16-bit repetition counter            RCR = 16-bit repetition counter
 +exemple de la doc:
   TIM_CLK = 72 MHz   TIM_CLK = 72 MHz
   Prescaler = 1   Prescaler = 1
Ligne 201: Ligne 221:
  
  
-Pour les 24Khz demandés sur le sujet: +En fait l'horloge d'entrée qui cadence TIM1 est à 64Mhz  (voir l'onglet Clock Configuration dans l'appli) 
-il faut un facteur de division de 72.10^6 / 24.10^3 = 3000+Pour les 48Khz demandés sur le sujet: 
 +il faut un facteur de division de 64.10^6 / 48.10^3 = 1333.3333
  
 je peux régler  je peux régler 
   Prescaler = 0   Prescaler = 0
   Counter mode = Down   Counter mode = Down
-  Counter Period = 2999+  Counter Period = 1333
   Internal Clock Division = No Division   Internal Clock Division = No Division
   Repetition Counter RCR = 0   Repetition Counter RCR = 0
Ligne 253: Ligne 274:
  
  
-A la première génération de code, il vous compléter les attributs de génération de code (chemin, outils de développement ...). Dans le cadre de ce TP il vous configurer pour avoir le résultat suivant (remplacer le code étudiant par votre code propre) :+A la première génération de code, il vous faut compléter les attributs de génération de code (chemin, outils de développement ...).  
 +<color red> 
 +Dans le cadre de ce TP il vous utiliser le dossier : 
 +</color> 
 +   /home/IUT/<identifiant étudiant>/workspace_ac6
  
 +Par exemple, si votre login est abc123b, vous devez régler:
 +  Project Name: nucleo_tns
 +  Project Location: /home/IUT/abc123b/workspace_ac6
 +  Toolchain/IDE: SW4STM32
 +   
 {{ ::config_gen_code.png?600 |}} {{ ::config_gen_code.png?600 |}}
  
Ligne 263: Ligne 293:
  
  
-Afin de lancer l'IDE SystemWorkbench, il vous faut taper dans une console :+Afin de lancer l'IDE SystemWorkbench, il vous faut lancer dans une console :
  
   /opt/STM32/SystemWorkbench/eclipse   /opt/STM32/SystemWorkbench/eclipse
      
-A l'ouverture le logiciel vous propose de charger un workspace. Il vous faut alors saisir (ou naviguer) vers le répertoire workspace de votre répertoire utilisateur (/home/<identifiant étudiant>/workspace). +A l'ouverture le logiciel vous propose de charger un espace de travail (workspace). Il vous faut alors saisir (ou naviguer) vers le répertoire workspace_ac6 de votre répertoire utilisateur (/home/IUT/<identifiant étudiant>/workspace_ac6). 
  
 Une  fois l'outil lancé : Une  fois l'outil lancé :
Ligne 302: Ligne 332:
  
 {{http://homepages.laas.fr/bvandepo/files/iut/tp_tns/TODO.jpg}}  **Lire le code généré et faire le lien avec la configuration saisie dans l'outil STM32CubeMX.** {{http://homepages.laas.fr/bvandepo/files/iut/tp_tns/TODO.jpg}}  **Lire le code généré et faire le lien avec la configuration saisie dans l'outil STM32CubeMX.**
- 
- 
-===Initialisation du système de gestion de version en local=== 
-Copier/coller dans une console: 
-  echo commence 
-  cd ~/workspace/nucleo_tns/Src 
-  git init 
-  git add main.c 
-  git commit -m'initial version' 
-  gitk  
-  echo fini 
  
 === Compléter le code  ... === === Compléter le code  ... ===
Ligne 377: Ligne 396:
  
 Le logiciel va vous proposer d'ouvrir la "perspective" de Debug (agencement des fenetres facilitant le Debug), répondre "ok". Par défaut le programme est arreté sur la première ligne de la fonction main, vous pouvez ensuite lancer l'exécution en appuyant sur F8 ou faire du pas à pas en utilisant F5 et F6. Le logiciel va vous proposer d'ouvrir la "perspective" de Debug (agencement des fenetres facilitant le Debug), répondre "ok". Par défaut le programme est arreté sur la première ligne de la fonction main, vous pouvez ensuite lancer l'exécution en appuyant sur F8 ou faire du pas à pas en utilisant F5 et F6.
 +
 +
 +  
 +
 +
  
  
tns_nucleo.txt · Dernière modification: 2019/03/28 14:22 de bvandepo