Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| pickit2 [Le 17/05/2015, 12:30] 92.138.182.7 [Premier Code] | pickit2 [Le 30/12/2022, 18:04] (Version actuelle) 86.202.72.214 [Utilisation] | ||
|---|---|---|---|
| Ligne 3: | Ligne 3: | ||
| ====== PICkit2 ====== | ====== 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 la carte de développement PICkit™ 2 Starter Kit. | + | 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 : le programme de communication ===== | ||
| Ligne 24: | Ligne 24: | ||
| sudo make install | sudo make install | ||
| </code> | </code> | ||
| - | J'ai tester sur une 14.04 sa fonctionne bien même tester sur une configuration ARM en processeur | + | J'ai tester sur une 16.04 sa fonctionne bien même tester sur une configuration ARM en processeur (raspberry pi) | 
| ==== Utilisation ==== | ==== Utilisation ==== | ||
| Branchez le PICkit2 sur le port USB pour tester s'il est bien détecté. | Branchez le PICkit2 sur le port USB pour tester s'il est bien détecté. | ||
| <code>pk2cmd -P | <code>pk2cmd -P | ||
| - | Auto-Detect: Found part PIC16F690. | + | Auto-Detect: Found part PIC16F88. | 
| Operation Succeeded | Operation Succeeded | ||
| </code> | </code> | ||
| + | |||
| + | <note tip>Si vous obtenez le message d'erreur suivant : | ||
| + | <code>PK2DeviceFile.dat device file not found.</code> | ||
| + | il peut être nécessaire de copier le fichier PK2DeviceFile.dat vers le dossier ou se trouve l'executable pk2cmd : | ||
| + | <code>sudo cp /usr/share/pk2/PK2DeviceFile.dat /usr/local/bin</code> | ||
| + | </note> | ||
| + | |||
| Quelques commandes utiles : | Quelques commandes utiles : | ||
| Activer le courant : | Activer le courant : | ||
| - | <code>pk2cmd -PPIC16F690 -T</code> | + | <code>pk2cmd -PPIC16F88 -T</code> | 
| Couper le courant: | Couper le courant: | ||
| - | <code>pk2cmd -PPIC16F690 -A0</code> | + | <code>pk2cmd -PPIC16F88 -A0</code> | 
| Programmer le PIC avec le fichier program..hex: | Programmer le PIC avec le fichier program..hex: | ||
| - | <code>pk2cmd -PPIC16F690 -M -Fprogram.hex</code> | + | <code>pk2cmd -PPIC16F88 -M -Fprogram.hex</code> | 
| ===== Dwarf : une interface graphique pour pk2cmd ===== | ===== Dwarf : une interface graphique pour pk2cmd ===== | ||
| Ligne 44: | Ligne 51: | ||
| Il suffit de décompresser l'archive **dwarf.tgz** dans le dossier de votre choix, et de lancer le script nommé **dwarf**. | 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" | ||
| + | <code> | ||
| + | utilisateur@pc~ ./dwarf | ||
| + | </code> | ||
| ===== Gpasm : le compilateur pour PIC ===== | ===== 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.\\ | 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.\\ | ||
| Ligne 53: | Ligne 63: | ||
| [[:tutoriel:comment_modifier_un_fichier|Créez un fichier]] **//hello.asm//** contenant: | [[:tutoriel:comment_modifier_un_fichier|Créez un fichier]] **//hello.asm//** contenant: | ||
| <code> | <code> | ||
| - | #include p16f690.inc | + | #include <p16f88.inc> ; fichier include (définition controleur) | 
| - | __config _INTRC_OSC_NOCLKOUT & _WDT_ON & _MCLRE_OFF & _CP_OFF | + | |
| - | org 0 | + | ;La directive CONFIG sert à mettre en fonction des fusibles de fonction | 
| - | Start: | + | __CONFIG _CONFIG1, _CP_OFF & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_ON & _MCLR_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_IO | 
| - | bsf STATUS,RP0 | + | __CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF | 
| - | bcf TRISC,0 | + | |
| - | bcf STATUS,RP0 | + | ;la directive CBLOCK sert à donner le point de départ des variables (RAM) | 
| - | bsf PORTC,0 | + | CBLOCK  0x20 ;Début de la zone (0x20 à 0x6F) | 
| - | goto  $ | + | Delay1  ;Déclaration variable Delay1 dans banque 0 | 
| - | end | + | 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 | ||
| </code> | </code> | ||
| Compilez : | Compilez : | ||
| - | <code>gpasm hello.asm -p p16f690</code> | + | <code>gpasm hello.asm -p p16f88</code> | 
| - | Programmez/flashez le PIC : | + | Programmer le 16f88 : | 
| - | <code>pk2cmd -P PIC16F690 -M -F hello.hex</code> | + | <code>pk2cmd -P PIC16F88 -M -F hello.hex</code> | 
| Lancez le programme en activant l'alimentation: | Lancez le programme en activant l'alimentation: | ||
| - | <code>pk2cmd -P PIC16F690 -T</code> | + | <code>pk2cmd -P PIC16F88 -T</code> | 
| - | Si tout se passe correctement  la LED DS1 s'allume. | + | Si tout se passe correctement  la LED câblée sur le PORTB 3 clignote. | 
| - | + | <code>pk2cmd -P PIC16F88 -A0</code> | |
| - | on utilise la carte de développement DM164120-1 de Microchip pour cet essais (plus fabriquée de nos jours) | + | 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 ===== | ===== Voir aussi ===== | ||
| * [[piklab]] | * [[piklab]] | ||