INTRODUCTION AU DEVELOPPEMENT POUR PIC

Documents pareils
PIC EVAL Dev Board PIC18F97J60

La programmation des PIC en C. Les fonctions, les interruptions.

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Carte Relais GSM (Manuel Utilisateur)

MICROCONTROLEURS PIC PROGRAMMATION EN C. V. Chollet - cours-pic-13b - 09/12/2012 Page 1 sur 44

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

Conférence sur les microcontroleurs.

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Spécialité Professionnelle. Patrick Boulandet

Leçon 1 : Les principaux composants d un ordinateur

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

TER Licence 3 Electronique des Télécoms Transmission GSM

ANALYSE TRAMEs LIAISON SERIE

Traitement de données

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

IPBX 02 : TP MISE EN OEUVRE RTC ET TOIP. Ce sujet comporte 4 pages de texte suivi du corrigé

Cours d algorithmique pour la classe de 2nde

Conception Electronique (CEL) Prof. Maurizio Tognolini

Le cas «BOURSE» annexe

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

Le Logiciel de Facturation ultra simplifié spécial Auto-Entrepreneur

Débuter avec PsoC ou PsoC niveau 0

COMMUNICATION PC/MINITEL

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Introduction au langage C

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

1. PRESENTATION DU PROJET

Connexion sur REDLION G-308 avec le modem GSM GDW-11 pour envoi de SMS

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

COMMUNICATION ENTRE DEUX ORDINATEURS PAR LASER MODULE EN CODE MORSE OU BINAIRE.

Ecran programmable. Testez la différence grâce. à sa puissance, sa rapidité. et ses possibilités réseaux

Les liaisons SPI et I2C

Le cas «BOURSE» annexe

SCL LOGICIEL DE CONTROL

Configuration d'un GSM pour une transmission de données via une centrale de mesure de Campbell Scientific

Structure de base d un ordinateur

Annexe : La Programmation Informatique

I00 Éléments d architecture

NOTIONS DE RESEAUX INFORMATIQUES

Alarme intrusion filaire AEI HA zones

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Sélection du contrôleur

Éléments d'architecture des ordinateurs

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Bien commencer avec un LaunchPad MSP430G et un Breadboard

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

IV- Comment fonctionne un ordinateur?

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

Prototypage électronique

TP1 : Initiation à Java et Eclipse

Les structures. Chapitre 3

13/11/2009 DUT-MUX-0185 /V2.0

Travailler en réseau intranet à l'école

PROGRAMMATION D'UN MICROCONTRÔLEUR

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

Cours 1 : Qu est-ce que la programmation?

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

S LICENCE INFORMATIQUE Non Alt S Alt S S1 S2 S3 S4 SS5 S6 Parcours : S IL (Ingénierie Logicielle) SRI (Systèmes et Réseaux Informatiques)

DP 500/ DP 510 Appareils de mesure du point de rosée mobiles avec enregistreur

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

TP 1. Prise en main du langage Python

! analyse du fonctionnement

MT-703. Surveillance de niveau par sonde résistive TELEMETRIE PAR MODULE GSM CONFIGURATION ET UTILISATION

MIS 102 Initiation à l Informatique

sommaire Archives... Archiver votre messagerie... Les notes... Les règles de messagerie... Les calendriers partagés Les listes de diffusions...

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Installer des périphériques

Réalisation d un réseau de capteurs de température sans fil basé sur le protocole ZigBee

Cyber-base du Pays Martégal. Atelier «Découverte de l ordinateur»

ACTIVITÉ DE PROGRAMMATION

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Prise de diagnostic dans les sous-stations stations de traction

Securexam pour le programme CPA,CGA

Création de maquette web

INSTRUCTIONS D INSTALLATION SOUS WINDOWS 7 / WINDOWS VISTA / WINDOWS XP

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

GUIDE D UTILISATION DU TABLEAU BLANC INTERACTIF EBEAM EDGE

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Cours Programmation Système

Java Licence Professionnelle CISII,

TP1 : Initiation à Java et Eclipse

EVOLUTION 7.1 Déroulement DREAM INFO 1 Dossier 23 Ciel Gestion Commerciale.

La Carte d Identité Electronique

Guide de l utilisateur ArpentGIS-Trajet 1.2 ArpentGIS-Expert 1.4

Activité initiation Arduino

UTILISATION DE LA BORNE PAR LE CLIENT

Mini_guide_Isis_v6.doc le 10/02/2005 Page 1/15

CONFIGURATION ET UTILISATION

La mémoire. Un ordinateur. L'octet. Le bit

Architecture des ordinateurs Introduction à l informatique

Représentation d un entier en base b

Initiation. àl algorithmique et à la programmation. en C

Transcription:

