You are on page 1of 70

Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Le PIC 16F628
Lessentiel

Auteur : Galod Alexandre


Date : 08/02/2005

Ce document est la proprit intellectuelle de son auteur

-1-
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

INTRODUCTION
Ce livre, pour but de vous prsenter le PIC16F628, et
dapprendre le programmer. Nous pouvons le considrer
comme complmentaire au livre Le PIC16F84 : Lessentiel .

Tout comme pour ce dernier, nous ne verrons que le strict


ncessaire, sans superflu inutile, qui parfois nous embrouille
lesprit. Seules les principales fonctions et celles les plus
utilises seront vues ici.

Ainsi, certaines possibilits du 628, comme par exemple le


PWM (modulation en largeur dimpulsion), ne seront pas
expliques ici.

Bonne lecture et bon apprentissage!!!

Ce document est la proprit intellectuelle de son auteur

-2-
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

SOMMAIRE
1- Le PIC 16F628 P2
1.1 Prsentation du microcontrleur P3
1.2 Caractristiques du PIC 16F628 P8
1.3 Fonctionnement du PIC 16F628 P10
1.3.1 Les entres/sorties
1.3.2 Les diffrents mode dhorloge
1.3.3 Le reset
1.3.4 Les interruptions
1.3.5 Les timers
1.3.6 LUSART
1.3.7 La tension de rfrence
1.3.8 Les comparateurs

2- Programmation du PIC 16F628 P16


2.1 Ncessaire la programmation P17

3- Programmer le PIC P37


3.1 Un programmateur de PIC P38
3.2 Les logiciels de programmation P41

4- Un testeur de PIC P

5- En bref, tout ce qui est utile P

6- Conclusion P

7- Lexique P

8- Liens Internet utiles P

Ce document est la proprit intellectuelle de son auteur

-3-
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

CHAPITRE 1 : LE PIC 16F628

1.1 Prsentation du microcontrleur

1.2 Caractristiques du PIC 16F628

1.3 Fonctionnement du PIC 16F628

1.3.1 Les entres/sorties

1.3.2 Les diffrents modes dhorloge

1.3.3 Le Reset

1.3.4 Les interruptions

1.3.5 Les Timers

1.3.6 LUSART

1.3.7 La tension de rfrence

1.3.8 Les comparateurs

Ce document est la proprit intellectuelle de son auteur

-4-
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

1- LE PIC 16F628

1.1- Prsentation du microcontrleur :

Le PIC 16F628

Le PIC 16F628, que nous appellerons 628 par commodit, est


souvent prsent et juste titre, comme le successeur du PIC 16F84.
En effet, le 628 est compatible patte patte avec le 16F84. De plus, au
niveau programmation, seul un lger rajout, au niveau de linitialisation
des diffrents registres est ncessaire. De ce fait, avec un prix encore
plus bas que le PIC 16F84, il est indniable, que le 628 finisse par
simposer.

il ne faut surtout pas confondre les microcontrleurs et les


microprocesseurs. Pour rsumer, on peut dire quun microcontrleur est
un ordinateur extrmement miniaturis et possdant donc assez peu de
mmoire, et dont le processeur est relativement simple, alors quun
microprocesseur ne fait quexcuter des instructions qui lui sont
communiques, puis renvoie les rsultats.

Les principaux problmes des microcontrleurs sont la taille de leur


mmoire et le nombre limit de priphriques quils peuvent recevoir en
mme temps. Cependant, le nombre de ces derniers peut parfois tre
augment en associant, sur les mmes pattes un priphrique dentre
et un de sortie, permettant alors de doubler le nombre de priphriques
connectables

Ce document est la proprit intellectuelle de son auteur

-5-
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Un microcontrleur se dcompose en diverses parties : la mmoire de


programme, la mmoire de donnes, le processeur, les ressources
auxiliaires.

Jusqu une certaine poque, les microcontrleurs respectaient


larchitecture Von Neumann, inventeur de lENIAC, premier ordinateur au
monde. Cependant, celle-ci prsente des inconvnients. En effet, la
vitesse dexcution est limite, les instructions et les donnes transitaient
par le mme bus. Pour rsumer, son principal dfaut tait le fait quelle
ne possdait quun bus pour, simultanment, la mmoire programme et
la mmoire donne.

Larchitecture de Von Neumann

Do larchitecture Harvard, utilise maintenant par les PIC. Sa


particularit tient dans le fait quil y a deux mmoires accessibles en
mme temps par le processeur, par lintermdiaire de deux bus
spcifiques.

Lun sert pour les donnes, et lautre pour les instructions. De ce fait,
les deux peuvent tre accessibles en mme temps, do un gain de
vitesse, au niveau excution.

Ce document est la proprit intellectuelle de son auteur

-6-
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Larchitecture Harvard

Ceci aidant, il existe depuis quelques annes, un nouveau type de


mmoires dites flash , avec criture et effacement lectrique des
donnes dans la mmoire. Elle est de type RAM, mais est associe
une mmoire EPROM pour des donnes auxiliaires.

Ce document est la proprit intellectuelle de son auteur

-7-
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

1.2- Caractristiques du PIC 16F628 :

Le 628 possde 13 pattes dE/S, tout comme le 16F84, nombre qui


peut monter jusqu 16 E/S, selon les configurations. Ces E/S sont, tout
comme chez le 16F84, rparties sur deux ports (A et B).

Rappel : On ne peut affecter que deux valeurs diffrentes de


configuration chaque patte : un 1 pour la mettre en entre, ou un
0 pour une sortie.

Le port A possde, normalement 5 broches (nommes RA1 RA4), et


ce nombre peut monter jusqu 8 (RA1 RA7).

Le port B, lui, possde 8 broches (de RB0 RB7)

