Académique Documents
Professionnel Documents
Culture Documents
Microcontrleurs PIC
(Cas du 16f628)
(Version 1.00 de fvrier 2002)
Par
Jacques WEISS
SUPELEC Campus de Rennes
1
2
Introduction ..................................................................................................................................................... 3
Architecture ..................................................................................................................................................... 3
2.1
Unit centrale........................................................................................................................................... 4
2.1.1
Instructions ...................................................................................................................................... 5
2.1.1.1 Format des instructions................................................................................................................ 5
2.1.1.2 Squencement des instructions .................................................................................................... 5
2.1.1.3 Jeu dinstructions ......................................................................................................................... 5
2.2
Mmoire .................................................................................................................................................. 6
2.2.1
Mmoire programme ....................................................................................................................... 6
2.2.2
Mmoire donnes (Registres) .......................................................................................................... 7
2.2.2.1 STATUS ...................................................................................................................................... 8
2.2.2.2 OPTION ...................................................................................................................................... 9
2.2.2.3 INTCON ...................................................................................................................................... 9
2.2.2.4 PIE1 et PIR1 ................................................................................................................................ 9
2.2.2.5 PCON .......................................................................................................................................... 9
2.2.3
Compteur Ordinal (PC, PCL et PCLATH) .................................................................................... 10
2.2.3.1 Adressage indirect (INDF et FSR)............................................................................................. 10
2.3
Ports dE/S............................................................................................................................................. 11
2.3.1
Port A............................................................................................................................................. 11
2.3.2
Port B............................................................................................................................................. 11
2.4
Priphriques ......................................................................................................................................... 12
2.4.1
Timer 0 .......................................................................................................................................... 12
2.4.2
Comparateurs analogiques............................................................................................................. 12
2.4.3
Tension de rfrence...................................................................................................................... 13
2.4.4
EEPROM Donnes ........................................................................................................................ 14
2.5
Fonctions Spciales ............................................................................................................................... 15
2.5.1
Mot de configuration ..................................................................................................................... 15
2.5.2
Configuration de lhorloge............................................................................................................. 16
2.5.3
Interruptions................................................................................................................................... 16
2.5.4
Programmation ICSP ..................................................................................................................... 17
3
Bibliographie ................................................................................................................................................. 18
Page 2
Page 3
Introduction
18
17
3
4
5
6
7
PIC16f628
RA2/AN2/Vref
RA3/AN3/CMP1
RA4/T0CK1/CMP2
RA5/MCLRn/THV
VSS
RB0/INT
RB1/RX/DT
RB2/TX/CK
RB3/CCP1
16
15
14
13
12
11
10
R A 1/A N 1
R A 0/A N 0
RA7/OSC1/CLKIN
RA6/OSC2/CLKOUT
VDD
RB7/T1OSI
RB6/T1OSO/T1CKI
RB5
RB4/PGM
VSS : masse
VDD : alimentation (de 3 5,5 Volts)
Il est ainsi possible, dans certaines configurations, de profiter de 16 broches dE/S (en fait 16 sorties et 15
entres) sur le composant.
En priphrie de lunit centrale, on peut recenser les ressources suivantes sur le composant :
Mmoire Flash Programme : 2048 instructions
Mmoire RAM Donnes : 224 Octets
Mmoire EEPROM Donnes : 128 Octets
Ports dE/S : 2 ports 8 bits
Priphriques :
3 Timers (8 et 16 bits)
1 module Capture/Compare/PWM
2 comparateurs analogiques
1 rfrence de tension
1 USART (mission/rception srie synchrone et asynchrone)
Architecture
Le microcontrleur est compos dune unit centrale et de priphriques ; le fonctionnement est gr par un
squenceur qui, en fonction des modes opratoires, fournit les signaux de contrle chaque module.
Le fonctionnement de lunit centrale est de type RISC (Reduced Instruction Set Computer), le jeu
dinstructions est rduit 35.
Microcontrleurs PIC (16f628) ; J. WEISS, Suplec Campus de Rennes ; fvrier 2002
Page 4
Bus Donnes
13
Program Counter
Flash
Program
Memory
File
Registers
(8 levels)
(13 bits)
14
Instr. Register
Direct Addr.
Indirect
8 Addr.
FSR
8
Instr.
Decode
& ctrl
Timing
Generation
OSC1/CLKIN
OSC2/CLKOUT
Power-Up
Timer
Oscillator
Start-UP Timer
Power-On
Reset
WatchDog
Timer
Brown-Out
Detect
Low Voltage
Programming
MCLRn
ALU
STATUS
PORT A
RA0/AN0
RA1/AN1
RA2/AN2/Vref
RA3/AN3/CMP1
RA4/T0CK1/CMP2
RA5/MCLRn/THV
RA6/OSC2/CLKOUT
RA7/OSC1/CLKIN
PORT B
Bus Instructions
Data EEPROM
RAM
STACK
RB0/INT
RB1/RX/DT
RB2/TX/CK
RB3/CCP1
RB4/PGM
RB5
RB6/T1OSO/T1CKI
RB7/T1OSI
Vers priphriques :
Comparateurs, Timers, Vref, USART, CCP
Vdd, Vss
Registres
(RAM)
8
ALU
W
STATUS
O :
(op) reprsente une opration arithmtique ou logique
Dest. Reprsente la destination des donnes (W ou le REGISTRE concern)
Page 5
2.1.1
Instructions
OPCODE
d
d
f
f (FILE #)
= 0 :
W est la destination
= 1 :
f est la destination
: adresse du registre f (7 bits)
10
OPCODE
b
f
b (BIT #)
f (FILE #)
OPCODE
k
k (literal)
11 10
OPCODE
k
k (literal)
(W <- 0x55)
SP1
4. MOVF
PORTA, W
Fetch 1
Exec. 1
Fetch 2
Exec. 2
Fetch 3
Exec. 3
Fetch 4
Flush
Fetch SP1 Exec. SP1
Page 6
Mnmonique,
oprande
Description
f, d
f, d
f, d
f, d
f, d
f, d
f, d
f, d
f, d
f, d
f
f, d
f, d
f, d
f, d
f, d
Add W and f
AND W with f
Clear f
Clear W
Complement f
Decrement f
Decrement f Skip if 0
Increment f
increment f Skip if 0
Inclusive OR W with f
Move f
Move W to f
No Operation
Rotate Left f through Carry
Rotate Right f throuch Carry
Substract W from f
Swap nybbles with f
Exclusive OR W with f
00
0111
dfff
ffff
00
0101
dfff
ffff
00
0001
1fff
ffff
00
0001
0xxx
xxxx
00
1001
dfff
ffff
00
0011
dfff
ffff
00
1011
dfff
ffff
00
1010
dfff
ffff
00
1111
dfff
ffff
00
0100
dfff
ffff
00
1000
dfff
ffff
00
0000
1fff
ffff
00
0000
0xx0
0000
00
1101
dfff
ffff
00
1100
dfff
ffff
00
0010
dfff
ffff
00
1110
dfff
ffff
00
0110
dfff
ffff
01
00bb
bfff
ffff
01
01bb
bfff
ffff
01
10bb
bfff
ffff
01
11bb
bfff
ffff
C, DC, Z
Z
Z
Z
Z
Z
Z
Z
Z
C
C
C, DC, Z
Z
f, b
f, b
f, b
f, b
Bit Clear f
Bit Set f
Bit Test f, Skip if Clear
Bit Test f, Skip if Set
k
k
k
k
k
k
k
k
k
11
111x
kkkk
kkkk
11
1001
kkkk
kkkk
10
0kkk
kkkk
kkkk
00
0000
0110
0100
10
1kkk
kkkk
kkkk
11
1000
kkkk
kkkk
11
00xx
kkkk
kkkk
00
0000
0000
1001
11
01xx
kkkk
kkkk
00
0000
0000
1000
00
0000
0110
0011
11
110x
kkkk
kkkk
11
1010
kkkk
kkkk
C, DC, Z
Z
T0n, PDn
Z
T0n, PDn
C, DC, Z
Z
Notations
f
d
k
b
2.2 Mmoire
Ce microcontrleur est bas sur une architecture de processeur de type Harvard, cest dire quil y a
sparation des bus dinstructions et de donnes ainsi que de lespace dadressage.
2.2.1
Mmoire programme
Les instructions du programme sont stockes sur 14 bits dans une zone mmoire dont ladresse stend de
000h 7FFh (2048 lignes de programme pour le 16f628).
Il y a 2 adresses rserves pour les vecteurs dinitialisation (Reset et interruptions) ; le processeur possde
une pile de 8 niveaux pour grer les adresses de retour de sous programmes ; il ny a aucun contrle sur ltat de
la pile par le processeur.
Microcontrleurs PIC (16f628) ; J. WEISS, Suplec Campus de Rennes ; fvrier 2002
Page 7
CALL, Branch
P ile
(8 niveaux)
Return
PC[12:0]
Vecteur de RESET
000h
Vecteur dinterruption
004h
@ instruction
005h
Mmoire
programme
7F F h
2.2.2
La mmoire donnes correspond aux registres (File Registers) vus par lunit centrale ; ces registres sont de
2 types :
Registres dusage gnral : ils permettent le stockage de variables; ils sont accessibles en lecture et en
criture par le programme ; il y a 224 registres de ce type pour le 16f628.
Le jeu dinstructions du processeur ne permet ladressage des registres que sur 7 bits (128 registre),
lespace mmoire est alors dcompos en 4 bancs de 128 registres ; la cartographie de la mmoire donnes est
donne par la figure suivante ; les zones grises ne sont pas implmentes.
Page 8
Banc 0
Banc 1
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
Indirect. Addr.
TMR0
PCL
STATUS
FSR
PORTA
PORTB
PCLATH
INTCON
PIR1
TMR1L
TMR1H
T1CON
TMR2
T2CON
CCPR1L
CCPR1H
CCP1CON
RCSTA
TXREG
RCREG
CMCON
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
Banc 2
Indirect. Addr.
OPTION
PCL
STATUS
FSR
TRISA
TRISB
PCLATH
INTCON
PIE1
PCON
PR2
TXSTA
SPBRG
EEDATA
EEADR
EECON1
EECON2
VRCON
80
81
82
83
84
85
86
87
88
89
8A
8B
8C
8D
8E
8F
90
91
92
93
94
95
96
97
98
99
9A
9B
9C
9D
9E
9F
A0
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
Indirect. Addr.
TMR0
PCL
STATUS
FSR
PORTB
PCLATH
INTCON
48
Registres
d'usage
gnral
EF h
F0 h
70 h
h
h
h
h
h
h
h
h
h
h
h
h
Indirect. Addr.
OPTION
PCL
STATUS
FSR
TRISB
PCLATH
INTCON
180
181
182
183
184
185
186
187
188
189
18A
18B
h
h
h
h
h
h
h
h
h
h
h
h
14F h
1F0 h
Accs
70h - 7Fh
7F h
100
101
102
103
104
105
106
107
108
109
10A
10B
120 h
80
Registres
d'usage
gnral
96
Registres
d'usage
gnral
Banc 3
Accs
70h - 7Fh
FF h
1F0 h
Accs
70h - 7Fh
1FF h
1FF h
2.2.2.1 STATUS
Ce registre permet de choisir le banc auquel on veut accder et de lire les drapeaux (Flags) de lALU et du
timer.
STATUS
R/W-0
R/W-0
R/W-0
R-1
R-1
R/W-x
R/W-x
R/W-x
03h ou 83h
IRP
RP1
RP0
TOn
PDn
DC
bit 7
bit 0
Page 9
2.2.2.2 OPTION
Ce registre permet de configurer cetains paramtres du Port B et le Timer 0.
OPTION
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
81h
RBPUn
INTDEDG
T0CS
T0SE
PSA
PS2
PS1
PS0
bit 7
bit 0
2.2.2.3 INTCON
Ce registre contient les bits de validation et les drapeaux des sources principales dinterruptions.
INTCON
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-x
0Bh ou 8Bh
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
bit 7
bit 0
Drapeaux dinterruptions :
T0IF : Timer 0
INTF : RB0/INT
RBIF : changement de RB7-RB4
R/W-0
R/W-0
R/W-0
R/W-0
8Ch
EEIE
CMIE
RCIE
TXIE
R/W-0
R/W-0
R/W-0
CCPIE
TMR2IE
TMR1IE
bit 7
PIR1
bit 0
R/W-0
R/W-0
R/W-0
R/W-0
0Ch
EEIF
CMIF
RCIF
TXIF
R/W-0
R/W-0
R/W-0
CCPIF
TMR2IF
TMR1IF
bit 7
bit 0
2.2.2.5 PCON
Ce registre sert grer les conditions de rveil du processeur (Resets, Sleep, Brown-Out)
@
PCON
R/W-1
8Eh
OSCF
bit 7
R/W-q
R/W-q
PORn
BODn
bit 0
Page 10
2.2.3
Le compteur ordinal a une longueur de 13 bits (on en utilise 11 pour les 2048 lignes de code du 16f628)
alors que le processeur ne gre les donnes que sur 8 bits et les adresses que sur 11 bits. Ainsi, le compteur est
considr en 2 morceaux, la partie basse (8 bits LSB) est prsente dans le registre PCL, alors que la partie haute
nest accessible quindirectement (PCLATH)
P CH
12
P CL
8
PC
8 bits
de et vers l ALU
P CLA TH
7
0
P CH
12
P CL
8
PC
P CLA TH
7
11 bits
du registre instructions
ADRESSAGE DIRECT
S T AT US
R P0 R P1
ADRESSAGE INDIRECT
S T AT US
0
IR P
@MSB
Re g istre F S R
7
@MSB
@LSB
(banc)
(banc)
2
0 0
0 1
1 0
00h
@LSB
1 1
180h
RAM
(Registres)
7Fh
1FFh
Page 11
Exemple dadressage indirect, on envoie 4 octets partir de ladresse DEPART sur le Port B :
MOVLW
MOVWF
MOVLW
MOVWF
Boucle
MOVF
MOVWF
INCF
DECFSZ
GOTO
DEPART
FSR
d'4'
COMPTEUR
INDF,w
PORTB
FSR,f
COMPTEUR, f
Boucle
;
;
;
:
2.3.1
Port A
A7 (RA7/OSC1/CLKIN) : broche dentre pour le signal lhorloge
A6 (RA6/OSC2/CLKOUT) : broche de sortie pour le signal dhorloge
A5 (RA5/MCLRn/THV) : broche de Reset et de programmation haute tension
A4 (RA4/T0CKI)
: E/S Drain Ouvert, entre dhorloge pour le Timer 0
A3 (RA3/AN3)
: E/S pour les comparateurs analogiques
A2 (RA2/AN2/Vref)
: entre pour les comparateurs analogiques et sortie de la tension de rfrence interne)
A1 (RA1/AN1)
: entre pour les comparateurs analogiques
A0 (RA0/AN0)
: entre pour les comparateurs analogiques
2.3.2
Port B
B7 (RB7/T1OSI)
B6 (RB6/T1OSO/T1CKI)
B5 (RB5) :
B4 (RB4/PGM)
B3 (RB3/CCP1)
B2 (RB2/TX/CK)
B1 (RB1/RX/DT) :
B0 (RB0/INT) :
PORTA
PORTB
STATUS, RP0
OPTION_REG,7
TRISA
0x02
TRISB
STATUS, RP0
; passage au banc 1
; Pas de Pull-Up sur PORT B,
; PORTA en sortie
; PORT B en SORTIE sauf RB1 (RxD)
; retour au banc 1
Page 12
2.4 Priphriques
2.4.1
Timer 0
Le module Timer 0 est un compteur 8 bits (TMR0), accessible en lecture et en criture, dont la retenue
alimente un drapeau dinterruption ; lhorloge de ce compteur peut tre interne ou externe par lintermdiaire
dun prdiviseur (3 bits).
Bus de donnes
Fosc/4
0
8
RA4/T0CKI
1
1
Sync.
(2 cycles)
DIVISEUR
3
T0SE
T0CS
PS[2:0]
TMR0
2.4.2
Comparateurs analogiques
Le module est compos de 2 comparateurs analogiques, aliments par le port A et la tension de rfrence
interne.
CMCON
R-0
R-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
1Fh
C2OUT
C1OUT
C2INV
C1INV
CIS
CM2
CM1
CM0
bit 7
bit 0
Les registres associs au module comparateurs sont : CMCON, VRCON, INTCON, PIR1, PIE1 et TRISA.
Page 13
2.4.3
Tension de rfrence
Le module de rfrence est constitu dun rseau de 16 rsistances permettant dalimenter les comparateurs
avec une tension de rfrence.
VRCON
R/W-0
R/W-0
R/W-0
9Fh
VREN
VROE
VRR
R/W-0
R/W-0
R/W-0
R/W-0
VR3
VR2
VR1
VR0
bit 7
bit 0
Page 14
2.4.4
EEPROM Donnes
Le composant dispose dune zone mmoire non-volatile (EEPROM) de 128 Octets ; cette mmoire nest
accessible que par adressage indirect via un registre propre au module.
Il faut savoir quune mmoire EEPROM offre un fonctionnement dissymtrique :
Lecture : le fonctionnement est comparable celui dune RAM
Ecriture : lopration demande un certain temps avant dtre ralise (mise en route dune circuiterie
dlvation de tension et effacement de la cellule) dpendant des conditions (alimentation, temprature,
technologie) ; les composants prsentent un vieillissement chaque criture qui se traduit par un ralentissement
de lcriture.
Effacement : il permet de placer toutes les cellules mmoire 1.
Pour limiter lusure de lEEPROM, il peut tre intressant danalyser le contenu de la cellule mmoire pour
savoir sil ny a que des 0 inscrire (pas besoin deffacer la cellule dans ce cas l).
Il y a 4 registres pour rgir le module :
EECON1 et EECON2 : registres de configuration
EEADR : registre (7 bits) pointant sur ladresse concerne
EEDATA : registre dindirection
Le registre EECON1 ne contient que 4 bits pour le contrle des oprations
@
EECON1
9Bh
bit 7
R/W
R/W
R/W
R/W-x
R/W-0
R/S-0
R/S-x
WRERR
WREN
WR
RD
bit 0
La manipulation de la mmoire EEPROM ne doit se faire que suivant un protocole impos, voici des
exemples :
La lecture est relativement facile mettre en uvre, elle se fait par adressage indirect et lancement dun
ordre de lecture ; lopration se faisant en 1 cycle, il ny a pas se soucier de la disponibilit de la mmoire.
;************************************************************************
Lecture de la case EEPROM pointe par EEADR ; retour dans EEDATA
Bsf
STATUS,RP0
; Passage au banc mmoire 1
bsf
EECON1,RD
; Ordre de lecture EEPROM
bcf
STATUS,RP0
; Retour au banc mmoire 0
Lcriture est plus complexe manipuler du fait de lobligation dcrire dans le registre virtuel EECON2 la
squence 55h puis AAh ; lopration durant plusieurs cycles, il faut attendre la fin de lcriture (par boucle
(polling) ou par interruption).
Page 15
;************************************************************************
Boucle dattente de lcriture effective (peut aussi tre gr sous forme dinterruption)
WAIT_EE
btfsc EECON1,WR
goto
WAIT_EE
;************************************************************************
bcf
EECON1,EEIF
bcf
EECON1,WREN
; Protection d'criture EEPROM
bcf
STATUS,RP0
; Retour au banc mmoire 0
bsf
INTCON,GIE
; validation des interruptions
Le choix de ces configurations se fait au moment du chargement du programme dans la mmoire Flash :
2.5.1
Mot de configuration
Aussi dnomm Device Fuses , ce mot est stock dans un registre spcial de 14 bits plac ladresse
2007h ; ce registre nest pas accessible par le programme.
CONFIG
2007h
CP1
CP0
CP1
CP0
CPD
LVP
BODEN
MCLRE
FOSC2
PWRTEn
WDTE
FOSC1
bit 13
FOSC0
bit 0
CP0 et CP1
: protection partielle ou totale du code programme
CPD
: protection de la mmoire EEPROM
LVP
: validation de la programmation basse tension
BODEN (Brown-Out Detect Enable) : supervision de lalimentation
MCLRE
: attribution de la broche RA5 en E/S ou pour le reset
PWRTEn (Power-Up Timer Enable) : temporisation la mise sous tension
WDTE (Watchdog Enable) : chien de garde
FOSC[2 :0]
: configuration de lhorloge (8 modes)
Voici un exemple de dclaration de configuration ; les mots cls sont fournis par le fichier p16f628.inc de
MPLAB :
list
p=16f628
#include <p16f628.inc>
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _EXTCLK_OSC &
&_MCLRE_ON
;
Code Protection Off
WatchDog dsactiv
;
Brown-Out Detect inhib
;
Power-Up Timer dsactiv
;
External Clock (sans CLKOUT sur RA6)
;
Low Voltage Programming inhib
;
Reset sur RA5/MCLRn
;
_LVP_OFF
Page 16
2.5.2
Configuration de lhorloge
ER (External Resistor) : lhorloge est ralise par un oscillateur de type RC, la capacit est interne au
composant et la rsistance, externe, permet de fixer la frquence dsire ; ce mode existe en 2 variantes
suivant que lon utilise la broche RA6 en E/S ou en sortie dhorloge (CLKOUT)
INTRC (Internal RC) : mme principe que prcdemment mais avec une rsistance interne.
2.5.3
Interruptions
TMR1IF
E
TMR2IF
E
CCPI F
E
CMI F
E
TXI F
E
RCI F
E
EEI F
E
T0I F
E
INT F
E
RBIF
E
Interruption
vers le CPU
GIE
PEIE
Page 17
0x04
W_TEMP
STATUS,W
STATUS_TEMP
STATUS,RP0
INTCON,GIE
INTCON,T0IF
SPInt_Timer
PIR1,CMIF
SPInt_Compare
INTCON,RBIF
SPInt_RB
STATUS,RP0
; on se place sur le banc 0
STATUS_TEMP,W
; instructions "Pseudo POP"
STATUS
; STATUS <- STATUS_TEMP(swapped)
W_TEMP, W
; W <- W_TEMP
; retour au programme et revalidation de INTCON, GIE
Il ne faut pas oublier que les drapeaux sont toujours actionns, indpendamment de la validation de
linterruption concerne.
2.5.4
Programmation ICSP
La programmation consiste charger le code du programme dans la mmoire Flash et des donnes dans la
mmoire EEPROM Donnes . La technologie de ces mmoires requiert une forte tension (environ 12 Volts)
pour polariser les cellules ; le 16f628 dispose dune circuiterie interne (montage pompage de charge) capable
de gnrer cette tension, on parlera alors de programmation basse tension (LVP : Low Voltage
Programming) ; il est aussi possible de fournir cette haute tension au composant, on se place alors dans le mode
de programmation haute tension (THV) ; le choix du mode est fait par le mot de configuration.
La programmation se fait par liaison srie synchrone ; il faut alors 3 fils pour raliser lopration :
1.
2.
3.
Ligne pour forcer le composant en mode de programmation (RA5 en mode THV ou RB4 pour le mode LVP)
Ligne dhorloge (RB6)
Ligne de donnes (RB7).
Ce principe, dnomm, ICSP (In-Circuit Serial Programming), permet de programmer le composant InSitu cest dire sur la carte de lapplication, par lintermdiaire dun simple connecteur ; il faut toutefois
prendre certaines prcautions en ce qui concerne les branchements au composant :
Page 18
Bibliographie
Documents techniques MICROCHIP
DS40300B : PIC16f62x Data Sheet
DS30277b : In-Circuit Serial Programming
DS39025e : EEPROM Memory Programming Specification
Livres :
Microcontrleur PIC C. Tavernier, Editions Dunod
Apprendre la programmation des PIC P. Mayeux, Editions Dunod
Sites WEB (en franais) :
http://www.supelec-rennes.fr/ren/fi/elec : pages Suplec
http://www.aurelienr.com/electronique.htm : ralisations base de PIC
http://perso.wanadoo.fr/yves.heilig/ : lectronique et robotique (autour de PIC)