INTRODUCTION AU DEVELOPPEMENT POUR PIC Ce document n est pas conçu pour être lu de façon linéaire. Il faut aussi utiliser les documents de présentation des PIC, les documents sur le langage d assemblage pour PIC, les documents sur le langage C. Les différentes parties de ce document sont développées ailleurs. 1) PROCÉDURES DE DÉVELOPPEMENT ET LANGAGE DE PROGRAMMATION Pour le développement d applications pour PIC, on a le choix entre plusieurs procédures de développement et plusieurs langages de programmation. 1.1) PROCÉDURES DE DÉVELOPPEMENT LES DIFFÉRENTES PROCÉDURES DE DÉVELOPPEMENT Le tableau ci-dessous présente les procédures de développement. L écriture du programme source est commune à toutes les procédures et n est pas mentionnée ci-dessous. Procédure de développement Simulation puis programmation d un PIC avec un programmateur puis insertion sur la maquette cible et essais finaux Programmation et déboguage in situ (ou in circuit) avec le PIC cible. Nécessite un module d interfaçage ICD ou autre. (ne fonctionne qu avec certains PICs) Utilisation d un émulateur puis programmation d un PIC avec un programmateur puis insertion sur la maquette cible et essais finaux Utilisation Pédagogique Pédagogique, professionnelle Professionnelle Avantage(s) Très faible coût de la partie matérielle nécessaire. On trouve sur Internet des schémas de programmateurs très faciles à réaliser et très bon marché. Ex : ICPROG. Déboguage dans les conditions réelles d utilisation. Les modules ICD peuvent être achetés tout faits ou réalisés soi-même. Faible coût et simplicité de réalisation du module ICD1. Possibilités de mise au point étendues Inconvénient(s) La simulation est moins pédagogique. Certains bogues difficilement décelables en simulation. Des choses non simulables (CAN, etc.). Possibilités de déboguage limitées (mais cependant suffisantes pour les applications pédagogiques et même beaucoup d applications professionnelles) Coût élevé d un émulateur. Plus grandes difficultés de mise en oeuvre avec les élèves. Solution préférée de l auteur de ces lignes : Programmation et déboguage in situ. ICD = In Circuit Debugging. Développement pour PIC / Philippe Morenton LT PE Martin Bourges 1

PROGRAMMATION ET DÉBOGUAGE IN SITU Le dessin ci-contre montre la mise en œuvre du développement avec programmation et déboguage in situ. Lorsque la mise au point est terminée, il suffit de modifier une option dans le logiciel puis de procéder à la programmation finale. PC + logiciels carte d'interface 5 fils, dont 2 pour l'alimentation et un pour la RàZ / prog carte cible (avec PIC disposant des possibilités ICD) RS232 ou USB ou // (port imprimante) selon solution retenue pour la carte interface Alimentation La carte cible fonctionne alors seule, sans l aide de la carte d interface et du PC + logiciel(s) associé(s). Cette solution peut s appliquer avec tous les langages de programmation décrits dans le paragraphe suivant, sauf la programmation graphique (pour l instant), à condition de choisir les bons logiciels. Elle ne mobilise que quelques ressources du PIC qui ne sont pas disponibles pour l application : 2 broches d entrées / sorties + quelques centaines de mots en mémoire programme. Il est même possible de récupérer les 2 broches d entrées / sorties dans l application finale en plaçant un double inverseur pour le fonctionnement normal ou la programmation / déboguage. Les PICs ayant des possibilités ICD sont très nombreux. Ce sont tous des PICs avec une mémoire programme de type Flash. Le distributeur Farnell en propose beaucoup. Remarque : un des PICs les plus «populaires», le PIC16F84 ne dispose pas des possibilités ICD. Pour un logiciel avec langage de programmation graphique, il existe une possibilité très proche du déboguage in situ, présentée plus loin. Dans ce cas, le PIC cible n a pas besoin d être prévu pour le mode ICD. Il suffit qu il supporte la programmation in situ (ICSP= In Circuit Serial Programming) et qu il possède au moins 2 timers car un est réservé pour le système de développement. 1.2) LANGAGES DE PROGRAMMATION Le tableau ci-dessous présente les langages de programmation pour le développement d applications sur PIC. utilisation Avantage(s) Inconvénient(s) Langage de développement Graphique (quelques parties sont à écrire avec une syntaxe proche du C (ou autre) Pédagogique Simplicité d utilisation. Apprentissage langage et prise en main rapide. Le logiciel MultiProg permet la programmation et l exécution contrôlée du programme in-situ (avec une carte d interfaçage très simple) Voir plus loin. Utilisation uniquement pour des applications assez simples. Programmation in-situ uniquement avec des cartes spécifiques (sauf pour MultiProg). Logiciels payants. Pas de possibilité de point d arrêt (pour l instant). Développement pour PIC / Philippe Morenton LT PE Martin Bourges 2