Outre ces caractristiques, le 628 possde des fonctions intgres


particulirement intressantes. Ainsi, en plus des fonctions du 16F84, le
628, possde 4 CAN (aux entres des comparateurs), 2 comparateurs,
dont les valeurs de sortie peut tre connue logiciellement, une source de
tension de rfrence configurable de 0 3,6V, une connectique de
transmission asynchrone (srie Tx et Rx), une connectique de
transmission synchrone (DT et Ck), 2 timers supplmentaires (3 en tout),
enfin, un systme dhorloge RC intgr 4 MHz (frquence lgrement
variable selon la temprature ambiante du 628). Voil, ainsi, rsumes
les principales amliorations du 628. Il va sans dire, que toutes ces

Ce document est la proprit intellectuelle de son auteur

-8-
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

fonctions ne peuvent pas tre utilises simultanment, il quil faudra bien


choisir ce dont on a besoin.

Voici enfin, les caractristiques gnrales du PIC 16F628 fourni par


Microchip :

Mmoire de programme : 2KO, type Flash


Mmoire de donnes RAM : 224 octets
Mmoire de donnes EPROM : 128 octets
Cause dinterruption : 10
Frquence max de travail : 20 MHz (horloge interne de 4 MHz)
Lignes E/S numrique : de 13 16 (attention, RA5 nest quune entre)
Temporisateur : 3 pour lutilisateur, un pour le Watchdog
Tension dalimentation : 3 5,5 V continu
Tension de programmation : 12 14 V continu (compatible 16F84)
Botier : DIL 18

Ce document est la proprit intellectuelle de son auteur

-9-
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

1.3- Fonctionnement du PIC 16F628:

1.3.1- Les entres/sorties :

Dans cette partie, nous allons voir les diffrentes possibilits de


chaque patte, en les dsignant par leur numro. A noter, quune seule
fonction est disponible la fois, par patte. Chaque valeur issue dun CAN
peut tre compare (dans les comparateurs) avec la tension de
rfrence interne.

PATTE 1 : E/S RA2, CAN 2, tension de rfrence

PATTE 2 : E/S RA3, CAN 3, Sortie du comparateur 1

PATTE 3 : E/S RA4, entre Timer 0 TOCKI, Sortie comparateur 2

PATTE 4 : E RA5, reset externe, programmation type F84 (compatible)

PATTE 5 : masse

PATTE 6 : E/S RB0, source dinterruption

PATTE 7 : E/S RB1, Rx (rception asynchrone, srie), Dt broche de


donnes (transmission synchrone)

PATTE 8 : E/S RB2, Tx (transmission asynchrone, srie), Ck broche de

Ce document est la proprit intellectuelle de son auteur

- 10 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

synchronisation de transmission synchrone

PATTE 9 : E/S RB3, Capture avec le timer 1, Comparaison avec le timer


1, PWM avec le timer 2

PATTE 10 : E/S RB4, programmation basse tension (non explique ici)

PATTE 11 : E/S RB5

PATTE 12 : E/S RB6, T1OSC0 ( utiliser avec T1OSC1) quartz externe


pour le timer 1 (de 32 200 KHz), entre dhorloge pour le
timer 1

PATTE 13 : E/S RB7, T1OSC1 (voir ci-dessus)


PATTE 14 : Alimentation positive (5V typique)

PATTE 15 : E/S RA6, OSC2 entre horloge (brancher une rsistance


pour un oscillateur RC) ou quartz ( utiliser avec un quartz),
CLKOUT sortie dhorloge pour le mode 4 & 6

PATTE 16 : E/S RA7, OSC1 (voir ci-dessus), CLKIN entre horloge


externe (type GBF, ou autre)

PATTE 17 : E/S RA0, CAN 0

PATTE 18 : E/S RA1, CAN 1

1.3.2- Les modes dhorloge :

Dans cette partie, nous allons voir les diffrents modes dhorloge. On
peut les dnombrer aux nombres de 6. Le mode de fonctionnement se
fait sous ICPROG, dans la fentre oscillateur. Nous prciserons entre
parenthse les broches utilises pour lhorloge. Dans le cas dun quartz
(mode1), vous pourrez choisir la programmation ou horloge XT
(jusqu 4 Mhz), ou HS (jusqu 20 MHz).

MODE 1 : fonctionnement classique avec quartz (OSC1 & OSC2)

MODE 2 : Horloge externe (ex : NE555, GBF,) (OSC1)

MODE 3 : Horloge interne. Frquence unique : 4 MHz (Aucune)

Ce document est la proprit intellectuelle de son auteur

- 11 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

MODE 4 : idem MODE 3, mais OSC2 gnre lhorloge divise par 4

MODE 5 : Horloge externe. Branchez une R entre OSC1 et la masse

MODE 6 : Idem MODE 5, mais OSC2 gnre lhorloge divise par 4

1.3.3- Le reset :

Le reset automatique (condensateur de 1F et une rsistance de 1 K)

Le reset manuel (avec une rsistance de 1K)

Ce document est la proprit intellectuelle de son auteur

- 12 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Le modle mixte, permettant un reset automatique lors de la mise sous tension et


galement un interrupteur de reset manuel

Le reset sur le 628 peut tre de deux types. Classique, comme sur le
16F84, ou bien automatique (case BODEN cocher sous ICprog, pour
la surveillance watchdog et case PWRT pour un reset au dmarrage).

1.3.4- La mmoire EPROM :

LEPROM( Electrically Erasable Programmable Read Only Memory)


est une mmoire interne au Pic. Il sagit dune mmoire non volatile dans
laquelle le PIC peut stocker des donnes, comme par exemple les
rsultats dune acquisition.

