Mesure dans l`air et par effet thermique de l`intensité de

publicité
Haute Ecole de la Ville de Liège
(Catégorie technique)
Institut Supérieur d’Enseignement Technologique
(I.S.E.T.)
Rue Sohet, 21 – 4000 Liège
Mesure dans l’air et par effet thermique de
l’intensité de courant d’un faisceau cyclotron
Travail de fin d’études présenté par
MARCHAL François
En vue de l’obtention du diplôme de
Bachelier en
Informatique et systèmes, finalité Technologies de l’informatique
Orientation : Architecture des réseaux
Année académique 2007-2008
Haute Ecole de la Ville de Liège
(Catégorie technique)
Institut Supérieur d’Enseignement Technologique
(I.S.E.T.)
Rue Sohet, 21 – 4000 Liège
Mesure dans l’air et par effet thermique de
l’intensité de courant d’un faisceau cyclotron
Travail de fin d’études présenté par
MARCHAL François
En vue de l’obtention du diplôme de
Bachelier en
Informatique et systèmes, finalité Technologies de l’informatique
Orientation : Architecture des réseaux
Année académique 2007-2008
Remerciements
Qu’il me soit permis de remercier ici les personnes qui m’ont aidé à réaliser ce travail.
Ma reconnaissance va tout d’abord à Mr. H-P. Garnir et Mr. M. Clar, mes maîtres de
stage (et à penser), pour tout ce qu’ils m’ont appris en me guidant dans ce projet tout en laissant
beaucoup de place à mes idées et à mes avis techniques. Leur patience, leur disponibilité et leur
esprit pédagogique ont été pour moi une grande source de confiance et d’inspiration.
Un merci particulier à Mr. S. Rakkaa pour ses conseils techniques avisés, sa grande
maîtrise du sujet, son amitié et sa générosité de tous les instants.
A l’ensemble de l’équipe de l’IPNAS, j’adresse un merci sincère pour son accueil et sa
convivialité. Je m’y suis senti à ma place durant ces trois mois.
Je n’oublierai pas les professeurs de l’ISET, et spécialement Monsieur Jeanray, qui m’ont
permis d’évoluer au long de ces trois années. Je les remercie pour leur patience et leur tolérance
avec mon caractère particulier, ainsi que pour leur humour et leur accessibilité. Je garderai de mes
études le souvenir d’excellents moments.
Un merci tout simple pour terminer. Je m’adresse ici à ma famille sans laquelle je n’aurais
pas eu l’énergie ni la volonté de mener à bien ma formation. Je la remercie pour son soutien de
tous les jours.
Table des matières
1. Introduction .......................................................................................................................... 1
1.1 Pourquoi un TFE ? ......................................................................................................2
1.2 Où est-il réalisé ? .........................................................................................................2
1.3 Sujet du TFE................................................................................................................2
1.4 Buts du TFE ................................................................................................................2
1.5 Organisation du mémoire............................................................................................2
2. Dispositif de mesure ............................................................................................................. 3
2.1 Description générale....................................................................................................4
2.2 Tête de mesure ............................................................................................................6
2.3 Capteurs de température et entrées analogiques........................................................8
2.3.1 Détection par PT100..............................................................................................8
2.3.2 Détection par LM35..............................................................................................9
2.4 Dispositif d’interfaçage ............................................................................................. 10
2.4.1 Vue générale........................................................................................................ 10
2.4.2 Carte électronique............................................................................................... 11
2.4.3 Partie analogique ................................................................................................ 13
2.5 Convertisseurs ........................................................................................................... 15
2.5.1 Analogique / Digital........................................................................................... 15
2.5.2 Digital / Analogique........................................................................................... 16
2.6 Microprocesseur et bus SPI ...................................................................................... 17
2.7 Circuits annexes ........................................................................................................ 18
2.8 Interfaces Internet : le Module Xport........................................................................ 19
2.9 Schémas.....................................................................................................................25
2.9.1 Schéma de principe.............................................................................................25
2.9.2 Schéma de traçage ..............................................................................................26
2.9.3 Techniques de traçage........................................................................................27
2.9.4 Carte terminée.....................................................................................................29
2.10 Listing câblage.........................................................................................................30
3. Logiciels............................................................................................................................... 31
3.1 Outils de développement...........................................................................................32
3.2 Cahier des charges ....................................................................................................32
3.3 Partie serveur : microcontrôleur (langage C)............................................................32
3.4 Partie client : module C# ..........................................................................................32
3.5 Protocole d’échange ..................................................................................................33
3.6 Remarques.................................................................................................................33
3.7 Listings complets et explications des programmes..................................................34
3.7.1 Programme serveur (en C)..................................................................................34
3.7.2 Programme client (en C#)..................................................................................43
4. Phases de tests et mise au point......................................................................................... 52
4.1 Problèmes rencontrés et solutions.............................................................................53
4.2 Résultats ....................................................................................................................54
5. Conclusions ......................................................................................................................... 55
6. Annexes ............................................................................................................................... 57
7. Sitographie .......................................................................................................................... 81
1. Introduction
1
1.1 Pourquoi un TFE ?
Un TFE est une occasion souvent unique de pratiquer de manière la plus autonome
possible les différentes compétences acquises lors des trois années d’études supérieures. Le TFE
nous permet de nous dépasser en réalisant une expérience inédite pouvant intéresser d’autres
acteurs de la profession.
1.2 Où est-il réalisé ?
Mon TFE a été réalisé à l’université de Liège dans le service de l’IPNAS (Institut de
Physique Nucléaire Atomique et de Spectroscopie). Ce service se situe au Sart Tilman, Bâtiment
15, allée du 6 août. Il est dirigé par Monsieur le professeur H-P Garnir.
L’IPNAS dépend de la faculté des sciences. On y fait principalement de la recherche mais aussi
des irradiations pour l’industrie et des analyses dans le domaine de l’archéométrie avec différents
accélérateurs de particules (un cyclotron et deux Van de Graff).
L’IPNAS emploie une trentaine de personnes. L’Institut m’a proposé de réaliser un travail de
développement concernant la mesure du courant extrait de faisceau cyclotron.
1.3 Sujet du TFE
Mon sujet s’intitule « Mesure dans l’air et par effet thermique du courant faisceau
cyclotron ». Les faisceaux de particules chargées se déplacent sous vide et la mesure de leur
intensité ne pose généralement pas de problème dans ces conditions. Mais dès qu’une mesure de
ce courant de particules doit s’effectuer dans l’air, il devient très difficile, et pour ainsi dire
impossible de comptabiliser les « charges » arrivant sur l’échantillon. Ce sont ces conditions
spéciales qui retiendront toute notre attention dans ce travail. En effet, toutes les irradiations
effectuées pour l’industrie (automobile en particulier) sont réalisées sous faisceau extrait (à l’air).
Si nous plaçons dans la trajectoire de ce faisceau une pastille (en aluminium) sa température sera
proportionnelle à l’énergie du faisceau qui la frappe et nous pourrons en déduire son intensité.
1.4 Buts du TFE
Une bonne connaissance du courant utilisé est d’une importance capitale pour évaluer la
dose reçue par la cible, d’autant que souvent, il faut reproduire les mêmes quantités d’isotopes.
Dans le but d’évaluer correctement l’intensité du faisceau dans de telles conditions, nous
proposons une nouvelle approche basée sur une sonde thermique, développée à l’IPNAS, pour
mesurer le courant faisceau entre 0,1 et 5 µA dans la tranche d’énergie de 2 à 15 MeV.
1.5 Organisation du mémoire
Mon travail comporte trois parties principales :
1- une description des éléments mécaniques et électroniques qui composent notre
appareil
2- les logiciels.
3- les résultats et les tests en conditions réelles
Ensuite, les conclusions sont suivies d’annexes qui reprennent les données techniques de certains
composants.
2
2. Dispositif de
mesure
3
2.1 Description générale
Le but du travail est de réaliser un dispositif électromécanique permettant de mesurer
dans l'air l'intensité du courant lors d'une irradiation par un faisceau de particules produit par un
cyclotron.
Les courants concernés sont de l'ordre de quelque micro ampères, mais, vu que les
"voltages" à considérer sont de plusieurs millions de volts (5 à 20 MeV), les puissances mises en
jeu sont de l'ordre de quelque Watt. Les courants dont nous parlons sont en réalité formés par un
flux de particules (souvent des protons) qui se déplacent toutes à peu près à la même vitesse en
formant un faisceau qui, sous vide se déplace sans entrave mais, dans l'air, finit par être absorbé
sur une distance de quelques dizaines de centimètres. Dans un gaz, le problème de la mesure par
un "ampèremètre" de ces courants n'est pas simple car il apparaît des charges secondaires
produites par l'ionisation due aux chocs des particules avec les atomes de l'air. En effet un proton
de 10 MeV a une vitesse de ≈44 mm/ns (soit environ le septième de la vitesse de la lumière) et il
arrache plusieurs centaines d'électrons par centimètre tout au long de son passage dans l'air. Le
"courant" de protons (charges positives) qui nous intéresse, s'accompagne donc aussi de celui de
nombreux électrons dit de "convoi" (charges négatives) qui faussent complètement les mesures.
Cependant, l'effet mécanique des électrons de convoi est négligeable par rapport à l'apport
d'énergie induite par les chocs des protons heurtant une cible. L'échauffement de la cible est donc
directement lié au dépôt d'énergie des particules lourdes qui peut simplement se calculer en
utilisant la loi de Joule :
W=IV
Connaissant V (l'énergie des particules en MeV), on trouve le courant si l'on peut mesurer
W. La mesure de W se fait en suivant l'évolution de la température de la capsule lorsqu'elle est
placée dans le faisceau (cf. §4.2 Résultats).
L'instrument de mesure que nous avons décrit doit pouvoir intégrer dans l'ensemble des
instruments du laboratoire. La philosophie générale actuellement adoptée repose sur la notion
« d’instruments virtuels » connectés par Intranet. Notre montage doit donc être capable de
dialoguer sur Internet en mode TCP/IP. Une telle contrainte implique un logiciel complexe :
serveur web, gestion des ports, module de configuration, limitation des accès vis-à-vis des
machines extérieures, etc.
Pour simplifier notre programmation, nous allons utiliser un module existant qui a deux rôles :
- Assurer toute la gestion Internet (serveur, et configurateur)
- Simuler pour l'utilisateur une liaison série bidirectionnelle (type RS232)
Grâce à ce type de module, on peut très facilement faire transiter une information sur
Internet puisque, au niveau de la programmation locale, il suffit d'être capable d'établir une liaison
série, ce que la plupart des microcontrôleurs permettent de faire très simplement. L'établissement
d'une liaison inter modules par Internet est donc très simple à programmer.
Le module de communication choisi est le XPort de Lantronix.
4
Il s'agit d’un petit bloc de quelques cm³ qui présente sur une de ses faces une prise RJ45
directement compatible Internet. Le module fonctionne grâce à un microprocesseur tournant à
88 MHz qui contrôle tout le logiciel de connexion et il peut même abriter des pages d'un serveur
web dans une mémoire flash de 512k. Le modèle dispose aussi d'une connexion RS232 classique
fonctionnant à des vitesses de 300 à 921600 bauds qui assure le transcodage bidirectionnel entre
les messages TCP/IP et la ligne série. Son fonctionnement sera décrit plus loin (cf. §2.8
Interfaces Internet : le Module Xport).
Le dispositif de mesure se compose de plusieurs parties, la tête de mesure, l’électronique
de gestion et les logiciels d’interfaçage. Nous allons décrire successivement et en détail ces parties.
5
2.2 Tête de mesure
La tête du détecteur est formée d’une capsule en aluminium contenant 5 résistances
détectrices de température connectées en série (PT100 – RTD). Le RTD contient un fil de platine
de 100 à 0°C qui, dans une gamme entre 0 et 150°, évolue presque de façon linéaire avec la
température. Il est à noter qu’un transducteur RTD a, de par sa composition, une très bonne
immunité contre les dommages que peuvent causer les radiations.
Les mouvements de la tête de mesure sont contrôlés par un petit moteur de moins de 1
centimètre de diamètre et de 5 centimètres de longueur.
Extrait du poster présenté à la société Belge de Physique à Bruxelles.
Photo des 5 PT100 collées sur le support.
6
Tête de mesure.
Système de détection en place.
La photo montre les deux positions de la pastille : dans le faisceau et hors du faisceau
Extrait du poster présenté à la société Belge de Physique à Bruxelles.
7
2.3 Capteurs de température et entrées analogiques
2.3.1 Détection par PT100
Pour commencer, il s’agit de mettre au point la base du projet : l’utilisation des PT100.
Une PT100 est une résistance variant en fonction de sa température. Cette variation est connue.
Ci après, courbe de réponse d’une PT100
Le choix s’est porté sur des PT100 version SMD pour minimiser l’inertie thermique de
l’ensemble.
8
2.3.2 Détection par LM35
Un LM35 est un circuit intégré capteur de température dont la tension de sortie est
linéairement proportionnelle à sa température. Il n’a pas besoin de calibration extérieure et sort
directement une valeur en degrés centigrades. Il fournit 10mV par degré centigrade, aucune
correction d’amplification n’est nécessaire avant d’arriver sur le convertisseur analogique / digital.
20°C = 200mV.
Avantages :
- Calibré directement en degrés Celsius
- Echelle linéaire de 10mV / C°
- Précision de 0,5 ° (à +25°C)
- Fonctionnel entre -55° et +150°
- Faible prix
- Accepte une tension d’entrée entre 4V et 30V
- Consommation inférieure à 60 µA
Les LM35 ne supportent pas les radiations (neutrons), ils devront donc être écartés physiquement
du capteur à PT100.
Le développement et la réalisation mécanique du dispositif a été faite sans l’atelier de mécanique
de l’IPNAS. Nous avions à notre disposition le premier prototype de l’instrument qui a été utilisé
pour tester notre logiciel et notre carte d’interface.
9
2.4 Dispositif d’interfaçage
Le signal provenant de la tête de mesure est transmis à un pico ordinateur situé en dehors
de la zone des irradiations qui prend 10 fois par seconde la température de la capsule. Ce module
contrôle la position de la pastille et est connecté à Internet. Il agit comme un serveur web et peut,
en cas de besoin, être contacté et contrôlé par un navigateur internet.
2.4.1 Vue générale
10
2.4.2 Carte électronique
Toute l’électronique de gestion est placée sur une plaque de circuit imprimé au format
européen (dimension 16 cm par 10 cm).
La plaque est divisée en 2 grandes parties, la partie analogique et la partie logique. Elles
sont séparées au niveau de leurs masses pour ne pas que la partie logique perturbe la partie
analogique.
La partie analogique (entourée du cadre blanc dans le schéma) contient les éléments suivants :
- Le convertisseur digital / analogique.
- Le convertisseur analogique / digital.
- Les amplificateurs opérationnels.
- Le régulateur de tension 2,5V.
11
La partie logique contient les éléments suivants :
- L’atmel 162.
- L’ Xport.
- La mémoire flash.
- Les relais.
- Le quartz de 7,3 MHz.
- Le régulateur de tension 3,3V.
- Le régulateur de courant constant.
Nous allons décrire ces éléments de façon plus détaillée.
12
2.4.3 Partie analogique
13
Fonctionnement :
Le principe de base est de récupérer une variation de tension aux bornes de résistances
variables avec la température (PT100), de filtrer ce signal analogique, de transformer cette
information analogique en donnée logique et de la transmettre à l’opérateur cyclotron.
La variation de température est directement liée à l’intensité du courant du faisceau cyclotron,
cependant il n’existe aucune méthode parfaitement sûre pour connaître cette intensité de courant
d’où l’utilité de ce projet.
Les PT100 sont alimentées en courant constant : 5mA. Elles présentent une impédance de 500
(5 x 100 ) à 0°C. La valeur maximale de travail sera de 150°C, ce qui nous donnera 786,6 . Il
est important, dans le choix du courant à faire passer dans les PT100, de tenir compte de la valeur
maximale de 2,5V applicable sur les entrées du convertisseur analogique / digital. Les 5 mA
constants sont fixés grâce à l’utilisation d’un 7805 et d’un potentiomètre de 2,2k . Le signal des
PT100 traverse un ampli suiveur (impédance d’entrée théoriquement infinie, impédance de sortie
basse, gain 1). L’ampli suivant permet de soustraire 2,5V (programmable) du signal principal avec
un gain de 2,2. Avant d’entrer dans le convertisseur, une protection résistance-zener, permettra
d’écrêter le signal final à 2,5V. Des condensateurs de découplage sont prévus directement aux
bornes des PT100 (dans la casemate cyclotron : HF accélération), un à l’entrée de la carte pour les
mêmes raisons et sur l’ampli de sortie.
Toutes les liaisons entre la casemate et la salle de commande sont faradisées.
Calcul du gain global de la partie analogique :
Dans le schéma précédent,
Si R1 = R3 et R2 = R4
Alors Vout = (V+in – V-in)* (R2/R1)
14
2.5 Convertisseurs
2.5.1 Analogique / Digital
ADS 7841P :
Cet élément est un convertisseur analogique / digital de 12 bits avec une
interface SPI. Alimenté entre 2,7 et 5V. Tension du signal d’entrée
maximum de 2,5V.
Il nous permettra de convertir en une information logique la valeur du
signal PT100. Ces valeurs seront comprises entre 0 et 4095. Cet élément
comporte quatre entrées dont 2 seront utilisées. La première pour le signal
PT100 et la seconde pour la mesure du LM35 (mesure température
ambiante casemate cyclotron).
15
2.5.2 Digital / Analogique
MCP 4921 :
Cet élément est un convertisseur digital / analogique de 12 bits avec une interface SPI. Alimenté
entre 2,7V et 5,25V.
Avantages :
- résolution de 12 bits
- Support de l’interface SPI jusqu’à 20 MHz
- Un temps d’ajustement de 4,5µs
Il nous permettra d’ajuster la tension de 2,5V à soustraire du signal PT100 pour ne pas
endommager les entrées du convertisseur analogique / digital.
16
2.6 Microprocesseur et bus SPI
ATMega 162 :
L’ATMega 162 est un microcontrôleur 8 bits. Alimentation entre 2,7V et 5,5V, il
peut travailler dans un environnement entre -40°C et 85°C. Il utilise une
architecture RISC. Il dispose de 16K bytes de mémoire flash programmable,
512K bytes de mémoire EEPROM (10.000 cycles de suppression/écriture) et 1K
bytes de mémoire interne SRAM.
Ce processeur dispose aussi d’une interface maître/esclave SPI qui permet de communiquer avec
d’autres composants (disposant d’une même interface).
Nous avons choisi de travailler avec un bus SPI qui simplifie les connexions entre circuits
et donc permet un allègement du board.
Cette liaison SPI (Serial Peripheral Interface) est un bus de donnée série synchrone. Les
circuits communiquent selon un schéma « maître / esclaves », où le maître s’occupe totalement de
la communication. Plusieurs esclaves peuvent coexister sur un bus, la sélection du destinataire se
fait par une ligne dédiée entre le maître et l’esclave appelé chip select.
Interface SPI :
Le bus SPI contient 4 signaux logiques :
- SCLK : horloge (généré par le maître, en bleu sur le schéma voir page 11)
- MOSI : Master Output, Slave Input (généré par le maître, en orange sur le schéma)
- MISO : Master Input, Slave Output (généré par l’esclave, en mauve sur le schéma)
- SS : Slave Select, appelé aussi CS pour Chip Select (généré par le maître, les 3 pistes noires
sur le schéma)
Fonctionnement :
Une transmission SPI typique est une communication simultanée entre un maître et un esclave.
- le maître génère l’horloge et sélectionne l’esclave avec qui il veut communiquer
- l’esclave répond aux requêtes du maître.
Dans le cas du projet, l’élément maître
est l’atmega 162 et les éléments esclaves
sont le convertisseur analogique /
digital, le convertisseur digital /
analogique et la mémoire flash.
Pour sélectionner un esclave, le maître
met le chip select à l’état bas et le
remonte une fois qu’il ne s’adresse plus
à cet élément.
Liaison SPI avec un maître et trois esclaves.
17
2.7 Circuits annexes
Ramtron FM25640 :
Cet élément est une mémoire flash de 64 Kb. Elle dispose de
l’interface SPI. Elle est prévue pour 10^12 cycles de lecture / écriture. Le
calcul utilisé pour savoir si c’était suffisant est celui-ci :
En supposant que l’on fait 10 mesures par seconde et que les
mesures durent 10 secondes, que l’on fait 100 mesures par jour, qu’on travaille 200 jours par
année, cela fait 4*(10^6) cycle de lecture / écriture par an. [(10^12) / (4*10^6)] nous donne une
autonomie de 2,5 * 10^5 années.
5V.
Sa capacité à garder des informations sans alimentation est de 45 ans. Elle s’alimente en
Ce composant est un SMD, hors en cas de défaillance il aurait été difficile de la dessouder.
C’est pourquoi nous l’avons installé sur un petit board s’enfichant sur un DIP8.
TL064 :
Le TL064 est un ensemble de quatre amplificateurs opérationnels.
Il ne consomme que 200µA et s’alimente en plus et moins 12 volts. C’est
grâce à un montage en soustracteur que nous allons pouvoir retirer 2,5V
au signal venant des PT100 avant qu’il n’arrive au convertisseur
analogique / digital.
LD1117AV33 :
Cet élément est un régulateur de tension. Il va nous permettre
d’alimenter de façon stable l’Xport (cf. § 2.8 Interfaces Internet : le Module
Xport) avec 3,3V. Il est alimenté en 5V min. et consomme 5mA.
78L05 :
Cet élément est un régulateur de tension positive qui, couplé à un
potentiomètre, va nous permettre de produire un courant constant de 5mA
pour alimenter le capteur PT100. Il est alimenté en 12V.
18
2.8 Interfaces Internet : le Module Xport
L’Xport est un périphérique permettant la conversion d’un port
série en un port Ethernet.
Par défaut, l’Xport peut obtenir une adresse IP par les protocoles
DHCP, BOOTP ou par Auto IP.
Si on ne connaît pas l’adresse IP du périphérique, on utilise le logiciel DeviceInstaller de
Lantronix.
Ce logiciel permet d’identifier les modules Xport sur un réseau et de les configurer par un
navigateur web intégré ou par une connexion Telnet.
Configuration par interface web :
Aucun nom d’utilisateur et ni mot de passe ne sont
nécessaires pour se connecter.
19
Configuration par Telnet :
L’adresse IP d’origine peut aussi être changée par DeviceInstaller :
20
Quand l’adresse IP est connue et que l’on se trouve sur le même réseau que le module, on peut
s’y connecter directement via un navigateur web.
Aucun nom d’utilisateur ni de mot de passe ne sont nécessaires pour se connecter.
21
Configuration du port série :
Le baud rate maximum est de 921600.
22
Paramètres de sécurité :
On peut définir un mot de passe pour les pages de configuration.
Le nom d’utilisateur reste vide.
On peut changer le numéro de port.
23
On peut créer une liste de 12 hôtes qui seront autorisés à se connecter.
L’inconvénient de cet élément dans notre projet est qu’il doit être alimenté en 3,3V.
24
2.9 Schémas
2.9.1 Schéma de principe
25
2.9.2 Schéma de traçage
26
2.9.3 Techniques de traçage
La politique de l’IPNAS se veut open source (pour des raisons économiques).
Pour qu’un logiciel soit open source, il faut qu’il respecte certains critères établis par l’Open
Source Initiative :
-
La libre redistribution.
Un code source disponible.
Des travaux dérivés possibles.
Le logiciel le plus connu pour créer un schéma de principe ou un PCB est le logiciel Eagle.
Or, ce programme, dans sa version professionnelle pour un seul utilisateur, incluant les options
de schématique et de traçage de PCB, coûte près de 1000$. Il est donc normal qu’avec un prix
aussi élevé, le service s’intéresse aux logiciels libres.
Le programme adopté (par Mathieu Clar et Saïd Rakkaa) est le logiciel KiCad.
KiCad est un logiciel open source créé par Jean-Pierre Charras, chercheur au LIS (Laboratoire
des Images et des Signaux) et professeur dans l’IUT de Saint Martin d’Hères.
La suite KiCad est composée de quatre logiciels et d’un gestionnaire de projet :
-
Eeschéma : Création de schémas.
Pcbnew : Création de circuits imprimés.
Gerbview : Visualisation des documents générés au format GERBER (phototraçage)
Cvpcb : Utilitaire de sélection des empreintes physiques des composants électroniques
utilisés dans le schéma.
KiCad : Gestionnaire de projets.
Cette suite de logiciels est extrêmement complète et propose la majeure partie (si pas toutes) des
options proposées par Eagle.
27
Quand tous les éléments sont sur le board, une option permet de créer une liste des composants
utilisés. Cette option est utile pour passer commande chez un fournisseur. L’IPNAS fait souvent
appel aux sociétés de distribution Farnell et RS.
Liste des composants :
ref
C13
C14
C15
C16
C17
C18
C19
C20
C21
C22
C23
C24
C3
C4
CON1
D1
J1
K1
K2
P1
P3
P4
P5
POT1
Q1
R1
R10
R11
R12
R13
R14
R15
R4
R5
R6
R7
R8
R9
U10
U11
U12
U13
U14
U5
U7
U8
U9
X1
value
sheet number
sheet name
footprint
100nF
100nF
100nF
100nF
100nF
15pF
15pF
100nF
100nF
100nF
100nF
100nF
10uF
10uF
X-PORT
x-port-X-PORT
DIODE
DB9
RELAY_2RT
LM35
PIN_3X2
CONN_2
LCD
CONN_6
2,2K
NPN
1K
1K
1K
100K
10K
1K
1K
1K
10K
10K
47K
47K
1K
TL064
REF03
MCP_4921_D/A
7805
LD1117AV33
74LS07
ADS7841P
MEMORY_64KBITS_RAMTRON_FM25640
ATMEGA162
7,3MHz
28
2.9.4 Carte terminée
29
2.10 Listing câblage
30
3. Logiciels
31
3.1 Outils de développement
1. Pour créer et compiler le programme en C nous avons utilisé « Programmer’s Notepad ».
Utilitaire faisant partie de la suite de logiciels « WinAVR ».
2. Pour créer le client en C# nous avons utilisé « Microsoft Visual Studio 2005 ».
3.2 Cahier des charges
Programme carte :
Le programme doit être capable d’interpréter les informations reçues par un utilisateur et
d’exécuter les tâches.
Programme utilisateur :
Le logiciel doit permettre de communiquer avec la carte, d’une part pour lui envoyer des
commandes et d’autre part pour recevoir les mesures.
3.3 Partie serveur : microcontrôleur (langage C)
Ce programme commence par initialiser les paramètres et les vecteurs d’interruptions
(timer et réception série) et entre ensuite dans une boucle sans fin qui :
1- Analyse les messages reçus et y répond si nécessaire,
2- Vérifie toutes les 0,1 seconde que la température de la pastille ne dépasse pas une
valeur de consigne et qui, si nécessaire, provoque automatiquement la sortie de la
pastille de la trajectoire du faisceau pour éviter de la brûler.
La seule façon de sortir du programme est de couper l’alimentation.
3.4 Partie client : module C#
Les informations sont envoyées en flux continu, ce sont les options de formatage (\n, \r,
…) qui permettent de ne pas recevoir un seul bloc d’informations mais une ligne par valeur.
Nous avons décidé de 2 modes de fonctionnement : un automatique et un manuel.
Mode automatique : l’utilisateur n’a pas de contrôle sur la rentrée et la sortie de la pastille. Tout ce
qu’il peut faire est choisir le temps que la pastille reste dans le faisceau.
Mode manuel : permet à l’utilisateur de contrôler la rentrée, la sortie, le début et la fin de la
mesure. Ce mode est utilisé principalement pour les mises au point du système.
32
3.5 Protocole d’échange
Le protocole entre le dispositif électronique et l’ordinateur est un système de requête /
réponse.
Les requêtes sont envoyées par le client C# et ont toutes le même format : L=N
où « N » est un chiffre entre 1 et 5.
L = 1  Début de mesure de température sur la capsule. La réponse d’une mesure de
température de la capsule est précédée du caractère : « # ». Il permet au client d’identifier la
valeur comme une mesure de température de la capsule. Les réponses n’ont pas d’unité, c’est un
chiffre entre 0 et 4095. Cette valeur est convertie en degrés Celsius par le client C#. On fait 10
mesures par seconde.
L = 2  Fin de mesure de température sur la capsule.
L = 3  Place la capsule dans la trajectoire du faisceau cyclotron. Aucune réponse n’est envoyée
au client.
L = 4  Sort la capsule de la trajectoire du faisceau cyclotron. Aucune réponse n’est envoyée au
client.
L = 5  Demande une mesure de température ambiante. La réponse d’une mesure de
température ambiante est précédée du caractère : « $ ». Il permet au client d’identifier la valeur
comme une mesure de température ambiante. La réponse est un nombre entre 0 et 4095 et est
convertie en degrés Celsius par le client C#.
3.6 Remarques
On peut contrôler le dispositif électronique à partir d’un navigateur web. Dans ce cas, les mesures
prises s’afficheront dans le navigateur mais seront des valeurs brutes, sans unités.
33
3.7 Listings complets et explications des programmes
3.7.1 Programme serveur (en C)
Le langage utilisé pour programmer l’atmel est le C. C’est un langage complètement
ouvert. Il permet l’écriture de logiciels qui n’ont besoin d’aucun support à l’exécution (ni
bibliothèque logicielle, ni machine virtuelle), au comportement prédictible en temps d’exécution
comme en consommation de mémoire vive.
Les « includes » permettent d’inclure d’autres fichiers qui contiennent des définitions de
commandes lors de la compilation du programme.
Les « define » permettent la définition de certaines commandes ou variables particulières.
Cette partie correspond à la définition des fonctions qui sont utilisées plus loin dans le
programme.
34
Toutes les variables définies à ce niveau du programme sont globales.
Ces lignes définissent les variables cha, chb…en tant qu’entiers et les initialisent à 0.
Suite de la définition des variables globales.
Ceci est l’initialisation du bus SPI qui sert à la communication entre les différents éléments du
circuit disposant de cette interface.
Ceci est la partie du code qui est exécutée à chaque interruption, toutes les 0,1 s.
On commence par initialiser les variables qui servent au calcul d’une moyenne des valeurs
récupérées. Ensuite, on fait une première mesure.
On envoie deux fois les bits de contrôle parce qu’il faut le temps au convertisseur
analogique/digital de faire la mesure avec les options spécifiées.
Options des bits de contrôle :
Bit 7
Bit 6
Bit 5
(MSB)
S
A2
A1
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
(LSB)
A0
MODE
___
SGL/DIF
PD1
PD0
35
Bit 7 : Start bit. L’octet de contrôle commence avec le premier bit à l’état haut.
Bits 6 à 4 : Bits de sélection du canal.
Bit 3 : bit de sélection entre une conversion 12 et 8 bits. Si la pin MODE est à l’état haut, ce bit
contrôle le nombre de bits de la prochaine conversion :
bit = 0  conversion en 12 bits
bit = 1  conversion en 8 bits.
Si la pin MODE est à l’état bas, la conversion se fera toujours en 12 bits.
Bit 2 : ce bit contrôle l’entrée de multiplexage.
Bit 1 et 0 : bits de contrôle du mode économie d’énergie.
PD1
PD0
0
0
0
1
1
1
0
1
Description
Mode veille entre chaque
conversion. Quand chaque
conversion est terminée, le
convertisseur entre dans un
mode de faible consommation
d’énergie. Au début de la
conversion
suivante,
le
convertisseur
redémarre
instantanément.
Réservé à un usage ultérieur
Réservé à un usage ultérieur
Pas de mode veille entre les
conversions.
Cette boucle nous permet de faire 8 mesures, d’additionner les résultats, puis d’en faire une
moyenne. Cette valeur est stockée dans la variable « lvalMoyen »
36
Nous avons mis en place une sécurité qui permet, dans le cas où la température de la capsule est
trop élevée, de la faire sortir de la trajectoire du faisceau.
Puis on met le contenu de la variable « lvalMoyen » dans la variable « MesureADC ».
On teste ensuite si « variableActif » est à « 1 ». Le changement d’état de cette variable sera
expliqué plus loin dans le programme. Si elle est à 1 cela signifie que la lecture est autorisée. On
vérifie que le bit correspondant au contrôle de la pastille (PT100) n’est pas à « 1 ».
La pin 7 du port C de l’atmel contrôle la position du capteur (PT100).
Pin 7 = 0  pastille hors faisceau.
Pin 7 = 1  pastille dans faisceau.
Si la pin 7 est à 0, on fait passer en négatif la valeur prise pour indiquer à l’utilisateur que les
PT100 ne sont pas dans la trajectoire du faisceau.
Puis on envoie le caractère « # », qui est utilisé uniquement pour les mesures sur PT100 pour
pouvoir les différencier des mesures LM35.
On envoie ensuite un « \t » qui crée une tabulation, puis la variable « MesureADC » est envoyée à
la fonction TmxNb qu’on analysera plus loin. On envoie un retour chariot et une nouvelle ligne
avec les commandes « \r » et « \n ».
L’étape suivante est la vérification de l’état de « variableLM35 ». Si elle est à « 1 », on fait appel à
la fonction « TempAmbiante » (qui sera détaillée plus loin).
Ensuite on envoie le caractère « $ » qui sera utilisé uniquement pour les mesures de température
ambiante sur LM35. On utilise la même méthode que pour l’envoi d’une mesure sur PT100, la
seule différence est qu’on va envoyer la variable « Mesurelm35 » à la fonction « TmcNb ». Pour
finir on met « variable LM35 » à 0.
37
Cette fonction permet d’initialiser le convertisseur digital / analogique.
On commence par mettre à l’état bas le « chip select » du convertisseur.
On lui envoie le mot « 7FFF » via le bus SPI. Ce mot sert à définir les options de configuration
du convertisseur. En traduisant ce mot de 4 caractères en binaire, on obtient :
0111 1111 1111 1111.
Si on se réfère à la documentation :
Bit 15 : permet de sélectionner le convertisseur A ou B.
1 = convertisseur B.
0 = convertisseur A.
Bit 14 : permet d’activer ou de désactiver le buffer de la tension de référence.
1 = buffer actif.
0 = buffer inactif.
Bit 13 : permet d’activer ou de désactiver un gain de la tension de sortie.
1 = gain 1x.
0 = gain 2x.
Bit 12 : permet de mettre la puissance de sortie du convertisseur à l’état bas.
1 = puissance de sortie à l’état bas.
0 = buffer de sortie désactivé, la sortie est de haute impédance.
Bit 11 à 0 : 12 bits permettant d’établir la valeur de sortie. Celle-ci est un nombre compris entre 0
et 4095.
Dans ce cas-ci, on va utiliser la valeur maximum possible sans gain.
Donc 1111 1111 1111  F F F.
En effet, sans activer l’option du gain, on ne peut avoir comme tension de sortie
maximum que la tension de référence : 2,5V.
On remonte le « chip select ». Pour finir, on « latch » la pin 5 du convertisseur pour rendre active
la configuration que l’on vient d’envoyer.
38
Cette fonction va permettre de récupérer la température ambiante.
On met à 0 les variables « lvalMoyen », « lval » et « i ».
On fait 8 mesures dont on calcule la moyenne.
Enfin on copie la mesure se trouvant dans la variable « lvalMoyen » dans « Mesurelm35 ».
Cette fonction met la variable que nous avons vue plus haut à 1 ce qui autorise l’envoi des
mesures de la température des PT100.
Cette fonction met la « variableActif » à 0 ce qui empêche l’envoi des mesures de la température
des PT100.
Cette fonction place la pastille dans la trajectoire du faisceau.
39
Cette fonction sort la pastille hors de la trajectoire du faisceau.
Les deux fonctions suivantes permettent de formater les nombres, quels qu’ils soient, avant de les
envoyer à l’ordinateur. Ces fonctions sont liées, il est préférable de les regarder en même temps
pour comprendre leur fonctionnement.
On utilise la fonction « TmxNb » en premier.
Cette fonction permet de réagir aux résultats particuliers que nous pourrions rencontrer.
Si, pour commencer, la valeur récupérée est inférieure à zéro, on envoie le caractère «-» et on
inverse la mesure.
Si la valeur est égale à zéro, on envoie le caractère « 0 ».
Si la valeur ne correspond à aucune des conditions, elle est envoyée à la fonction « convNb2Tx ».
Ces fonctions transforment les nombres en caractères ascii puis les envoient vers la liaison série.
40
Début de la partie principale du programme.
On commence par initialiser le timer, le bus SPI, l’UART et le convertisseur digital / analogique.
On configure aussi les ports du microcontrôleur.
41
Cette boucle est infinie, elle tourne tant que le système est sous tension.
On vérifie que la chaîne de caractères reçue n’est pas vide.
Ensuite on analyse caractère par caractère la valeur reçue. Les commandes envoyées par
l’utilisateur ont pour format « L=N ». Où N est un nombre de 1 à 5. « L » voulant dire
« Lecture ». Chaque numéro correspond à une action à effectuer du côté de l’Atmel :
L = 1 : début de mesure de la capsule.
L = 2 : fin de mesure de la capsule.
L = 3 : place la capsule dans la trajectoire du faisceau cyclotron.
L = 4 : sort la capsule hors de la trajectoire du faisceau cyclotron.
L = 5 : demande de température ambiante.
Fin du programme en C.
42
3.7.2 Programme client (en C#)
Structure du programme.
Le programme est divisé en trois zones.
La première zone correspond au mode automatique. Elle est composée de 3 boutons. Chacun
permet de réaliser un cycle complet d’acquisition. Seul le temps de cette acquisition (et donc le
nombre de valeurs obtenues) varie.
La deuxième zone correspond au mode manuel. Elle permet de faire rentrer ou sortir la pastille
dans la trajectoire du faisceau.
La dernière zone permet d’afficher les valeurs reçues et de voir à quelle température elles
correspondent. Elle permet aussi d’ajouter un commentaire dans le fichier texte.
Organisation des routines du programme :
Démarrage du programme :
En plus de l’initialisation de variables, un « thread » est démarré.
Un « thread » est un processus qui est généralement utilisé avec une interface graphique.
En effet, les interactions de l’utilisateur avec le processus, par l’intermédiaire des périphériques
d’entrée (clavier, souris…), sont gérées par un processus, tandis que les calculs plus « lourds » (en
terme de temps de calcul) sont gérés par un autre processus. Cette technique est avantageuse car
l’utilisateur peut continuer d’interagir avec le programme même lorsque celui-ci est en train
d’exécuter une tâche. Dans ce programme le « thread » va permettre de lire en continu le flux de
données provenant du module.
43
Ensuite, on ouvre le fichier texte dans lequel les mesures prises seront placées. Si ce fichier
n’existe pas, il est créé.
Puis on essaye d’établir la connexion entre le programme et le module en lui donnant les
informations vitales à cette connexion, comme l’adresse IP, le port ou encore le type de
protocole. Si cette connexion ne peut s’établir, le programme affiche un message d’erreur et
s’arrête.
Une fois la connexion établie, le programme peut envoyer un des 5 ordres de base vus
précédemment et recevoir les mesures.
Dans le cas du mode automatique, on envoie à une fonction différente l’intervalle de temps de la
mesure que l’on choisit (1, 3 ou 5 secondes). Cette fonction envoie le signal de départ au module,
attend le nombre de secondes choisi puis envoie le signal de fin.
Dans le cas du mode manuel, c’est l’utilisateur qui envoie directement les commandes au module
via les boutons.
La 5e commande, « L=5 », n’est pas contrôlable par l’utilisateur. Cette mesure est envoyée
régulièrement par un timer. Elle est indépendante de la volonté du de l’utilisateur.
44
Explication du code source.
Définitions des librairies qui permettent d’utiliser certaines fonctions.
Début du programme avec l’initialisation des variables, du socket, et du thread.
Début de la partie principale du programme.
Initialisation des composants (boutons, labels…) et ouverture du fichier texte qui servira à
stocker les mesures.
45
Initialisation du socket.
Tentative de connexion via le socket créé précédemment. Si la connexion ne peut s’établir, un
message d’erreur apparaît, puis le socket et la fenêtre sont fermés.
Si la connexion est correctement établie, on initialise un « streamreader » et un « streamwriter » à
partir du « networkstream » créé grâce au socket.
-
NetworkStream : fournit un flux de données sous-jacent pour l'accès au réseau.
StreamReader : implémente un lecteur de texte qui lit les caractères à partir d’un flux
d’octets selon un codage particulier.
StreamWriter : implémente la possibilité d’écrire des caractères dans un flux selon un
codage particulier.
On démarre enfin le thread.
Mode Automatique.
Chaque bouton fait appel à la même fonction mais lui envoie un temps de mesure différent.
46
Cette fonction affiche la valeur de la variable « index » dans le label nommé « label2 ». Ce qui
permet de savoir combien de mesures ont étés faites jusqu’à présent.
Ensuite on écrit dans le fichier texte la date et on définit l’intervalle du timer 1.
On fait appel à la fonction « PastilleDansFaisceau » et on met en pause le thread pendant 1,5
secondes. C’est le temps que prend le mouvement de la pastille PT100 pour passer de la position
hors du faisceau à la position dans le faisceau.
Enfin, on fait appel à la fonction « DebutMesure » et on démarre le timer 1.
La fonction « PastilleDansFaisceau » envoie la commande « L=3 » au module.
La commande « Flush » permet de nettoyer le contenu de « sw ».
La fonction « DebutMesure » met la variable booléenne « MesurePT100 » à l’état vrai et envoie la
commande « L=1 » au module.
Lorsque le timer 1 arrive à la fin de son intervalle, il fait appel à la fonction « ArretMesure », puis
à la fonction « PastilleHorsFaisceau », arrête timer 1 et marque une pause de 1,5 secondes au
niveau du thread pour laisser le temps à la pastille PT100 de revenir dans son état initial.
47
La fonction « ArretMesure » met la variable booléenne à faux, envoie la commande
« L=2 » au module et nettoie « sw ».
La fonction « PastilleHorsFaisceau » envoie la commande « L=4 » au module et nettoie « sw ».
Chaque bouton du mode manuel fait appel à une fonction différente.
De plus, pour éviter de provoquer des erreurs, chaque bouton se désactive une fois cliqué et
active le bouton correspondant à la fonction inverse.
Ce bouton se désactive lui-même pour ne pas permettre à l’utilisateur d’envoyer deux fois de suite
la même commande, et active le bouton « Arrêt Mesure ».
Il fait appel à la fonction « DebutMesure » vue précédemment.
Ce bouton se désactive lui-même pour les mêmes raisons que le bouton précédent, s’assure que le
bouton « Arrêt Mesure » est actif et fait appel à la fonction « ArretMesure » vue précédemment.
48
Ce bouton se désactive lui-même et active le bouton « Pastille Hors Faisceau ». Il fait aussi appel
à la fonction « PastilleDansFaisceau » vue précédemment.
Ce bouton se désactive lui-même, active le bouton « Pastille Dans Faisceau » et fait appel à la
fonction « PastilleHorsFaisceau » vue précédemment.
(Pour comprendre comment les éléments graphiques sont modifiés, il faut regarder ce qui se
passe dans le thread et dans le 2e timer.)
Le thread :
Tant que la variable booléenne « connecte » est à faux, on met dans la variable « data » le contenu
du « readline » du flux d’octet du réseau. Le contenu de la variable « data » est enregistré dans le
fichier texte.
La variable « connecte » n’est à l’état vrai que si on fait appel à la fonction « RequestStop »
Les données sont récupérées, on peut traiter l’information.
49
Timer 2.
On vérifie l’état de la variable booléenne « MesurePT100 », si elle est à faux, on fait appel à la
fonction « TemperatureAmbiante » et donc on demande une mesure de la température ambiante.
Ensuite, on regarde le premier élément de la ligne de caractères contenu dans la variable « data ».
Si cet élément est un « # », alors c’est une mesure PT100. On isole la valeur des autres caractères
du message et on la convertit en une température en degrés Celsius selon une formule établie par
Monsieur Garnir. Cette formule prend aussi en compte l’impédance induite par la longueur des
câbles entre la salle de commandes (où se trouve le module) et la casemate cyclotron (où se
trouvent les PT100).
Les 2 nombres, mesure brute et mesure en degrés, sont affichées dans le label 7 et le label 3.
Si le premier élément contenu dans la variable « data » est un « $ », cela signifie que c’est une
mesure du LM35. On traite et convertit l’information en ne gardant que le nombre lui-même
pour obtenir une mesure en degrés Celsius que l’on va afficher dans le label 6.
50
L’avant-dernière option permet d’ajouter un commentaire dans le fichier texte :
Le dernier bouton permet de quitter le programme.
On ne doit pas oublier de fermer tout ce qui a été lancé par le programme.
On demande l’arrêt du thread en envoyant une dernière mesure. On utilise la fonction « Join »
avec le thread. Elle permet de bloquer l’appel du thread pendant que celui-ci se termine ou que la
durée spécifiée s’écoule, tout en continuant de récupérer les dernières valeurs.
On arrête le timer 1, puis on fait appel à la fonction « ArretMesure », et à la fonction
« PastilleHorsFaisceau ».
On coupe le socket ainsi que les opérations que l’on pouvait effectuer sur le flux de données.
Enfin, on ferme le fichier texte contenant toutes les valeurs et on coupe le programme.
51
4. Phases de tests et
mise au point
52
4.1 Problèmes rencontrés et solutions
Durant les premiers tests, nous n’avions pas les 10 mesures par seconde demandées. La
première version du programme se basait sur une approche différente de l’analyse du flux de
données. On utilisait, sans le savoir, une fonction qui bloquait l’arrivée de données pendant leur
analyse. Nous sommes donc repartis à zéro et Monsieur Garnir nous a alors proposé d’utiliser un
système de thread qui s’adaptait mieux aux besoins actuels.
Dans le programme de base se trouvait aussi un graphique reproduisant chaque mesure,
nous permettant ainsi de suivre, en temps réel, l’évolution de la température. Mais cette option
n’était pas vraiment nécessaire.
53
4.2 Résultats
Exemple de mesure PT100 :
Dans le but d’augmenter la réactivité du système, Monsieur Garnir a implanté un algorithme qui,
par monitoring des changements de température pendant un laps de temps de quelques secondes,
peut prédire la valeur que la température va atteindre si les conditions du faisceau ne changent
pas. Avec cette approche, l’intensité du courant faisceau peut-être évaluée presque en temps réel
(2 à 5 secondes). Dans la figure ci-dessous, on peut voir que le courant peut être extrapolé depuis
la pente de la courbe au début d’une irradiation.
54
5. Conclusions
55
L’objectif de ce projet était la mesure dans l’air et par effet thermique du courant faisceau
cyclotron. Mesurer l’intensité d’un faisceau de particules accélérées dans l’air à toujours été un
challenge pour les physiciens. La mesure directe (ampèremètre, ou à l’aide d’une chambre de
Faraday) ne permettent pas de s’affranchir des charges (électrons) embarquées par le faisceau ou
éjectées (à l’impact). La méthode thermique proposée dans ce projet est originale et offre une
solution vraiment intéressante.
L’utilisation du SPI est aussi intéressante car elle simplifie grandement l’élaboration d’un
circuit imprimé et la communication entre les circuits intégrés d’un même board.
En suivant les conseils et la guidance de Mr Garnir et Mr Clar, le projet a abouti de façon
relativement satisfaisante. Les bases théoriques ont été appliquées avec succès. Le montage, tel
qu’il est prévu, permet, dans l’avenir, de modifier facilement la façon d’acquérir la température (et
donc la mesure du courant) en fonction du type d’irradiation, de l’énergie des particules …
De plus, en cours de projet, il s’est avéré que le système pouvait être amélioré de façon à
simplifier son utilisation par l’opérateur cyclotron. Il s’agirait d’ajouter un bouton sur la carte qui
démarrerait une mesure. Celle-ci serait envoyée directement à l’ordinateur. Il serait bien sûr
nécessaire d’adapter le code des deux programmes.
Il a été décidé d’un commun accord que ces modifications pourraient faire l’objet d’un
autre travail ultérieurement. Le temps nous manquait, en effet, pour finaliser cette dernière idée.
En réalisant ce projet, j’ai eu l’occasion d’appliquer beaucoup de théories apprises durant
mes études. J’ai également acquis de nombreuses compétences pratiques dans les domaines de
l’électronique et de la programmation.
De plus, j’ai eu l’occasion de m’intégrer dans une équipe et de collaborer avec des
spécialistes de tous bords (physiciens, techniciens, mécaniciens, …).
Cette expérience a donc été très enrichissante et formative. J’attends avec impatience
d’autres occasions de poursuivre mes apprentissages dans la vie professionnelle.
56
6. Annexes
57
Poster présenté à la société Belge de Physique à Bruxelles.
58
ATMEGA 162 1/2.
59
ATMEGA 162 2/2.
60
XPORT 1/3.
61
XPORT 2/3.
62
XPORT 3/3.
63
Convertisseur analogique / digital 1/4.
64
Convertisseur analogique / digital 2/4.
65
Convertisseur analogique / digital 3/4.
66
Convertisseur analogique / digital 4/4.
67
Convertisseur digital / analogique 1/2.
68
Convertisseur digital / analogique 2/2.
69
Table PT100
70
Capteur LM35 1/3.
71
Capteur LM35 2/3.
72
Capteur LM35 3/3.
73
Mémoire flash 1/2.
74
Mémoire flash 2/2.
75
Régulateur de tension 2,5V.
76
Régulateur de tension 3,3V 1/2.
77
Régulateur de tension 3,3V 2/2.
78
Amplificateurs opérationnels.
79
Relais.
80
7. Sitographie
81
Site web Atmel:
http://atmel.com/dyn/products/product_card.asp?family_id=607&family_name=AVR%AE+8
%2DBit+RISC+&part_id=2023
Site web Xport:
http://www.lantronix.com/device-networking/embedded-device-servers/xport.html
Site web et catalogue en ligne Farnell:
http://be.farnell.com/jsp/home/homepage.jsp?CMP=KNC-GBE-FBE-GEN-PFB
Site web et catalogue en ligne RS:
http://be02.rs-online.com/web/
Informations sur le bus SPI:
http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus
Site web Maxon Motor:
http://www.maxonmotor.ch/ch/fr/index.htm
Site web Kicad:
http://www.lis.inpg.fr/realise_au_lis/kicad/
Site web texas instrument:
http://focus.ti.com/docs/prod/folders/print/tl064.html
http://focus.ti.com/docs/prod/folders/print/sn74ls07.html
http://focus.ti.com/docs/prod/folders/print/ads7841.html
82
Téléchargement