Topic outline
SYSTEMES EMBARQUES
LIVE SESSION 1 (main) : https://bbb.ensicaen.fr/b/des-f7n-pka
LIVE SESSION 2 : https://bbb.ensicaen.fr/b/des-kum-wwx
LIVE SESSION 3 : https://bbb.ensicaen.fr/b/des-et9-47e
L'objectif de cet enseignement est de réaliser un premier pas vers le vaste domaine des Systèmes Embarqués. Nous découvrirons les mécanismes de fonctionnement de tout processeur numérique à CPU (Central Processing Unit) ainsi que des méthodologies de développement d'applications et de bibliothèques pilotes sur processeur MCU (Micro Controller Unit ou microcontrôleur). Ces processeurs sont généralement dédiés à la supervision des systèmes et procédés physiques imposants de fortes contraintes (coût, encombrement, poids, consommation, etc). Cette famille de processeur est de loin la plus fabriquée et utilisée à notre époque dans des systèmes électroniques avec plus de 25 milliards de MCU livrés en 2020 (source IC Insigths)
PROGRAMME
- Introduction aux Systèmes Embarqués
- Découverte du fonctionnement d'un processeur numérique et de la famille des MCU
- Découverte de l'architecture matérielle MCU 8bits PIC18 de Microchip (CPU, mémoires, interruptions, périphériques, etc)
- Découverte de l'assembleur PIC18 et traductions de programmes C vers ASM
- Développement d'une application embarquée (workflow, bibliothèques drivers et scheduling) et off-line scheduling
- Introduction aux bus de communication pour PCB (I2C, SPI, UART, etc)
- Livret pédagogique :
RESSOURCES PEDAGOGIQUES
SOLUTIONS DES TRAVAUX PRATIQUES
OUTILS DE DEVELOPPEMENT
SYNTHÈSE DES OUTILS A INSTALLER
IDE (Integrated Development Environment) MPLABX v5.50 : https://www.microchip.com/development-tools/pic-and-dspic-downloads-archive
Toolchain C XC8 v1.45 (Free Mode) : https://www.microchip.com/development-tools/pic-and-dspic-downloads-archive
Terminal asynchrone de communication TeraTerm (dernière version) : https://ttssh2.osdn.jp/index.html.en
Drivers VCP (Virtual COM Port) pour chip USB to UART de FTDI (dernière version) : http://www.ftdichip.com/Drivers/VCP.htm
- ScanaStudio pour les sondes logiques SQ50 et SQ100 de IKALOGIC (dernière version) : https://ikalogic.com/scanastudio/
Simulateur PICSimLab pour Windows 64bits : https://foad.ensicaen.fr/mod/resource/view.php?id=24874
Emulateur Null Modem com0com (dernière version) : https://sourceforge.net/projects/com0com/files/com0com/3.0.0.0/com0com-3.0.0.0-i386-and-x64-signed.zip/download
GUIDE D'INSTALLATION ET DE VALIDATION DES OUTILS
SIMULATEUR PICSIMLAB
PICSimLab est un simulateur Open Source développé par Luis Claudio Gambôa Lopes ( https://lcgamboa.github.io/ ), un professeur d'université au Brésil. PICSimLab intègre notamment un debugger MPLABX et est apte à exécuter sur carte électronique virtuelle des fichiers binaires exécutables au format .hex générés depuis l'IDE MPLABX. Télécharger l'archive picsimlab_win64.zip (Windows 64bits) ci-dessous et lire le guide d'installation des outils présent dans la section OUTILS DE DEVELOPPEMENT. Voici les noms des élèves ENSICAEN ayant travaillé sur le projet PICSimLab afin de l'adapter aux besoins de l'école (~600-700h de travail) : Mohammed El-Khadraouy en 2020 (stage 2A SATE), Lacina Berthe en 2020 (stage 1A ELEC), Hassan Kanso, Valentin Kauffmann et Mounir Abdessamade en 2021 (projet 3A ELEC FISA)
TELECHARGER PICSIMLAB ET COM0COM
ACCES AU MATERIEL HORS SEANCE
Nous vous proposons un accès libre au matériel de TP en salle A201 durant le semestre. L'accès se fera par digicode avec le code suivant (photo en haut à gauche) : CARRE A 2 0 1 TRIANGLE. Nous vous demandons s'il vous plaît de lire les recommandations ci-dessous une fois et si possible de les respecter pour nous aider Dimitri et moi-même qui avons cette salle en gestion. Normalement, le confort de travail dans cette salle a été soigné et nous ne pouvons le maintenir sereinement que grâce à votre aide ! Merci par avance ...
SALLE A201
- Rendre le poste de travail dans l'état présenté sur la photo ci-dessus (en haut à droite) :
- Éteindre l'ordinateur
- Pas de matériel (fil, carte, etc) qui traîne sur la table. A déposer sur le bureau enseignant si vous ne savez où ranger certain matériel restant !
- Chaises et tabouret rangés, table propre, emballages alimentaire à la poubelle, etc
- Éteindre l'ordinateur
- Rendre la boîte de rangement dans l'état présenté sur la photo ci-dessus (en bas à droite) :
- Cartes électronique sous film antistatique
- Câbles enroulés soigneusement
- Vérifier le contenu de la boîte. Nous prévenir Dimitri et moi si il manque du matériel (simple mail concis)
- Précautions durant vos développements :
- Ne pas toucher les composants électronique avec vos doigts (problèmes d'ESD - Décharge ElectroStatique)
- Tenir les cartes par la tranche. Manipuler les cartes hors tension
- Être vigilant à ne pas faire de court-circuit entre l'alimentation (+5V ou +3,3V) et la masse (GND) durant vos visualisations à l'oscilloscope ou autre appareil de mesure avec l'utilisation de pince ou sonde grippe-fil
PRÊT DE MATÉRIEL
Nous proposons également un service de prêt de matériel (cf. photo ci-dessus). Le prêt et le rendu de matériel se fera en passant par Damien GOULET, technicien en électronique travaillant au sein de la spécialité Génie Physique et Systèmes Embarqués. Voici ci-dessous les informations relatives à la procédure de prêt :- 16 kits sont disponibles en prêt (hors module Bluetooth - rupture de stock au niveau mondial)
- Prêt pendant 2 semaines. Rendre de vous même le matériel à Damien afin de lui éviter des relances énergivores ! Merci pour lui
- Prêt ou rendu possible de 10h à 17h chaque jour en salle A111
- Si Damien, n'est pas présent à son bureau. Ré-essayer plus tard. Après plusieurs tentatives, lui envoyer un mail pour prendre RDV : damien.goulet@ensicaen.fr
- Rendre le poste de travail dans l'état présenté sur la photo ci-dessus (en haut à droite) :
TP groupe 1
Encadrant : hugo descoubesLIVE SESSION 1 (main) : https://bbb.ensicaen.fr/b/des-f7n-pka
Pour déposer un devoir, il faut s'inscrire au cours :
Administration du cours-> s'inscrire dans le cours
TP groupe 2
Encadrant : Dimitri Boudier -> dimitri.boudier@ensicaen.fr à utiliser sans modération !Lien BBB pour les TP à distance ou en hybride : https://bbb.ensicaen.fr/b/bou-hcf-q76
(contactez-moi par e-mail si vous avez un problème de connexion).TP groupe 3
Encadrant : ... TODO[TP A DISTANCE] Salon BBB : ... TODO
Pour déposer un devoir, il faut s'inscrire au cours :
Administration du cours-> s'inscrire dans le cours
TP groupe 4
Encadrant : Arnaud MARTINPour déposer un devoir, il faut s'inscrire au cours :
Administration du cours-> s'inscrire dans le cours
VIDEOS
VIDÉOS DE COURS - 2022
- 20/01 (Présentation des ressources pédagogiques et définition d'un Systèmes Embarqués) - 30mn :
- 20/01 (De l'électricité, à l'électronique jusqu'à l'embarqué) - 55mn :
- 24/01 (Présentation des outils et démonstration sur carte physique puis simulateur) - 50mn :
https://bbb.ensicaen.fr/playback/presentation/2.0/playback.html?meetingId=16866f8a20edf60a5a007c4a5f655690f0afe1b9-1643021318908- 24/01 (Mots clés - programme d'assemblage) - 20mn :
- 26/01 (Mots clés - Assembleur, CPU, mémoire et périphériques) - 55mn :
- 26/01 (Technologies de mémoires - SRAM / DRAM / Flash, etc) - 50mn :
- 31/01 (Processeur Maison - Traduction C vers ASM - Conversion ASM vers Binaire - Exécution) - 80mn :
- 07/02 (Familles de processeurs, marché des MCU) - 90mn :
- 21/02 (Carte Curiosity HPC) - 1h :
- 21/02 (Architecture PIC18) - 30mn :
- 04/03 (Assembleur PIC18) - partie 1 - 55mn :
- 23/03 (Assembleur PIC18) - partie 2 (un bug réseau fait qu'il n'y a que la moitié de la vidéo) - 25mn :
- 23/03 (Interruptions) - 35mn :
VIDÉOS DE COURS - 2021
- 16/02 (Assembleur PIC18 - partie 1/3 - Démos de cours - Présentation) :
- 02/03 (Assembleur PIC18 - partie 2/3) :
- 03/03 (Assembleur PIC18 - partie 3/3) :
- 08/03 (Architecture PIC18 - partie 1/3 - CPU et étage d'exécution) :
- 10/03 (Architecture PIC18 - partie 2/3 - Mémoire et périphériques) :
VIDÉOS SUPPORTS DES TRAVAUX PRATIQUES - 2021
- 03/02 (My first MPLABX project from scratch) - 12mn :
- 14/04 (Périphérique UART en réception, etc) :
CHOISIR UN ORDINATEUR ?
Cette section cherche à aiguiller les étudiants souhaitant investir dans un nouvel Ordinateur Personnel ou PC. Attention, toutes les recommandations proposées ci-dessous visent à présenter une configuration "minimale" permettant d'offrir à un ingénieur développeur logiciel ou système un "confort de travail suffisant" dans un cadre professionnel (bureautique, édition et compilation logicielle, développement croisé en embarqué, etc). Ces conseils et avis ne sont donc pas adaptés à des besoins spécifiques tels que les jeux vidéos, la MAO audio ou vidéo, etc (système nécessitant potentiellement un co-processeur graphique GPU, de plus larges ressources en RAM, etc).
Pour information, les principaux goulots d'étranglement dans les performances des machines actuelles se trouvent dans les technologies de mémoires de stockage de l'information (SDRAM DDR4, SSD Flash NAND, HDD, etc) et les protocoles de communication associés (DDR4, DDR3, NVMe, SATA, etc).
Vous ne pourrez probablement pas tout avoir (sauf si vous avez un budget supérieur à 1500€), du coup chaque point est classé par ordre d'importance. La configuration minimale proposée ci-dessous correspond à une machine d'environ 600-700€ (étude réalisée en octobre 2021) :
- 16Go de mémoire vive RAM
- Pas moins de 8Go
- Si possible en DDR4 (technologie plus performante) sinon en DDR3
- Pas moins de 8Go
- 500Go de disque dur interne SSD
- Pas moins de 256Go en SSD interne (pour single boot Ubuntu ou Windows seulement)
- Attention, ne mettre sur le disque dur SSD
que le(s) système(s) (Ubuntu, distributions GNU\Linux, Windows, etc),
les applications et les données courantes (en cours de manipulation sur
la semaine ou le mois par exemple). Toutes les autres données
utilisateur (photos, vidéos, documents divers, etc) sur disque dur interne HDD ou média externe
- Si possible 500Go SSD interne et 1To-2To HDD interne
- Si possible privilégier le protocole NVMe (PCIe) plutôt que SATA pour le disque dur interne SSD
- Sinon 500Go SSD interne et 1To-2To sur disque dur HDD USB 3.0 externe
- Pas moins de 256Go en SSD interne (pour single boot Ubuntu ou Windows seulement)
- Processeur 2 coeurs (4 Threads) chez AMD ou Intel
- Si possible 4 coeurs (8 Threads) ou plus
- Interfaces extérieures
- Attention, privilégier
une machine avec suffisamment de connecteurs d'interface plutôt qu'un
modèle extra-plat nécessitant une solution d'extension de connectiques
sur un port unique de communication (USB-C, solution propriétaire, etc).
Ceci amène une forte dépendance, notamment en cas de panne, de support
partiel par le système, de bande passante ainsi qu'un manque de
praticité opérationnel à l'usage.
- 3 ports USB minimun (dont 2 en USB 3.0) pour accessoires externes (Webcam, souris, HDD externe, clé USB, etc) et développement en systèmes embarqués (carte développement, outils de communication, etc)
- 1 sortie vidéo HMDI (voire DisplayPort et/ou VGA) pour vidéo-projecteur en présentation et second écran potentiel
- 1 lecteur de carte SD
- 1 port RJ45 Ethernet
- WIFI et Bluetooth intégré
- Écran "suffisamment grand" pour le confort de travail
- Attention, privilégier
une machine avec suffisamment de connecteurs d'interface plutôt qu'un
modèle extra-plat nécessitant une solution d'extension de connectiques
sur un port unique de communication (USB-C, solution propriétaire, etc).
Ceci amène une forte dépendance, notamment en cas de panne, de support
partiel par le système, de bande passante ainsi qu'un manque de
praticité opérationnel à l'usage.
- Où chercher et comment chercher ?
- Recherche depuis internet par les sites Web puis par téléphone avec les revendeurs spécialisés avant de se déplacer
- Il existe des périodes de rupture, des nouveaux marchés pour les revendeurs, des fins de stock chez les fournisseurs et fabricants, etc ... et donc de grands écarts de prix sur des machines équivalentes durant certaines périodes d'une même année. Prendre contact directement avec les rayons des magasins pour connaître l'état actuel du marché, demander leur conseil et les périodes propices pour acheter !
- Les magasins autour de Caen (visiter les sites Web) : Darty à Mondeville et à Rots, Leclerc Espace Culturel à Ifs et à Bayeux, de façon générale les espaces numériques des centres commerciaux comme Carrefour/Cora/etc, Generation Net à Louvigny, Boulanger à Mondeville, FNAC à Caen, etc
- Sur internet : sites fabricants DELL/HP/etc, fournisseurs et revendeurs divers, etc
- Marché d'occasion sur internet : Leboncoin, Rakuten, Ebay, etc
Bonne recherche à vous ...- 16Go de mémoire vive RAM
INSTALLER UBUNTU !
QUELQUES VIDEOS INTERNET
https://www.youtube.com/channel/UCH6ppHEvV3_WIXEwmhv9HEg
Passionné en Électronique proposant des vidéos d'analyse de produits du marché ainsi que des analyses poussées de systèmes et circuits électronique :
- Nitendo Switch OLed : https://www.youtube.com/watch?v=jD9SRYIAXsQ
- Test COVID : https://www.youtube.com/watch?v=1nhg9wrcILY&t=616s
- Semi-Conducteurs : https://www.youtube.com/watch?v=gd8ctvNQCSs