1.3.5- La mmoire flash :

La mmoire flash est le nouveau type de mmoire EPROM. Bien plus


souple que les premires gnrations de ces dernires, la mmoire flash
permet une criture/effacement de toute la mmoire ou que dune partie
au choix. Ce type de mmoire possde beaucoup de caractristiques
intressantes.

Ce document est la proprit intellectuelle de son auteur

- 13 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

1.3.6- Les Interruptions :

Les interruptions passent ici au nombre de 10. Nous allons ici voir la
liste des interruptions possibles :

Externe : RB0
Dbordement du timer 0
Changement dtat des broches RB4 RB7
Modules de comparaison
USART
Module CCP (pour la modulation PWM)
Dbordement du timer 1
Timer 2

1.3.7- Les TIMERS :

Chez le 628, ils sont au nombre de 3.

Le premier (timer 0) est identique celui du 16F84 (8 bits).


Le second (timer 1) est sur 16 bits, permettant ainsi dtendre les
possibilits.
Le troisime (timer 2), lui sur 8 bits, possde un pr et un post-diviseur,
permettant ainsi de gnrer un signal PWM.

Timer0 :
Il sagit dun temporisateur interne de 8 bits, qui peut tre initialis une
valeur donne. A chaque passage de FF 00 (en hexa), le bit de

Ce document est la proprit intellectuelle de son auteur

- 14 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

dbordement est activ. Il faut alors le remettre zro, pour pouvoir


dtecter un autre dbordement (non automatique).

Il possde deux modes de fonctionnement possible, dont le choix


seffectue par la mise 1 ou 0 du bit TOSC (voir chap. ncessaire la
programmation), lentre horloge devenant alors la patte RA4, en mode
dit TOCKI .

Ces deux modes sont :

temporisateur interne (peut alors servir pour des fonctions de temps)


Compteur dvnements (peut servir pour compter des vnements
extrieurs par lintermdiaire de RA4)

Remarque : la patte RA4 doit tre dfinie en entre dans le cas du


compteur dvnements.

1.3.8- LUSART :

Sous ce nom un peu barbare se cache en fait la possibilit de


communiquer avec un autre systme ou microcontrleur de faon
asynchrone ou synchrone.

1.3.9- La tension de rfrence:

Le 628 possde une source de tension de rfrence interne. Nous


pouvons ainsi sur la patte 1 avoir, pour une tension dalimentation de 5
V, une tension de rfrence comprise entre 0 et 3,6 V. Pour choisir cette
tension, on utilise le registre VRCON :

Le bit VREN sert la mise en marche (niveau 1) ou non (niveau 0) de


la tension de rfrence (la patte 1 du 628 sert alors de tension de
rfrence externe). Le bit VROE, lui sert appliquer cette Vref lentre
du comparateur (niveau 1) ou non (niveau 0). Le VRR, lui sert choisir
deux intervalles de tensions possibles (VR3.0 dsignera la valeur
dcimale code sous forme binaire dans VR3, VR2, VR1 et VR0) :

Ce document est la proprit intellectuelle de son auteur

- 15 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

VRR=0 :

Vref= Valim / 4+ (VR3.0 / 32)* Valim

Nous obtenons ici une gamme allant de 1.25 3.59 V

VRR=1 :

Vref= (VR3.0 / 24)* Valim

Ici, la gamme va de 0 3.13V

Toutes ces tensions sont obtenues, pour informations, par


lintermdiaire dun rseau de rsistance.

1.3.10- Les comparateurs:

Le 628 possde deux comparateurs intgrs. Deux tats de sorties


sont possibles : niveau 1 si V+>V-, niveau 0 si V+<V-

Cest le registre CMCON qui sert configurer les comparateurs :

C2OUT : image de sortie du comparateur 2 (non crivable)


C1OUT : image de sortie du comparateur 1 (non crivable)
C2INV : inversion de la sortie du comparateur 2
C1INV : inversion de la sortie du comparateur 1
CIS : multiplexage dentres
CM2, CM1, CM0 : permettent de dfinir un mode de fonctionnement des
Comparateurs

Les comparateurs fonctionnent selon le tableau suivant :

Ce document est la proprit intellectuelle de son auteur

- 16 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Ce tableau montre, selon la configuration des CMx, les diffrents types


de fonctionnement possible, ainsi que le cblage interne effectu.

1.3.11- Le Watchdog :

Littralement le chien de garde , le Watchdog est un systme de


surveillance du bon droulement du programme. Il sagit dun compteur,
qui est rinitialis rgulirement dans le cas dun fonctionnement normal.
Mais dans le cas dun dysfonctionnement, le compteur va jusquau bout
et dclenche alors un reset interne, par dbordement, rinitialisant le Pic.

Ce document est la proprit intellectuelle de son auteur

- 17 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Le compteur peut fonctionner la frquence de loscillateur, ou bien


une frquence spcifique, dsigne par la frquence de loscillateur
modifie par un diviseur.

Remarque : il nest pas obligatoire de lutiliser. Son utilisation est


activer ou non, lors de la programmation du PIC

1.3.12- Le RTCC:

Il sagit dune horloge interne destine au fonctionnement du timer 0


(TMR0) dans le cas dun fonctionnement de ce dernier sur horloge
interne.

Ce document est la proprit intellectuelle de son auteur

- 18 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

CHAPITRE 2 : PROGRAMMATION
DU PIC 16F628

2.1 Ncessaire la programmation

Ce document est la proprit intellectuelle de son auteur

- 19 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

2.1- Ncessaire la programmation du PIC :

Les bases de programmation, en C, sont les mmes que pour le


16F84. Les noms de registres devront tre crits en majuscule. Tous les
paramtres expliqus ici, seront vus dun point de vu, programmation en
C.