Langage de développement Langage d assemblage Langage C Basic Pascal utilisation Avantage(s) Inconvénient(s) Pédagogique, professionnelle Pédagogique, professionnelle Logiciels de développement gratuits. Programmation et déboguage in-situ possible avec une carte d interfaçage simple. Certains logiciels gratuits (avec des limitations sur la taille du code produit, etc). Programmation et déboguage in-situ possible avec une carte d interfaçage simple. Non abordé ici Non abordé ici Nécessite l apprentissage du langage d assemblage (assez rapide cependant) et des particularités du PIC (banques de mémoire, adressage). Lenteur de développement. Nécessite l apprentissage du langage C (assez long). Rapidité de développement (après apprentissage du langage). Solution préférée de l auteur de ces lignes : Langage graphique pour une première approche et pour des applications simples Langage C pour des applications plus compliquées (peut être réservé au seul professeur dans le cadre de préparation de TP ou de projet, etc.) Développement pour PIC / Philippe Morenton LT PE Martin Bourges 3

2) COMPARAISON RAPIDE DES DIFFÉRENTS TYPES DE DÉVELOPPEMENT La comparaison entre les différents types de développement s effectue avec un exemple très simple. 2.1) DÉVELOPPEMENT GRAPHIQUE Plusieurs logiciels permettent un développement graphique. 1 seul est présenté ici : Multi-prog. Ce logiciel est le seul qui permette la programmation et l exécution contrôlée du programme in situ sur n importe quelle carte cible équipée d un connecteur adéquat et d un PIC Flash supporté (programmation ICSP + au moins 2 timers). Il faut utiliser une carte d interface très simple qu on peut fabriquer pour un coût modique. Fenêtre utilisée pour la saisie et la mise au point (déboguage) Multiprog est aussi le seul logiciel qui permette des calculs sur des entiers de 16 bits ou 32 bits ou sur des réels en notation flottante. Pour cet exemple, le seul texte entré au clavier est le nom de l entrée BP1 et de la sortie LED1. Tout le reste a été effectué en cochant des options et en posant des éléments graphiques. Développement pour PIC / Philippe Morenton LT PE Martin Bourges 4

C est avec la même fenêtre que s effectue la programmation puis la mise au point (pas à pas avec observation des variables, défilement automatique). Le rectangle rouge entourant un des éléments de l algorigramme met en évidence la partie en train de s exécuter lors de la mise au point. Pour l observation des variables, une fenêtre supplémentaire s ouvre. Par rapport à un vrai déboguage in situ, il n est pas possible de changer les variables, d exécuter le programme en temps réel jusqu à un point d arrêt. DÉVELOPPEMENT EN LANGAGE C Plusieurs logiciels permettent un développement en langage C. On a retenu ici l association de 2 logiciels : L Environnement de Développement Intégré (EDI ou IDE en anglais) MPLAB gratuit qui permet la gestion de projet, la saisie du programme source, la simulation, la programmation et le déboguage avec différentes possibilités Le compilateur C CC5X dont il existe une version gratuite limitée, suffisante pour bien des applications pédagogiques. Ces logiciels permettent le déboguage in situ (ICD = In Circuit Debugging) avec une carte d interface qu on peut fabriquer pour un coût modique. La version MPLAB 5.5 a été retenue. Elle n est plus distribuée actuellement par Microchip. Elle permet l utilisation de la carte d interfaçage bon marché. Les dernières versions nécessitent une carte plus chère ou plus difficile à fabriquer si on souhaite la réaliser soi-même. Toutes les opérations s effectuent depuis l EDI MPLAB. Fenêtre du programme source en C utilisée pour la saisie et le déboguage Fenêtre d observation (et éventuellement de modification) des variables lors du déboguage Développement pour PIC / Philippe Morenton LT PE Martin Bourges 5

