{{tag>programmation BROUILLON}} ---- ====== PICkit2 ====== Le PICKit 2 est un programmateur de PIC de chez [[http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en023805|Microchip]]. Ce tutoriel traite de la façon d'utiliser et de programmer avec un controleur 16f88. ===== Pk2cmd : le programme de communication ===== Pk2cmd est un programme open source pour communiquer avec le PICkit2. Il est disponible sur le site internet de Microchip à la page [[http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en023805]] Le lien de téléchargement direct pour le noyau 2.6 et plus est [[http://ww1.microchip.com/downloads/en/DeviceDoc/pk2cmdv1-20Linux2-6.tar.gz]] ==== Installation à partir du code source ==== Les sources étant disponibles depuis le site de Microchip, nous allons les télécharger, les compiler, puis les installer.\\ Dans un [[:terminal]] saisissez: sudo apt-get install libusb-dev wget http://ww1.microchip.com/downloads/en/DeviceDoc/pk2cmdv1.20LinuxMacSource.tar.gz tar xvf pk2cmdv1.20LinuxMacSource.tar.gz cd pk2cmdv1.20LinuxMacSource make linux sudo make install J'ai tester sur une 16.04 sa fonctionne bien même tester sur une configuration ARM en processeur (raspberry pi) ==== Utilisation ==== Branchez le PICkit2 sur le port USB pour tester s'il est bien détecté. pk2cmd -P Auto-Detect: Found part PIC16F88. Operation Succeeded Quelques commandes utiles : Activer le courant : pk2cmd -PPIC16F88 -T Couper le courant: pk2cmd -PPIC16F88 -A0 Programmer le PIC avec le fichier program..hex: pk2cmd -PPIC16F88 -M -Fprogram.hex ===== Dwarf : une interface graphique pour pk2cmd ===== Pour ceux qui n'aiment pas les lignes de commande, le site du projet est ici :[[http://tuxtronics.com/node/1]] Il suffit de décompresser l'archive **dwarf.tgz** dans le dossier de votre choix, et de lancer le script nommé **dwarf**. Sur 16.04 penser à rendre éxécutable le script et le lancer dans une console ouverte dans le dossier "dwarf master" utilisateur@pc~ ./dwarf ===== Gpasm : le compilateur pour PIC ===== Gpasm est un compilateur pour générer du code pour notre PIC. Il prend en entrée un fichier assembleur et produit du code machine.\\ [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>gputils|gputils]]** ===== Premier Code ===== Écrivons notre premier programme. [[:tutoriel:comment_modifier_un_fichier|Créez un fichier]] **//hello.asm//** contenant: #include ; fichier include (définition controleur) ;La directive CONFIG sert à mettre en fonction des fusibles de fonction __CONFIG _CONFIG1, _CP_OFF & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_ON & _MCLR_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_IO __CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF ;la directive CBLOCK sert à donner le point de départ des variables (RAM) CBLOCK 0x20 ;Début de la zone (0x20 à 0x6F) Delay1 ;Déclaration variable Delay1 dans banque 0 Delay2 ENDC ;Fin de la zone ORG 0 ;la directive ORG adresse de démarrage du code (ROM) bsf STATUS,RP0 ;sélection banque 1 bcf TRISB,3 ;bit 3 de TRISB = 0 movlw b'01100010' ;charge la valeur binaire dans W movwf OSCCON ;écrit la valeur dans registre OSCCON (horloge interne = 4Mhz) bcf STATUS,RP0 ;retour en banque 0 boucle ;étiquette ou label bsf PORTB,3 ;bit 3 de PORTB = 1 call delay ;appel sous routine delay bcf PORTB,3 ;bit 3 de PORTB = 0 call delay goto boucle ;saut à boucle delay decfsz Delay1,f ;Dés-incrémente et saut si égal à 0 de Delay1 dans Delay1 goto delay ;Tant que delay1 n'est pas égal à 0 on boucle decfsz Delay2,f goto delay end Compilez : gpasm hello.asm -p p16f88 Programmer le 16f88 : pk2cmd -P PIC16F88 -M -F hello.hex Lancez le programme en activant l'alimentation: pk2cmd -P PIC16F88 -T Si tout se passe correctement la LED câblée sur le PORTB 3 clignote. pk2cmd -P PIC16F88 -A0 Avec cette commande on coupe alimentation du contrôleur. On utilise le contrôleur sur une bread board avec le câblage ci dessous: ===== Voir aussi ===== * [[piklab]] * [[conception_electronique]] ---- //Contributeurs: FIXME //