Nous allons voir dans cette partie, les registres, encore non vus,
permettant la programmation du 628

STATUS :

Ce registre contient tous les bits qui servent pour nous renseigner sur
ltat du PIC, et pour une partie de la programmation. Seuls trois bits
nous intressent : le C, le RP1 et le RP0.

Le bit C (pour carry, retenue en franais), est un ou zro selon que


lopration effectue ncessitait une retenue ou non.

Le RP0 et le RP1 sont les bits permettant davoir accs au tableau de


programmation, vu prcdemment (et donc au bit systme des registres)
et aux diffrents espaces mmoires.

Ce registre ne sert principalement quen assembleur et pour les


programmeurs confirms ; raison pour laquelle nous ne nous
attarderontspas dessus.

TRISA :

Le TRISA est le registre permettant de dfinir les entres/sorties du


Port A. En remplaant les RAx par leur valeur correspondante (1 pour
une entre, 0 pour une sortie), on obtient alors le mot binaire rentrer
dans TRISA. Quand aux bits 7, 6 et 5, leurs valeurs dpendent quils
soient ou non utiliss en E/S.

Ce document est la proprit intellectuelle de son auteur

- 20 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

TRISB :

Le TRISB fonctionne de la mme manire que le TRISA.

OPTION :

Ce registre permet de dfinir le choix dun diviseur et son affectation au


Watchdog ou au RTCC

Le choix de ce diviseur, se fait par lintermdiaire de PS2, PS1, et PS0,


selon le tableau suivant :

Laffectation au Watchdog (WDT) ou lhorloge temps rel (RTCC) se


fait par lintermdiaire du bit PSA.

Dans le cas de laffectation du diviseur au RTCC, le bit TOSE permet


de choisir entre un dclenchement sur front montant ou sur front
descendant.

Le bit INTEDG permet lui, de choisir le dclenchement de linterruption


(sur front montant ou sur front descendant).

Ce document est la proprit intellectuelle de son auteur

- 21 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Enfin, le bit /RBPU, permet de choisir de la mise en place ou non dune


rsistance de rappel entre RB4 et RB7.

Remarque : Dans le cas dun ventuel reset, ou la mise sous


tension, tous les bits sont par dfaut 1.

Tout ceci est rsum dans le tableau suivant :

INTCON :

Ce document est la proprit intellectuelle de son auteur

- 22 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Ce tableau rsume la faon dont on peut activer et vrifier les


interruptions actives.

Module Timer1 (T1CON) :

T1CKPS1 & T1CKPS0 : valeur de la prdivision dhorloge du timer 1

11 : division par 8
10 : division par 4
01 : division par 2
00 : division par 1

T1OSCEN : activation (1) ou non (0) de loscillateur du timer 1

/T1SYNC : bit de contrle de lentre dhorloge externe de


Synchronisation. Dpend de TMR1CS. Si ce dernier gal
0, utilisation de lhorloge interne. Si TMR1CS gal 1, si
/T1SYNC gal 0, alors il y a synchronisation avec lhorloge
externe ; sinon, il ny aura pas de synchronisation.

TMR1CS : bit de slection dhorloge externe (1 : depuis RB6, front


montant) ou horloge interne (0 : Fosc/4)

TMR1ON : activation (0) ou non (1) du timer 1

PIE1 :

EEIE : active (1) ou non (0) linterruption dcriture EEprom

CMIE : active (1) ou non (0) linterruption des comparateurs

RCIE : active (1) ou non (0) linterruption de rception USART

TXIE : active (1) ou non (0) linterruption de transmission USART

CCP1IE : active (1) ou non (0) linterruption du CCP1

Ce document est la proprit intellectuelle de son auteur

- 23 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

TMR2IE : active (1) ou non (0) linterruption de comparaison entre


Timer2 et PR2

TMR1IE : active (1) ou non (0) linterruption de dbordement du timer 1

PIR1 :

EEIF : indique si lcriture EPROM est finie (1, remettre 0


logiciellement ) ou non termin (0), ou non commence (0)

CMIF : indique si la sortie des comparateurs change (1) ou non (0)

RCIF : indique si le buffer rception de lUSART est plein (1) ou non (0)

TXIF : indique si le buffer transmission de lUSART est plein (1) ou non

CCP1IF :
mode capture : une capture TMR1 a t effectue (1, reset
logiciel ) ou non
mode comparaison : une comparaison TMR1 a t effectue (1,
reset logiciel) ou non

TMR2IF : une comparaison entre Timer2 et PR2 a t effectue (1,


reset logiciel) ou non (PR2 est le registre de priode du
timer2, utilisation en PWM)

TMR1IF : dbordement du timer 1 (1, reset logiciel) ou non (0)

Module Timer2 (T2CON) :

TOUTPS3/TOUTPS2/TOUTPS1/TOUTPS0 : valeur en binaire du


prdviseur de sortie du timer 2 (0000 (1:1) 1111(1:16) par
incrmentation de 1)

TMR2ON : activation (1) ou non (0) du timer 2

Ce document est la proprit intellectuelle de son auteur

- 24 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

T2CKPS1/T2CKPS0 : valeur en binaire du prdviseur de lhorloge du


timer 2 (00 (1:1), 01 (1:4), 1x (1:16))

RCSTA :

SPEN : Bit dactivation (1) ou non (0) du port srie

RX9 : Bit de slection du nombre de bits en rception (8 :0 ou 9 :1)

SREN : en mode synchrone matre, active (1) ou non la simple


rception. Ce bit est effac aprs chaque rception

CREN : en mode asynchrone, active (1) ou non la rception continue.


En mode synchrone, active la rception continue jusqu mise
zro de CREN