Remarque : Dans le cas d un développement graphique avec Mutli-prog, le fichier en langage C résultant de la traduction automatique est disponible avec l onglet Programme C. Il est bien entendu très proche du programme source précédent. Les lignes supplémentaires ne sont pas utiles dans notre cas très simple. Dans une application normale, elles sont nécessaires. #pragma chip PIC16F877 #include <int16cxx.h> //Définition des sorties #pragma bit LED1 @ PORTD.0 //Définition des entrées #pragma bit BP1 @ PORTB.1 void init(void) { TRISA=0x3F; PORTA=0x00; TRISB=0x7F; PORTB=0x00; TRISC=0xFF; PORTC=0x00; TRISD=0xFE; PORTD=0x00; TRISE=0x07; PORTE=0x00; GIE = 1; PEIE = 1; RBIE = 0; T0IF = 0; T0IE = 0; INTE = 0; ADCON1=0x06; } Le programme principal généré est quasiment le même La configuration de tous les ports est générée et pas uniquement les ports utilisés. Les bits pour la configuration des interruptions sont aussi générés. Ici aucune interruption n est autorisée. //Programme Principal void main(void) { init(); } while ((1)) { if (((BP1==1))) { LED1=1; } else { LED1=0; }; } DÉVELOPPEMENT EN LANGAGE D ASSEMBLAGE Plusieurs logiciels permettent un développement en langage C. On a retenu ici MPLAB (gratuit) qui permet de réaliser toutes les opérations nécessaires : gestion de projet, saisie du programme source, simulation, programmation et déboguage avec différentes possibilités. MPLAB permet le déboguage in situ (ICD = In Circuit Debugging) avec une carte d interface qu on peut fabriquer pour un coût modique. Développement pour PIC / Philippe Morenton LT PE Martin Bourges 6

Fenêtre d observation (et éventuellement de modification) des variables lors du déboguage Fenêtre du programme source en langage d assemblage utilisée pour la saisie et le déboguage Remarque : Dans le cas d un développement graphique avec Mutli-prog ou d un développement en langage C, le fichier en langage d assemblage est automatiquement généré. Un fichier de listage avec le programme source en langage C et sa traduction en langage d assemblage peut être édité. 3) LE MATÉRIEL NÉCESSAIRE POUR DÉVELOPPER UNE APPLICATION On ne s intéresse ici qu à la programmation et au déboguage in situ (mode ICD) ou à l exécution contrôlée du programme avec Multiprog. 3.1) CARTE AVEC PIC CIBLE La carte avec le PIC cible peut être une maquette pédagogique ou une carte quelconque, pourvu qu elle soit équipée avec un connecteur spécifique permettant de connecter le module d interfaçage. Ce connecteur est le même pour les différents modules décrits. Un document fourni décrit le brochage du connecteur à utiliser et les connexions avec le PIC cible. Développement pour PIC / Philippe Morenton LT PE Martin Bourges 7

EXEMPLE DE MAQUETTE PÉDAGOGIQUE Cette maquette dispose notamment de : 8 micro-interrupteurs 8 LEDs E/S logiques et analogiques sur borniers E/S sur connecteur d extension HE10 1 liaison série RS232 null modem etc. Tous les documents nécessaires à la fabrication sont fournis (fichiers source au format OrCAD). Un document décrit précisément la maquette. 3.2) CARTE D INTERFAÇAGE PC / CARTE AVEC PIC CIBLE Il existe plusieurs cartes d interfaçages selon le type de développement. CARTE POUR MUTLI-PROG (DÉVELOPPEMENT GRAPHIQUE) Multi-prog peut utiliser 2 types de cartes : une carte qui se connecte sur le port // d un PC ou une carte qui se connecte sur le port USB. La carte // n emploie que des composants usuels, sauf un convertisseur continu/continu 5V 12V pour générer la tension nécessaire à la programmation du PIC cible. La carte USB s appelle µcastor. Elle est vendue par Micrelec. Développement pour PIC / Philippe Morenton LT PE Martin Bourges 8

CARTES POUR DÉVELOPPEMENT EN LANGAGE C OU EN LANGAGE D ASSEMBLAGE Microchip, le fabricant des PICs, a développé 2 cartes qui permettent un interfaçage direct avec MPLAB. ICD ICD2 Modèle Communication avec le PC Liaison série USB / liaison série 16F87x PICs supportés Nombreux PICs dont les 16F87x. Certains PICs doivent être en version ICD pour être utilisables avec l ICD2. Version de MPLAB 5.x uniquement 6 et 7 uniquement Prix module Microchip Plus disponible 136 euros HT Copie disponible / coût composants Oui / 30 euros Oui / 50-60 euros. 1 CI CMS haute densité. On voit ci-contre le module ICD2 conçu par Microchip. Seules les copies sont brièvement décrites cidessous. ICD1 La version conçue par Patrick Touzet fonctionne très bien. Tous les documents sont fournis sur son site internet et disponibles sur le CDROM. Circuit imprimé en simple face avec seulement quelques straps. http://www.chez.com/silicium31/electronique/pic/free_ icd.htm Développement pour PIC / Philippe Morenton LT PE Martin Bourges 9

ICD2 Il existe plusieurs versions pour les copies. Voici les photos de la version de Patrick Touzet. Côté composants Côté soudures et CMS Le circuit imprimé est simple face et il n y a qu un seul strap! Tous les documents sont fournis sur son site internet http://www.chez.com/silicium31/electronique/pic/free_icd.htm et sur le CDROM. Développement pour PIC / Philippe Morenton LT PE Martin Bourges 10