Formation d'initiation sur le développement sur microcontroleurs stm32 a base de microprocesseur ARM.
Elle présente tout les éléments de base nécessaire pour attaqué le domaine de développement sur cible embarqué.
Généralités sur les périphériques du STM32Hajer Dahech
Lien Téléchargement pptx https://hajereducation.tn/peripheriques-stm32-simple-resume-presentation-powerpoint/
Généralités sur les périphériques du STM32
Merci , Thanks For watching Video
=====Subscribe == S'abonner
Playlist :STM32 :vidéos+Files+Code
Ce premier cours introduit la notion de système embarqué en commençant par en donner une définition. Il les caractérise ensuite sur base de plusieurs critères : type d'application, de fonction visé, taille, fiabilité, efficacité. Il présente ensuite plusieurs aspects hardware (unité de calcul, architecture matérielle, composants clés) et software (niveau de programmation, processus de développement). Enfin, il conclut en discutant sur ce qu'est un ingénieur en systèmes embarqués.
Ce cours présente la notion de système embarqué temps-réel et comment il est possible de gérer cela au niveau software avec un Linux embarqué. Plusieurs solutions sont présentées : OS temps-réel, linux préemptif et support hardware. Enfin, le cours présente le PRU-ICSS, dont est dotée la BeagleBone Black, une unité de calcul spécialisée pour les applications temps réel. Le cours présente comment programmer le PRU et notamment comment compiler un code à sa destination à l'aide d'un langage d'assemblage.
Généralités sur les périphériques du STM32Hajer Dahech
Lien Téléchargement pptx https://hajereducation.tn/peripheriques-stm32-simple-resume-presentation-powerpoint/
Généralités sur les périphériques du STM32
Merci , Thanks For watching Video
=====Subscribe == S'abonner
Playlist :STM32 :vidéos+Files+Code
Ce premier cours introduit la notion de système embarqué en commençant par en donner une définition. Il les caractérise ensuite sur base de plusieurs critères : type d'application, de fonction visé, taille, fiabilité, efficacité. Il présente ensuite plusieurs aspects hardware (unité de calcul, architecture matérielle, composants clés) et software (niveau de programmation, processus de développement). Enfin, il conclut en discutant sur ce qu'est un ingénieur en systèmes embarqués.
Ce cours présente la notion de système embarqué temps-réel et comment il est possible de gérer cela au niveau software avec un Linux embarqué. Plusieurs solutions sont présentées : OS temps-réel, linux préemptif et support hardware. Enfin, le cours présente le PRU-ICSS, dont est dotée la BeagleBone Black, une unité de calcul spécialisée pour les applications temps réel. Le cours présente comment programmer le PRU et notamment comment compiler un code à sa destination à l'aide d'un langage d'assemblage.
Deep Learning : Application à la reconnaissance d’objets de classes multiples...Haytam EL YOUSSFI
This project entitled "Deep Learning : Application to the Recognition of Multiple Class Objects on Images and Videos" is conducted as part of the preparation of the Basic Degree in Mathematics and Computer Science (SMI) at the Faculty of Science Agadir FSA of Ibn Zohr University UIZ for the academic year 2018/2019.
In order to achieve the main objective of our project : " Recognition of multiple class objects on images and videos", we used algorithms from machine learning and deep learning (MLP, CNN ... ), that led to a revolution in Artificial Intelligence. In particular, those methods were successfully used for the classification of objects in images and videos. These algorithms outperform traditional formal methods by their performances and succeeded in creating a system that simulates the working of human brain.
Conception et réalisation d’un MINI SMART HOMESoukainawarach
Conception et réalisation d’un SMART HOME -IOT- using Arduino
By WARACH SOUKAINA et NACIRI Youness
BONUS ***
🎁 FREE Resume Template for recently graduated (in ENG & FR) 🎁
https://www.creativefabrica.com/product/free-resume-template-no-experience-enfr/ref/1594142/
Cours dispensé à l'IUT de l'Indre sur la base des systèmes à microprocesseur
Objectif principal : démystifier le travail du compilateur en analysant le résultat de compilation d'un programme à l'issue de quelques séances de programmation en assembleur IA32.
Ce cours présente la notion de système d'exploitation et en particulier les Linux embarqués qui sont spécialement conçus pour des systèmes embarqués de haut niveau avec des processeurs à usage général (GPP) comme unité de calcul principale. Il explique ensuite comment Linux embarqué démarre, quelles sont les différentes phases et modalités de stockage du système d'exploitation. Enfin, il présente la BeagleBone Black, ses caractéristiques et comment la programmer. Le cours conclut en expliquant la notion de driver de périphérique et comment ils sont conçus sous Linux à l'aide de fichiers.
Ce cours présente les principaux moyens de communications que l'on peut déployer au sein d'un système embarqué. Après un rappel sur les différents types de communication (série/parallèle, synchrone/asynchrone, half-duplex/full-duplex), le cours présente le port série ainsi que l'implémentation UART. Vient ensuite le bus USB et les deux modes en hôte ou périphérique. Après cela, le cours présente les protocoles I2C et puis SPI. Enfin, il termine avec le simple bus 1-Wire. Tous ces différents moyens de communication sont disponibles sur la BeagleBone Black et le cours illustre comment les manipuler à l'aide du Linux embarqué.
This presentation is about the stm32 MCU developement and how to use it to make projects .in the first pages you will find some explination about the stm32 nucleo boards cathegorys then you will see how to program this boards and how use them with a safe way and you can find what is the adapted envurements to this type of boards . The STM32 is a family of microcontroller integrated circuits made by STMicroelectronics. These microcontrollers are based on the ARM Cortex-M core and are widely used in a variety of applications such as automotive, industrial control, medical devices, and consumer electronics.
One example of how the STM32 can be used is in a smart home automation system. In this application, the STM32 microcontroller would be responsible for controlling and communicating with various sensors and actuators throughout the home, such as temperature sensors, light switches, and door locks. The microcontroller would also be connected to a central hub or gateway, which would allow the homeowner to control and monitor the system remotely using their smartphone or tablet.
Another example is in a industrial control system for example for a motor control in a conveyor belt system, where the STM32 microcontroller would be responsible for monitoring and controlling the speed and position of the conveyor belt motors. This would be done by reading sensor data from the conveyor belt and using that information to adjust the speed of the motors in real-time. This would improve the efficiency and safety of the conveyor belt system.
In both examples, the STM32 microcontroller's high processing power, rich set of peripherals, and low power consumption make it an ideal solution for these types of applications.
Deep Learning : Application à la reconnaissance d’objets de classes multiples...Haytam EL YOUSSFI
This project entitled "Deep Learning : Application to the Recognition of Multiple Class Objects on Images and Videos" is conducted as part of the preparation of the Basic Degree in Mathematics and Computer Science (SMI) at the Faculty of Science Agadir FSA of Ibn Zohr University UIZ for the academic year 2018/2019.
In order to achieve the main objective of our project : " Recognition of multiple class objects on images and videos", we used algorithms from machine learning and deep learning (MLP, CNN ... ), that led to a revolution in Artificial Intelligence. In particular, those methods were successfully used for the classification of objects in images and videos. These algorithms outperform traditional formal methods by their performances and succeeded in creating a system that simulates the working of human brain.
Conception et réalisation d’un MINI SMART HOMESoukainawarach
Conception et réalisation d’un SMART HOME -IOT- using Arduino
By WARACH SOUKAINA et NACIRI Youness
BONUS ***
🎁 FREE Resume Template for recently graduated (in ENG & FR) 🎁
https://www.creativefabrica.com/product/free-resume-template-no-experience-enfr/ref/1594142/
Cours dispensé à l'IUT de l'Indre sur la base des systèmes à microprocesseur
Objectif principal : démystifier le travail du compilateur en analysant le résultat de compilation d'un programme à l'issue de quelques séances de programmation en assembleur IA32.
Ce cours présente la notion de système d'exploitation et en particulier les Linux embarqués qui sont spécialement conçus pour des systèmes embarqués de haut niveau avec des processeurs à usage général (GPP) comme unité de calcul principale. Il explique ensuite comment Linux embarqué démarre, quelles sont les différentes phases et modalités de stockage du système d'exploitation. Enfin, il présente la BeagleBone Black, ses caractéristiques et comment la programmer. Le cours conclut en expliquant la notion de driver de périphérique et comment ils sont conçus sous Linux à l'aide de fichiers.
Ce cours présente les principaux moyens de communications que l'on peut déployer au sein d'un système embarqué. Après un rappel sur les différents types de communication (série/parallèle, synchrone/asynchrone, half-duplex/full-duplex), le cours présente le port série ainsi que l'implémentation UART. Vient ensuite le bus USB et les deux modes en hôte ou périphérique. Après cela, le cours présente les protocoles I2C et puis SPI. Enfin, il termine avec le simple bus 1-Wire. Tous ces différents moyens de communication sont disponibles sur la BeagleBone Black et le cours illustre comment les manipuler à l'aide du Linux embarqué.
This presentation is about the stm32 MCU developement and how to use it to make projects .in the first pages you will find some explination about the stm32 nucleo boards cathegorys then you will see how to program this boards and how use them with a safe way and you can find what is the adapted envurements to this type of boards . The STM32 is a family of microcontroller integrated circuits made by STMicroelectronics. These microcontrollers are based on the ARM Cortex-M core and are widely used in a variety of applications such as automotive, industrial control, medical devices, and consumer electronics.
One example of how the STM32 can be used is in a smart home automation system. In this application, the STM32 microcontroller would be responsible for controlling and communicating with various sensors and actuators throughout the home, such as temperature sensors, light switches, and door locks. The microcontroller would also be connected to a central hub or gateway, which would allow the homeowner to control and monitor the system remotely using their smartphone or tablet.
Another example is in a industrial control system for example for a motor control in a conveyor belt system, where the STM32 microcontroller would be responsible for monitoring and controlling the speed and position of the conveyor belt motors. This would be done by reading sensor data from the conveyor belt and using that information to adjust the speed of the motors in real-time. This would improve the efficiency and safety of the conveyor belt system.
In both examples, the STM32 microcontroller's high processing power, rich set of peripherals, and low power consumption make it an ideal solution for these types of applications.
Mender 2.0 101: Bien démarrer avec les 'update modules'Pierre-jean Texier
Sortie courant 2019 (https://mender.io/blog/mender-2-0-released-application-updates),
la version 2.0 de Mender introduit de nouvelles fonctionnalités afin d’étendre
les scénarios de mises à jour au niveau application en environnement Linux Embarqué.
Initialement construit sur un schéma à double partition (A/B) dans sa version 1.X, la nouvelle
mouture de Mender permet par exemple :
- Mise à jour de container (e.g Docker)
- Mise à jour logiciel FPGA et/ou microcontrôleur
- Mise à jour d’une arborescence donnée du système de fichier racine
- et bien d’autres encore
La famille STM32 est une série de microcontrôleurs 32-bits en circuits intégrés réalisés par la société Franco-Italienne STMicroelectronics. Les puces STM32 sont regroupées dans différentes séries proches, basées sur les processeurs d'architecture ARM 32-bits, tels que le Cortex-M7F, le Cortex-M4F, le Cortex-M3, Cortex-M0+, ou le Cortex-M0. Chaque microcontrôleur est constitué d'un cœur de calcul, de mémoire vive (RAM) statique, de mémoire flash (pour le stockage), d'une interface de débogage et de différents périphériques1.
Le STM32 F4 comporte un Cortex-M4F, un DSP et un FPU. Il est notamment complètement géré par le système libre temps-réel ChibiOS/RT.
L'ensemble des microcontrôleurs peuvent également être programmés à l'aide de l'IDE d'Arduino.
l existe différents types de cartes compatibles Arduino basées sur le STM32. La série Nucleo a été conçue par STMicroelectronics à cet effet. D'autres constructeurs ont également fait des cartes compatibles utilisant ce SoC sous divers noms. Cela permet de l'utiliser comme contrôleur de machine-outil à commande numérique (CNC en anglais). des logiciels tels que Grbl permettent de contrôler des machines de fraisage2, auxquelles notamment les imprimantes 3D ou imprimantes de découpe laser se rapprochent. Permettant ainsi de rendre accessible ce type de machines traditionnellement très onéreuse à des fab lab et amateurs éclairés.
Les cartes Stm32 Nucleo, supportent une compatibilité avec les cartes Arduino, bien que basées sur des microcontrôleurs ARM Cortex-M (32 bits) et non Atmel AVR (8 bits) comme utilisés dans les cartes Arduino standard. Il ajoute ainsi à Arduino de bonnes performances graphiques en y ajoutant l'accélérateur graphique Chrom-ART (fourni avec une bibliothèque open source), orienté affichage TFT (ou plus généralement, écran à cristaux liquides), et comportant pour cela une interface MIPI DSI
Les STM32 F4 et supérieurs possédants un DSP, ils sont adaptés à l'usage pour le son. La carte synthétiseur Axoloti est un exemple d'application dans le domaine du son.
Le logiciel de synthétiseur analogique libre, Mozzi pour Arduino peut être utilisé directement sur les STM32, en particulier sur la carte à bas prix, STM32F103C8T6 blue pill board (dans les 2€), sans besoin d'un véritable DAC Ce processeur est utilisé comme processeur principal et contrôleur de vol dans les drones quadrirotors de course et acrobatiques utilisés en pilotage en immersion (FPV, généralement DIY (artisanaux). Il offre plus de puissance de calcul que les autres contrôleurs utilisés dans ce type de drone, tel que les Atmel AVR et le Microchip PIC, tous deux des processeurs 8 bits5,6. Les séries F1 F3 F4 et F7 peuvent en être utilisés dans ce domaine7. Les STM32 de la série F4 en particulier, ont un certain succès dans ce domaine (où il est généralement appelé F48), il est notamment utilisé par les drones de Quantum Systems9, mais également sur les « cartes de vol » (cartes contrôleur) de différents constructeurs
cấu trúc máy tính ( architecture des ordinatuers)Hạ Cháy
Đây là cuốn sách hay bằng tiếng Pháp dành cho các thanh niên ham học và muốn qua Pháp tu nghiệp, rất mong các bạn đọc vì nó hay lắm , đm viết hoài sao chưa đủ score vậy trời.
Dans cet exposé, on présentera OMicroB, une machine virtuelle OCaml pour microcontrôleurs à faibles ressources, inspirée des travaux précédents sur le projet OCaPIC. Cette machine virtuelle, destinée à être exécutée sur diverses architectures matérielles (AVR, PIC, ARM, ...) permet ainsi de factoriser le développement d’applications, mais aussi de généraliser l’analyse et le débogage du bytecode associé, tout en permettant un usage précautionneux de la mémoire. On cible alors des programmes ludiques ou de domotiques destinés à être exécutés sur des microcontrôleurs à faibles ressources, en insistant sur les particularités inhérentes à la programmation de systèmes embarqués.
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...OCTO Technology
Par Nicolas Bordier (Consultant numérique responsable @OCTO Technology) et Alaric Rougnon-Glasson (Sustainable Tech Consultant @OCTO Technology)
Sur un exemple très concret d’audit d’éco-conception de l’outil de bilan carbone C’Bilan développé par ICDC (Caisse des dépôts et consignations) nous allons expliquer en quoi l’ACV (analyse de cycle de vie) a été déterminante pour identifier les pistes d’actions pour réduire jusqu'à 82% de l’empreinte environnementale du service.
Vidéo Youtube : https://www.youtube.com/watch?v=7R8oL2P_DkU
Compte-rendu :
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Laurent Speyser
(Conférence dessinée)
Vous êtes certainement à l’origine, ou impliqué, dans un changement au sein de votre organisation. Et peut être que cela ne se passe pas aussi bien qu’attendu…
Depuis plusieurs années, je fais régulièrement le constat de l’échec de l’adoption de l’Agilité, et plus globalement de grands changements, dans les organisations. Je vais tenter de vous expliquer pourquoi ils suscitent peu d'adhésion, peu d’engagement, et ils ne tiennent pas dans le temps.
Heureusement, il existe un autre chemin. Pour l'emprunter il s'agira de cultiver l'invitation, l'intelligence collective , la mécanique des jeux, les rites de passages, .... afin que l'agilité prenne racine.
Vous repartirez de cette conférence en ayant pris du recul sur le changement tel qu‘il est généralement opéré aujourd’hui, et en ayant découvert (ou redécouvert) le seul guide valable à suivre, à mon sens, pour un changement authentique, durable, et respectueux des individus! Et en bonus, 2 ou 3 trucs pratiques!
L'IA connaît une croissance rapide et son intégration dans le domaine éducatif soulève de nombreuses questions. Aujourd'hui, nous explorerons comment les étudiants utilisent l'IA, les perceptions des enseignants à ce sujet, et les mesures possibles pour encadrer ces usages.
Constat Actuel
L'IA est de plus en plus présente dans notre quotidien, y compris dans l'éducation. Certaines universités, comme Science Po en janvier 2023, ont interdit l'utilisation de l'IA, tandis que d'autres, comme l'Université de Prague, la considèrent comme du plagiat. Cette diversité de positions souligne la nécessité urgente d'une réponse institutionnelle pour encadrer ces usages et prévenir les risques de triche et de plagiat.
Enquête Nationale
Pour mieux comprendre ces dynamiques, une enquête nationale intitulée "L'IA dans l'enseignement" a été réalisée. Les auteurs de cette enquête sont Le Sphynx (sondage) et Compilatio (fraude académique). Elle a été diffusée dans les universités de Lyon et d'Aix-Marseille entre le 21 juin et le 15 août 2023, touchant 1242 enseignants et 4443 étudiants. Les questionnaires, conçus pour étudier les usages de l'IA et les représentations de ces usages, abordaient des thèmes comme les craintes, les opportunités et l'acceptabilité.
Résultats de l'Enquête
Les résultats montrent que 55 % des étudiants utilisent l'IA de manière occasionnelle ou fréquente, contre 34 % des enseignants. Cependant, 88 % des enseignants pensent que leurs étudiants utilisent l'IA, ce qui pourrait indiquer une surestimation des usages. Les usages identifiés incluent la recherche d'informations et la rédaction de textes, bien que ces réponses ne puissent pas être cumulées dans les choix proposés.
Analyse Critique
Une analyse plus approfondie révèle que les enseignants peinent à percevoir les bénéfices de l'IA pour l'apprentissage, contrairement aux étudiants. La question de savoir si l'IA améliore les notes sans développer les compétences reste débattue. Est-ce un dopage académique ou une opportunité pour un apprentissage plus efficace ?
Acceptabilité et Éthique
L'enquête révèle que beaucoup d'étudiants jugent acceptable d'utiliser l'IA pour rédiger leurs devoirs, et même un quart des enseignants partagent cet avis. Cela pose des questions éthiques cruciales : copier-coller est-il tricher ? Utiliser l'IA sous supervision ou pour des traductions est-il acceptable ? La réponse n'est pas simple et nécessite un débat ouvert.
Propositions et Solutions
Pour encadrer ces usages, plusieurs solutions sont proposées. Plutôt que d'interdire l'IA, il est suggéré de fixer des règles pour une utilisation responsable. Des innovations pédagogiques peuvent également être explorées, comme la création de situations de concurrence professionnelle ou l'utilisation de détecteurs d'IA.
Conclusion
En conclusion, bien que l'étude présente des limites, elle souligne un besoin urgent de régulation. Une charte institutionnelle pourrait fournir un cadre pour une utilisation éthique.
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...Horgix
This is the slide deck of a talk by Alexis "Horgix" Chotard and Laurentiu Capatina presented at the MongoDB Paris User Group in June 2024 about the feedback on how PayFit move away from a monolithic hell of a self-hosted MongoDB cluster to managed alternatives. Pitch below.
March 15, 2023, 6:59 AM: a MongoDB cluster collapses. Tough luck, this cluster contains 95% of user data and is absolutely vital for even minimal operation of our application. To worsen matters, this cluster is 7 years behind on versions, is not scalable, and barely observable. Furthermore, even the data model would quickly raise eyebrows: applications communicating with each other by reading/writing in the same MongoDB documents, documents reaching the maximum limit of 16MiB with hundreds of levels of nesting, and so forth. The incident will last several days and result in the loss of many users. We've seen better scenarios.
Let's explore how PayFit found itself in this hellish situation and, more importantly, how we managed to overcome it!
On the agenda: technical stabilization, untangling data models, breaking apart a Single Point of Failure (SPOF) into several elements with a more restricted blast radius, transitioning to managed services, improving internal accesses, regaining control over risky operations, and ultimately, approaching a technical migration when it impacts all development teams.
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
Formation stm32
1. objectifs
• Comprendre le fonctionnement d’un microcontrôleur
• Savoir manipuler les entrées / sorties
• Maitriser les fonctions d'entrée sortie de stm32f4-discovery
• Réaliser un circuit électronique programmé
• Développer un programme sur IAR embedded workbench
1
2. Plan
1.Introduction aux microcontrôleurs.
2.Le monde des applications basées sur un microcontrôleur.
3.Familles de microcontrôleurs .
4.Les Outils de développement.
5.Création d’un nouveau projet.
6.Configuration du projet.
2
3. 1.1 Qu'est-ce qu'un microcontrôleur ? (1/2)
Un microcontrôleur
Introduction aux microcontrôleurs
= + +
périphériques d'entrée
sortie
Mémoire microprocesseur
Gravé sur la même puce
Bus de communication
3
4. 1. Qu'est-ce qu'un microcontrôleur ? (2/2)Introduction aux microcontrôleurs
Architecture de baseMicrocontrôleur
4
5. 1.2 Caractéristique d’un microcontrôleurIntroduction aux microcontrôleurs
• Faible consommation
• Bas coûts
• Dimension réduite
• Mémoire de taille limitée
• Faible vitesse de fonctionnement.
5
7. 1.5 Programmation de microcontrôleurIntroduction aux microcontrôleurs
Ordinateur
Programmateur: interface de
programmation et du débogage
Microcontrôleur
Fichier binaire ou hexadécimal
contenue des registres
7
8. 2.1 Domaine d’automobile
2. Le monde des applications basées sur un
microcontrôleur
Ordinateur de bord des voitures
• Calcule de vitesse
• Mesure de température
• Contrôle des medias
8
9. KUKA robot: robots utiliser pour l’assemblage des voituresNAO ROBOT
2.2 ROBOTIQUE
2. Le monde des applications basées sur un
microcontrôleur
9
10. La domotique est l’ensemble des techniques de l'électronique, de physique du bâtiment,
d'automatisme, de l'informatique et des télécommunications utilisées dans les bâtiments
• pilotage des volets, portes,
lampes via un smart phone
• Régulation automatique de
température
• Détection des fuites d’eau et
coupures électriques
2.3 DOMOTIQUE
2. Le monde des applications basées sur un
microcontrôleur
10
11. 2. Le monde des applications basées sur un microcontrôleur
Est ce que tous ces systèmes utilisent la même
famille de microcontrôleur ?
11
14. 3. Familles de microcontrôleurs 3.2 La famille stm32f4 STM32f407vg
14
15. Fabricant STMicroelectronics
Largeur du bus de données 32 bit
Fréquence de l'horloge max 168 MHZ
Taille de la mémoire du programme 1 MB
Taille de la RAM de données 192 KB
Cœur ARM Cortex M4
Tension d'alimentation de
fonctionnement
1.8 V to 3.6 V
Température de fonctionnement max + 85 C
Type de Ram de données SRAM
Type d'interface CAN, I2C, I2S, SPI, UART
Température de fonctionnement min - 40 C
Nombre d'E/S 82 I/O
Type de la mémoire programme Flash
Caractéristique du microcontrôleur stm32f407vg
3. Familles de microcontrôleurs 3.2 La famille stm32f4 STM32f407vg
15
17. 3. Familles de microcontrôleurs
51/82/114/140 I/Os
USB 2.0 OTG
FS/HS
Encryption**
Camera Interface
3x 12-bit ADC
24 channels / 2Msps
3x I2C
Up to 16 Ext. ITs
Temp Sensor
2x6x 16-bit PWM
Synchronized AC Timer
2x Watchdog
(independent & window)
5x 16-bit Timer
XTAL oscillators
32KHz + 8~25MHz
Power Supply
Reg 1.2V
POR/PDR/PVD
2x DAC + 2 Timers
2 x USART/LIN
1 x SPI
1 x Systic Timer
PLL
Clock Control
RTC / AWU
4KB backup RAM
Ethernet MAC
10/100, IEEE1588
USB 2.0 OTG FS
4x USART/LIN
1x SDIO
Int. RC oscillators
32KHz + 16MHz
3 x 16bit Timer
2x 32-bit Timer
2x CAN 2.0B
2 x SPI / I2S
STM32F4xx Block Diagram
ARM®32-bitmulti-AHBbusmatrix
Arbiter(max150MHz)
FlashI/F
CORTEX-M4
CPU + FPU +
MPU
168 MHz
128KB SRAM
JTAG/SW Debug
DMA
16 Channels
Nested vect IT Ctrl
Bridge
Bridge APB1 (max 42MHz)
ETM
512kB- 1MB
Flash Memory
External Memory
Interface
AHB1
(max 168MHz)
AHB2 (max 168MHz)
APB2(max84MHz)
D-bus
I-bus
S-bus
3.2 La famille stm32f4 STM32f407vg
17
18. 3. Familles de microcontrôleurs
• AMBA: Advanced Microcontroller Bus Architecture
• AHB: Advanced High-performance Bus AHB1 & AHB2 (168MHz)
• APB: Advanced Peripheral Bus AP1 ( 42MHz) & AP2 (84MHz)
system Bus : ARM On-Chip
3.2 La famille stm32f4 STM32f407vg
18
19. 3. Familles de microcontrôleurs
NVIC:
Nested
Vectored
Interrupt
Controller
Contrôleur des interruptions
EXTI:
EXTernal
Interrupt
Cœur du
processeur
cortex M4
Périphérique:
ADC
DMA
UART
SPI
I2C
I2S
TIM
USB
DAC
3.2 La famille stm32f4 STM32f407vg
EXTI0EXTI15
20. 3. Familles de microcontrôleurs
51/82/114/140 I/Os
USB 2.0 OTG FS/HS
Encryption**
Camera Interface
3x 12-bit ADC
24 channels / 2Msps
3x I2C
Up to 16 Ext. ITs
Temp Sensor
2x6x 16-bit PWM
Synchronized AC Timer
2x Watchdog
(independent & window)
5x 16-bit Timer
XTAL oscillators
32KHz + 8~25MHz
Power Supply
Reg 1.2V
POR/PDR/PVD
2x DAC + 2 Timers
2 x USART/LIN
1 x SPI
1 x Systic Timer
PLL
Clock Control
RTC / AWU
4KB backup RAM
Ethernet MAC 10/100,
IEEE1588
USB 2.0 OTG FS
4x USART/LIN
1x SDIO
Int. RC oscillators
32KHz + 16MHz
3 x 16bit Timer
2x 32-bit Timer
2x CAN 2.0B
2 x SPI / I2S
ARM®32-bitmulti-AHBbusmatrix
Arbiter(max150MHz)
FlashI/F
CORTEX-M4
CPU + FPU +
MPU
168 MHz
128KB SRAM
JTAG/SW Debug
DMA
16 Channels
Nested vect IT Ctrl
Bridge
Bridge APB1 (max 42MHz)
ETM
512kB- 1MB
Flash Memory
External Memory
Interface
AHB1
(max 168MHz)
AHB2 (max 168MHz)
APB2(max84MHz)
D-bus
I-bus
S-bus
Up to 15 communication interfaces
– Up to 3 × I2C interfaces
– Up to 4 USARTs/2 UARTs
– Up to 3 SPIs (37.5 Mbits/s),
– 2 × CAN interfaces (2.0B Active)
– SDIO interface
■ Advanced connectivity
– USB 2.0 full-speed device
– USB 2.0 high-speed/full-speed
device
– 10/100 Ethernet MAC
■ 8- to 14-bit parallel camera interface up to
54 Mbytes/s
Périphérique de communication:
3.2 La famille stm32f4 STM32f407vg
20
21. STM32f4-discovery
programmateur st link v2
STM32f407VGt6
Périphérique extérieur aux µC:
• Microphone
• DAC audio
• Accéléromètre
• Bouton (user/reset)
• USB OTG
3. Familles de microcontrôleurs 3.2 La famille stm32f4 La carte STM32F4-discovery
21
22. programmateur st link v2 jumper connection
3. Familles de microcontrôleurs 3.2 La famille stm32f4 La carte STM32F4-discovery
22
23. 4.1 environnement matérielle
• Matériel de base:
• PC Windows (XP, vista,7 ,8, 10)
• câble USB type A to Mini-B
• matériel supplémentaire:
• câble USB type A to Micro-B
• Casque avec connecteur jack mâle
4. Les Outils de développement
23
24. 4. Les Outils de développement 4.2 Environnement logiciel
IAR Embedded Workbench
4.2.1 Vue d’ensemble
Atollic True studio
Keil µvision 5 24
25. 4. Les Outils de développement 4.2.1 Environnement logiciel IAR embedded workbench
Workspace
window
build window
file
window
4.2 Environnement logiciel
Code bien
compilé
Débogage
Compilation
Breakpoint
25
26. 5. Structure de projet
Embedded Workbench ARM:
Contient les fichiers driver du processor de microcontrôleur
4. Création d’un nouveau projet 4.3 structure de projet(1/4)
26
27. STM32f4-discovery:
Contient les fichiers driver de périphérique externe au microcontrôleur
stm32f407vg:
• Stm32f4_discover.c :
contient les fonctions driver de manipulation des LED et des buttons
• stm32f4_discovery_audio_codec.c:
contient les fonctions driver de manipulation du codeur audio
• stm32f4_discovery_lis302dl.c:
contient les fonctions driver de manipulation de l’accéléromètre
4. Création d’un nouveau projet 4.3 structure de projet(2/4)
27
29. User:
Contient les fichiers de l’application
• Main.c: contient le code de l’application
• Stm32f4xx_it.c: contient le code a exécuté lors d’une interruption.
• System_stm32f4xx.c: contient deux fonctions:
• SystemInit(): initialisation du l’horloge de système.
• SystemCoreClockUpdate():mise à jour de fréquence d’horloge de
microcontrôleur.
4. Création d’un nouveau projet 4.3 structure de projet(4/4)
29
30. Etape 1: Création du nouveau projet en langage C.
Etape 2: Ajout des fichiers pilotes.
Etape 3: Configuration du projet.
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
30
31. 4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
Etape 1: Création du nouveau projet en langage C.
31
32. Projet simple en langage C qui implémente la fonction main
Etape 1: Création du nouveau projet en langage C.
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
32
33. Etape2: Ajout des fichiers pilotes.
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
33
34. Dossier 1: STM32f4-discovery
Contient les fichiers driver de microcontrôleur stm32f407vg:
• Driver du core ARM cortex m4
• driver des périphériques interne (GPIO, EXTI,…) au
microcontrôleur
Contient des exemples de projet
Contient les fichiers driver des périphériques de la carte stm32f4-
discovery
Etape2: Ajout des fichiers pilotes. (1/6)
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
34
35. Dossier 2: useful_stm32f4
Fichier de configuration d’appel des fichier driver des
périphériques interne au µc
Contient les fonctions du configuration des tâches à exécuter lors
d’une interruption
Contient les en-tête des fonction implémenter dans le fichier
stm32f4xx_it.c
Etape2: Ajout des fichiers pilotes (2/6)
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
35
36. Le 1ére groupe est « EWARM » : ce dossier va contenir les
Fichiers pilotes du processeur ARM. Dans notre exemple c’est le
processeur ARM-cortex M4.
• System_stm32f4xx.c: contient deux fonctions:
• SystemInit(): initialisation du l’horloge de système.
• SystemCoreClockUpdate():mise à jour de fréquence
d’horloge de microcontrôleur.
GroupedefichiersFichiersajouter
STM32F4-Discovery_FW_V1.1.0LibrariesCMSISSTSTM32F4xxSourceTemplatesiar
Etape2: Ajout des fichiers pilotes (3/6)
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
36
37. Le 2éme groupe est « STM32F4-discovery » : ce dossier va contenir les
Fichiers pilotes des périphérique de la carte stm32f4-discovery (les buttons,
DAC audio, les 4 LED, le microphone et accéléromètre).
GroupedefichiersFichiersajouter
STM32F4-Discovery_FW_V1.1.0UtilitiesSTM32F4-Discovery
Etape2: Ajout des fichiers pilotes (4/6)
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
37
38. Le 3éme groupe est « STM32F4xx_StdPeriph_Driver» : ce dossier va contenir
les Fichiers pilotes des périphériques internes au microcontrôleur(GPIO,
ADC, TIMEUR, EXTI …).
GroupedefichiersFichiersajouter
STM32F4-Discovery_FW_V1.1.0LibrariesSTM32F4xx_StdPeriph_Driversrc
Etape2: Ajout des fichiers pilotes (5/6)
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
38
39. Le 3éme groupe est « user» : ce dossier va contenir
les Fichiers d’implémentation de l’application.
GroupedefichiersFichiersajouter
STM32F4-Discovery_FW_V1.1.0LibrariesCMSISSTSTM32F4xxSourceTemplates
useful_files_STM32F4
NB: le fichier main doit être placer dans le dossier user
Etape2: Ajout des fichiers pilotes (6/6)
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
39
40. Etape3: configuration du projet.
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
40
41. Configuration du projet (1/4)
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
Choisir la référence du microcontrôleur
CMSIS:
Cortex
Microcontroleur
Software
Interface
Coucher la case « Use CMSIS»
41
42. Configuration du projet (2/3)
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
1. $PROJ_DIR$: variable signifie le dossier qui contient le projet.
contient la bibliothèque d’interruption.
2. STM32F4-Discovery_FW_V1.1.0LibrariesCMSISInclude
contient les bibliothèques de processeur cortex m4
3. STM32F4-Discovery_FW_V1.1.0LibrariesCMSISSTSTM32F4xxInclude
4. STM32F4-Discovery_FW_V1.1.0LibrariesSTM32F4xx_StdPeriph_Driverinc
contient les bibliothèques des périphériques de µC STM32F407vg
5. STM32F4-Discovery_FW_V1.1.0UtilitiesSTM32F4-Discovery
contient les bibliothèques des périphériques de la carte stm32f4-discovery.
• USE_STDPERIPH_DRIVER:
définir ce symbole pour facilité la manipulation des
périphériques.
• STM32F4xx:
définir ce symbole pour facilité la manipulation des
registre du processeur via des fonctions prés
préparer par ST. 42
43. Configuration du Link Configuration du Downlod:
1. Activer l’option « verify downlod ».
2. Activer l’option « use flash loder(s) ».
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
Configuration du projet (3/4)
43
44. Il faut activer le driver du programmateur st-link
Dans les options du débogueur.
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
Configuration du projet (4/4)
44
45. Création du nouveau projet terminée
Et voila notre environnement est prêt pour la programmation
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
45