ADEN : en asynchrone 9 bits, active (1) ou non (0) la dtection d@,


les interruptions et chargement du buffer de rception.

FERR : erreur (1) ou non (0) de rception

OERR : erreur (1) ou non de sur-criture

RX9D : Bit de parit (bit en lecture uniquement)

USART (TXSTA) :

CSRC : en mode synchrone, mode matre (1) ou esclave (0)

TX9 : Bit de slection du nombre de bits en transmission (8 :0 ou 9 :1)

TXEN : transmission active (1) ou non (0)

SYNC : slection synchrone (1) ou asynchrone (0)

BRGH : en asynchrone, haute vitesse (1) ou basse (0)

Ce document est la proprit intellectuelle de son auteur

- 25 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

TRMT : registre de transmission plein (0) ou vide (1)

TX9D : 9me bit de transmission (parit)

Calcul de la vitesse de transmission, et tableaux associs :

Ce document est la proprit intellectuelle de son auteur

- 26 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Ce document est la proprit intellectuelle de son auteur

- 27 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Ce document est la proprit intellectuelle de son auteur

- 28 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Ce document est la proprit intellectuelle de son auteur

- 29 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Ce document est la proprit intellectuelle de son auteur

- 30 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Ce document est la proprit intellectuelle de son auteur

- 31 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

CHAPITRE 3 : PROGRAMMER LE
PIC

3.1 Un programmateur de PIC

3.2 Les logiciels de programmation

Ce document est la proprit intellectuelle de son auteur

- 32 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

3- Programmer le PIC

3.1- un programmateur de PIC :

Nous allons voir ici, un programmateur de PIC fort simple. Bien que
certains disent quil commence vieillir pour la simple raison quil se
branche sur un port srie, je pense quil reste le meilleur programmateur.
En effet, pas besoin de lui fournir une alimentation externe comme
certains programmateurs. De plus, tant relativement simple, et ancien,
on peut trouver de nombreuses docs sur le net, notamment, pour ceux
que a intressent, sur son fonctionnement. Il sagit dun programmateur
de PIC 16F84, de type JDM.

Nous ne verrons ici, que la faon de le fabriquer, sans nous attarder


sur son fonctionnement. Nous verrons donc son schma structurel, le
PCB et le schma dimplantation.

Le structurel :

Ce document est la proprit intellectuelle de son auteur

- 33 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Il vous faudra quelques composants pour le fabriquer :

R1 10K Resistor
R2 1.5K Resistor
D2 5.1V/0.5W Zener
D3 1N4148 or 1N4448 Diode
D4 1N4148 or 1N4448 Diode
D5 1N4148 or 1N4448 Diode
D6 8.2V/0.5W Zener
D7 1N4148 or 1N4448 Diode
C2 100F/25V Capacitor electrolytic
C3 22F/16V or 47F/6.3V Capacitor tantal
Q1 BC547B Transistor NPN
Q2 BC547B Transistor NPN
P1 DS25 (female) 25 pol DSUB connector
P2 Connector for In Circuit Programming

Le PCB vient dun site internet (http://www.jdm.homepage.dk/pcb2.htm),


mais pour ceux qui ne disposent pas daccs, voici les PCB, tels quils
sont mis sur le net. A noter que le schmatique du site est avec un
connecteur parallle, alors, que le schmatique de ce livre est pour un
connecteur srie.

Implantations des composants :

Ce document est la proprit intellectuelle de son auteur

- 34 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Vue de dessus (par transparence) :

Vue ct cuivre :

Pour information, le cadre fait 3,8 cm de large et 3,6 cm de haut.


Attention donc, quand vous imprimez le typon.

Attention: Ce schma, est valable pour le PIC16F84. Pour pouvoir


programmer le PIC 16F628, il faut dconnecter la patte RB4, et la
laisser dans le vide. Concrtement, sur le typon, il faut couper la

Ce document est la proprit intellectuelle de son auteur

- 35 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

piste droite de la pastille signale par la flche rouge (voir typon


ci-dessus). Thoriquement, vous pouvez alors, programmer la
fois les PIC16F628, et le 16F84. Si vous tes perfectionnistes, ou si
vous avez des problmes, vous pouvez rajouter un interrupteur,
afin de faire ou non, la liaison.

Ce document est la proprit intellectuelle de son auteur

- 36 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

3.2- Les logiciels de programmation :


Afin de programmer le PIC, nous aurons besoin de deux logiciels
(MPlab et IC-Prog), ainsi que dun compilateur (CC5Xfree).

Nous verrons donc le logiciel de programmation avec son compilateur


(MPlab et CC5Xfree), et le logiciel pour tlcharger le programme dans
le PIC (IC-Prog)

MPlab est un logiciel gratuit de programmation, dvelopp et propos


par Microchip, le fabricant du microcontrleur PIC.

Les tapes que nous verrons dans limmdiat consistent dclarer le


compilateur dans MPlab. De fait, cette opration nest effectuer quune
seule fois. Ces tapes seront illustres en images.

La premire chose faire est douvrir le logiciel MPlab. Bien,


maintenant, nous allons pouvoir commencer.

Etape 1 : ouvrez le menu Project et cliquez sur Set Language


Tool Locations

Ce document est la proprit intellectuelle de son auteur

- 37 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Etape 2 : il faut prciser MPlab o se trouve le compilateur


CC5X, qui nous permettra dcrire en C.

Ce document est la proprit intellectuelle de son auteur

- 38 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Vous devez cliquer, comme vous pouvez le voir sur B Knudsen


Data CC5X, puis sur Executables, et enfin slectionner CC5X C
Compiler. Ensuite vous devez cliquer sur Browse pour lui dire o
trouver le compilateur, en lui indiquant le chemin.

Etape 3 : la troisime tape consiste dclarer un nouveau projet,


en cliquant sur Project, puis sur new

Etape 4 : aprs avoir dit MPlab o tait le compilateur CC5X, il


faut lui prciser, que cest le compilateur que lon veut utiliser. Pour cela
cliquez sur le menu Project, puis sur Select Language Toolsuite.

Ce document est la proprit intellectuelle de son auteur

- 39 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Vous obtenez alors la fentre suivante, dans laquelle vous devez


slectionner dans le menu droulant active toolsuite la ligne B
Knudsen Data CC5X. Cliquez alors sur CC5X C Compiler et vrifiez
que la ligne Location indique le bon chemin MPlab.

Ce document est la proprit intellectuelle de son auteur

- 40 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Ce document est la proprit intellectuelle de son auteur

- 41 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Voil, nous avons configur le compilateur ; maintenant, nous


allons voir comment crer la fentre pour le code source. Cela est trs
simple : cliquez sur File, pui sur New. Une fentre apparat alors.
Cliquez alors sur File, puis sur Save As. Rentrez alors le nom que
vous voulez, suivit de .C, afin de prciser le type de document que
vous allez crire.

Il ne vous reste alors plus qu lier le code source votre projet :

Ce document est la proprit intellectuelle de son auteur

- 42 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Les derniers paramtres :il sagit de prciser MPlab le composant


auquel est destin le programme.
Pour ce faire, cliquez sur Configure, puis sur select device

Apparat alors lcran suivant :

Ce document est la proprit intellectuelle de son auteur

- 43 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Maintenant, vous devez dfinir les paramtres de configuration : le


Watchdog, le type doscillateur , le power up timer (mise sous tension
retarde) et le code P (code protect).

Cliquez sur Configure, ensuite sur Configuration Bits :

Veuillez alors rentrer les mmes valeurs que dans cette capture
dcran. A noter, que cette fentre correspond avec un quartz. Tout le
reste doit tre off.

Comme nous lavons vu prcdemment dans la partie sur le langage


C, nous aurons besoin de librairies. Celles-ci sont propres au
compilateur. Il est donc ncessaire de dfinir lendroit o elles se
trouvent.

Ce document est la proprit intellectuelle de son auteur

- 44 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Pour cela, cliquez sur le menu Project, puis sur Build Options et
enfin sur Project.

Et vous obtenez limage suivante :

Ce document est la proprit intellectuelle de son auteur

- 45 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Il faut alors que vous indiquiez dans le champ Include Path le chemin
du dossier du compilateur CC5X.

Voil, votre logiciel est enfin configur pour programmer.

Une indication utile toutefois. Quand votre programme sera termin,


pour le compiler et vrifier que tout va bien (si ce nest pas le cas, il vous
affichera un message derreur), il faut utiliser le bouton build,
correspondant licne :

Ce document est la proprit intellectuelle de son auteur

- 46 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Nous allons maintenant voir le logiciel, qui permet, par lintermdiaire


du programmateur vu prcdemment, de tlcharger notre programme
dans le PIC.

Remarque : Cest le .hex que lon doit ouvrir. Si celui-ci nest


pas prsent dans votre dossier, ou si MPlab vous indique lors de la
compilation quil na pas pu tre gnr, alors ouvrez le menu
Windows, et cliquez sur Excuter. Dans le champ qui souvre
tapez alors la ligne :
regsvr32 C:\Program Files\MPLAB IDE\dlls\MPProgram.dll
Cette ligne devrait rsoudre le problme.

Nous allons commencer par ouvrir le logiciel ICPROG :

Chose importante, slectionner le PIC 16F628 comme composant. Les


fusibles sont cocher selon lutilisation de votre PIC. Pour une utilisation
des plus classiques, vous pouvez vous contentez de lhorloge interne
(intRC I/O)

Ce document est la proprit intellectuelle de son auteur

- 47 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

A ce stade, vous tes prts programmer, ne vous reste alors plus


qu tlcharger votre programme. Mais avant de voir comment faire
nous allons faire une remarque importante.

Remarque : Toutes les tapes pour ICPROG vues jusquici sont


bonnes pour toutes les versions de Windows. Cependant, pour
windows 2000, NT, et XP, il est ncessaire de rajouter des drivers
spciaux ICPROG. Voici comment faire :

Lors de la premire mise sous tension, vous obtiendrez des


messages derreur de violations. Refermez alors le logiciel et allez
dans le rpertoire o se trouve lexcutable. Faites un clique droit
sur lexcutable, et ouvrez les proprits.

Allez alors dans compatibilit, cochez la premire case, et


demandez excuter le programme en mode de compatibilit pour
windows 2000, puis validez.

Ce document est la proprit intellectuelle de son auteur

- 48 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Rouvrez alors ICPROG,. Vous obtiendrez un nouveau message


derreur. Cliquez sur OK, puis cliquez sur le menu Settings, puis
sur Options.

Dans le menu qui apparat, allez dans longlet MISC, et cochez


loption Enable NT/2000/XP Drivers

Ce document est la proprit intellectuelle de son auteur

- 49 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Vous devez alors redmarrer ICPROG pour que les changements


prennent effet. Au redmarrage, il vous affiche cette fentre :

Aprs vous tre assur que le driver (icprog.sys) est prsent


dans le mme dossier que lexcutable, cliquez sur YES.

Maintenant, prcisez ICPROG, le programmateur que vous


utilisez. Pour ce faire, appuyez sur F3, et rglez les paramtres
comme suit :

Ce document est la proprit intellectuelle de son auteur

- 50 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Voil, ICPROG est configur pour Windows NT, 2000 et XP.

Remarque : avec un ordinateur portable, il se peut que la


programmation choue (erreur de type :Echec de la vrification
ladresse 0000h). Ceci peut venir de votre ordinateur ne
fournissant pas les bonnes tensions pour la programmation, ou
alors, dans certains cas un cble srie trop long (la rsistance du fil
entranant une chute de tension entre le port srie et le
programmateur).

Bien. Maintenant, nous allons voir comment tlcharger un programme


dans le PIC.

Voici quoi ressemble la barre des tches de ICPROG :

1 2 3 4 5 6 7 8 9 10 11

Nous dtaillerons ces icnes une une :


1-Ouvrir un fichier (nouvrez que des fichiers .hex, les seuls aptes tre
tlchargs)
2-Enregistrez (ne sert que rarement)
3-Hardware configurations (configuration dj effectue)

Ce document est la proprit intellectuelle de son auteur

- 51 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

4-Options configurations (configuration dj effectue)


5-Sert lire le code prsent dans le composant. Le rsultat saffiche
dans la fentre sous forme de code hexa (si pas derreur).
6-Sert tlcharger le programme dans le composant
7-Sert effacer le contenu du composant
8-Sert vrifier que le composant a bien t programm
9-Assistant SmartCard (ne sert pas)
10-Sert voir le code en assembleur
11-Sert voir le code en hexadcimal

Tlcharger le programme :

Pour tlcharger un programme, il faut commencer par ouvrir un fichier


.hex. Pour cela, cliquez sur licne 1 et allez chercher votre fichier . hex.
Puis, rglez votre oscillateur, et vos paramtres comme indiqus plus
haut. Effacez le composant en cliquant sur licne 7, puis programmez
le avec licne 6.

Remarque : Dans certains cas, avant dimporter votre .hex, il est


prfrable de vrifier sil ny rien sur votre composant, laide de
licne 5.

Ce document est la proprit intellectuelle de son auteur

- 52 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

CHAPITRE 4 : UN TESTEUR DE
PIC

Ce document est la proprit intellectuelle de son auteur

- 53 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Dans cette partie, nous verrons un testeur de PIC, le principe, et le but


de celui-ci.

Ce testeur, compos avec uniquement quelques composants, nous


permet de tester nos programmes, et de vrifier le bon fonctionnement
de ces derniers.

Son principe est simple. Le testeur possde sur sa plaque un quartz,


un rgulateur, un systme de reset mixte et des sries de borniers. Un
jeu de switch permet galement de connecter ou non, le quartz, ainsi
que le systme de reset. Aliment par un transformateur 220V-6V, le
testeur dlivre, grce au rgulateur (un 7805) une tension de 5 volts au
PIC. Le systme Reset assure le rle qui lui est allou, la mise sous
tension, et lorsque lutilisateur le veut. Le quartz, cadenc 4 Mhz, sert
dlivrer le signal dhorloge au PIC. Les sries de borniers, assurent une
connectivit des ports avec lextrieur (une srie de borniers par ports),
ainsi, quune alimentation externe de 5 V.

En voici le typon (vu de dessus, attention limpression sur calque) :

Vous pouvez scanner et imprimer, sur calque, ce typon, afin de pouvoir


tirer une plaque. Passez par un ordinateur, pour vous assurer de la
bonne chelle. Le cadre fait 5,3 cm de haut et 11,4 cm de large.
Attention au sens, le typon est ici vu travers la plaque.

Ce document est la proprit intellectuelle de son auteur

- 54 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Voici limplantation des composants (vu de dessus) :


Condo 1F
Poussoir reset Inter
Rsistance 1K On/off

7805

Quartz+ 2Condos
33pF

Bornier A A0->A7 Bornier B B0->B7 Bornier alim

La plupart des composants sont faciles identifier. En ce qui concerne


le 7805, il doit tre plac, le dos vers le bas, c'est--dire, de gauche
droite, broche 3-2-1.

Les traits bleus correspondent aux positions des interrupteurs, lidal,


tant de les dporter plus loin, et dutiliser des fils pour les connecter.
Les traits noirs correspondent des vias.

Remarque : le via au niveau du quartz, traits bleu et noirs cote


cote, peut tre remplac par un interrupteur, mais cela est
inutile, et constituait donc une dpense vaine. Cependant,
lespace a t prvu dans le cadre dune future volution
possible.

Deux quartz de 33 pF sont prvoir sur chaque broche du quartz, afin


dliminer dventuels parasites.

Nous avons choisi un transfo secteur de chargeur de tlphone, qui


nous permet davoir jusqu 0.5A disponible. Si on tient compte du fait
quun PIC peut fournir maximum environ 20mA par patte, dans le cas
dun 16F84, 240mA sont disponibles sur le bornier alim. Quand au
bornier, notre choix sest port sur des bornier vis pour CI.

Ce document est la proprit intellectuelle de son auteur

- 55 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Le but de ce testeur est donc de permettre de tester notre programme


complet ou partiel en nous permettant de connecter facilement les
priphriques, au choix ; le principal inconvnient de ce testeur tant sa
frquence de fonctionnement fixe, 4 MHz.

Petite astuce : Vous pouvez ter le rgulateur et brancher le


circuit sur une prise USB dun ordinateur. En effet, la prise dlivre
une tension de 5V rgule. Cependant, cette manip reste rserve
aux personnes possdant un minimum de connaissance. En effet,
un mauvais branchement peut dtruire votre PIC.

Ce document est la proprit intellectuelle de son auteur

- 56 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

CHAPITRE 5 : EN BREF, TOUT CE


QUI EST UTILE

Ce document est la proprit intellectuelle de son auteur

- 57 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Le but de cette partie est simple : y rassembler tous les lments vus,
et qui sont ncessaires la programmation du PIC. Bonne
programmation.

Tension de rfrence :

Comparateurs CMCON :

Configuration des comparateurs :

Ce document est la proprit intellectuelle de son auteur

- 58 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Configuration du registre OPTION :

TRISA : (1 pour une entre, 0 pour une sortie)

Ce document est la proprit intellectuelle de son auteur

- 59 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

TRISB :

Registre interruptions INTCON :

Module Timer1 (T1CON) :

PIE1 :

PIR1 :

Ce document est la proprit intellectuelle de son auteur

- 60 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Module Timer2 (T2CON) :

RCSTA :

USART (TXSTA) :

Ce document est la proprit intellectuelle de son auteur

- 61 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Ce document est la proprit intellectuelle de son auteur

- 62 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Ce document est la proprit intellectuelle de son auteur

- 63 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Ce document est la proprit intellectuelle de son auteur

- 64 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Ce document est la proprit intellectuelle de son auteur

- 65 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Rpartitions des pattes du PIC

Ce document est la proprit intellectuelle de son auteur

- 66 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

CHAPITRE 6 : CONCLUSION
Ainsi, comme nous avons pu le voir, le PIC 16F628 possde des
qualits indniables, suprieures celles du PIC 16F84. Cependant, ce
dernier est extrmement bien ancr dans certains milieux, ce qui
explique que le 628 ne soit pas encore trs rpandu, ni trs connu.

Compatible avec le PIC 16F84, le 628 finira un jour par le remplacer.


Etant donn le cot infrieur du 628, il est mme, conomiquement
parlant, plus viable de remplacer les PIC 16F84 par des 628, pour peu
quon puisse en trouver chez le revendeur lectronique du coin.

La grande compatibilit, galement au niveau logiciel, facilite encore


plus la transition, le passage du 84 au 628.

De plus, le matriel de programmation est le mme que pour le 84,


limitant ainsi les investissements, et davoir de multiple matriel.

Tout comme avec le 16F84, le 628 nous permettra de raliser de


nombreux projets avec un minimum de difficults, et de composants,
grce ses fonctions supplmentaires intgres.

Ce document est la proprit intellectuelle de son auteur

- 67 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

CHAPITRE 7 : LEXIQUE
Adresse : correspond lendroit o lon peut trouver les informations recherches

Architecture : terme servant dfinir la faon dont est organise la structure dun Circuit
Intgr, tel un microcontrleur

Asynchrone : a linverse de synchrone, ce terme est utilis pour dsigner des actions
(signaux) ayant un dcalage temporel lun par rapport lautre

Bit : unit de base en informatique

Buffer : zone de mmoire vive permettant de stocker des donnes temporairement

BUS : sorte dautoroutes pour les signaux, les BUS servent


transporter les informations entre deux parties du Circuit Intgr

Code : nom donn au texte constituant un programme informatique

DIL : norme de Circuit Intgr, dfinissant notamment les carts entre les pattes

EPROM : Electrically Erasable Programmable Read Only Memory ; se dit dune mmoire
qui peut scrire et surtout seffacer lectriquement

Flash : nouveau type de mmoire, avec de nouvelles possibilits

Microcontrleur : Circuit Intgr (CI), contenant la fois un processeur,


des mmoires, et des entres/sorties externes

Octet : ensemble de 8 bits

Oscillateur : se dit dun composant, ou ensemble de composants capables de gnrer un


signal rgulier

PCB : nom donn aux typon, servant tirer les plaques de circuit imprim

Port : se dit dun ensemble, dun groupement dentres/sorties

PR2 : Registre appartenant au timer 2, sert la PWM (voir plus loin)

PWM : Pulse Width Modulation (modulation en largeur dimpulsions, utilis notamment dans
les variateurs de lumire ; mode que possde le PIC 628, mode non explicit ici.

RAM : Random Access Memory, aussi appele mmoire vive, ce type de mmoire perd
toutes ses informations stockes, lorsquelle cesse dtre alimente

RISC : Reduced Instruction Set Computer ; se dit dun processeur, ou microcontrleur,


possdant un nombre dinstructions de programmation rduits, limits

Ce document est la proprit intellectuelle de son auteur

- 68 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

Schma dimplantation : schma montrant la faon, et le sens si ncessaire, dont doivent


tre monts les composants sur le circuit imprim

Schma Structurel : schma montrant les reprsentations schmatiques des composants,


avec leurs liaisons lectriques, correspondant aux pistes du PCB

Synchrone : terme utilis pour signifier des actions (signaux) qui se droulent en mme
temps

Tlcharger un programme : action de transfrer le code du PC dans le microcontrleur

TOCKI : mode de la patte RA4, permettant au timer 0 de compter des impulsions externes,
sur front montant ou descendant selon la configuration

USART : Universal Synchronous Asynchronous Receiver Transmitter, partie du 628


permettant la communication avec le monde externe en mode synchrone ou
asynchrone

Ce document est la proprit intellectuelle de son auteur

- 69 -
Document crit par Alexandre GALOD Le PIC 16F628 :lessentiel

CHAPITRE 8 : LIENS INTERNET


UTILES

Herv Hollard, cours de langage C :

- http://perso.club-internet.fr/hhollard/
-http://perso.club-internet.fr/hhollard/prog_pic_c.htm

Adresse pour le programmateur de PIC :

-http://www.jdm.homepage.dk/newpic.htm
-http://www.jdm.homepage.dk/pcb2.htm

Adresse de Microchip :

http://www.microchip.com/

Adresse du compilateur CC5X :

http://www.bknd.com/cc5x/index.shtml

Adresse de lauteur:

http://diablotronic.bzh.bz

Ce document est la proprit intellectuelle de son auteur

- 70 -