Niveau à bulle ( prise en main VHDL / CPLD ) - NM

Transcription

Niveau à bulle ( prise en main VHDL / CPLD ) - NM
Table des
matières
Travail de semestre 2005
Le 14 mars 2006.
Table des matières
A Rapport
B Cahier des charges
C Mode d'emploi
D Code VHDL
E Piggybag
F Alimentation
G Accéléromètre
H Affichage
I Dossier de fabrication
J CD
II
II
II
III
III
IV
IV
V
V
V
Table des matières
A Rapport
1
2
3
4
5
6
7
8
9
10
11
Présentation du dossier
Un peu d'histoire
Introduction
- 3.1 Rappel du cahier des charges
- 3.2 Appareil similaire
Schéma bloc
- 4.1 Matériel
- 4.2 Logiciel
Oscillateur
- 5.1 Principe
- 5.2 Génération du clock
Schéma de montage matériel
Compilation
Remerciements
Bibliographie
Remarques
- 10.1 Améliorations possibles
- 10.2 Les petits plus
Conclusion
2
3
5
5
5
6
6
7
8
8
8
9
10
10
10
11
11
11
11
B Cahier des charges
1
2
3
4
Introduction
Le sujet du projet
Le concept
- 3.1 Contrôleur
- 3.2 Affichage
- 3.3 Capteur
- 3.4 Fonctions du montage
Dates importantes
2
2
2
2
2
2
2
2
C Mode d'emploi
1
2
3
4
5
Un peu d'histoire
Plan du boîtier
Montage de la pile
Spécifications
Explication de l'affichage
Métraux Nathanaël
II/
II/V
2
4
4
5
5
14 mars 2006
Table des matières
D Code VHDL
1
2
3
4
5
Introduction
Le langage VHDL
- 2.1 Détails techniques
- 2.2 Historique
- 2.3 Introduction au VHDL
- 2.4 Exemples de code VHDL
Logiciel utilisé pour l'élaboration du code
- 3.1 Editeur VHDL
- 3.2 Compilatateur
Assignation des pattes
Explication des blocs
- 5.1 Top Level
- 5.2 Global
- 5.3 Diagramme de flux
- 5.4 Initialisation du LCD
- 5.5 Image d'accueil
- 5.6 Interface SPI
- 5.7 La PWM
- 5.8 Génération de la table calcul
- 5.9 Affichage des caractères
- 5.10 Affichage de la valeur de X et Y
- 5.11 Table de caractères
- 5.12 La modification de la couleur des points
- 5.13 Contrôle du point milieu
- 5.14 Points extérieures
2
2
2
3
4
5
8
8
10
14
15
15
16
17
18
19
20
21
22
23
24
24
25
26
26
Présentation
- 1.1 Possibilité
- 1.2 Alimentation
Emplacement des pattes
Mise en oeuvre pour le développement
- 3.1 Création d'un nouveau projet
- 3.2 Choix du composant
- 3.3 Programmation du composant
- 3.4 Programmation du composant
Schéma du piggybag
2
2
2
3
4
4
7
9
10
11
E Piggybag
1
2
3
4
Métraux Nathanaël
III/
III/V
14 mars 2006
Table des matières
F Alimentation
1
2
3
4
5
6
7
Introduction
Ce que le montage requiert
Obtention des tensions
- 3.1 But
- 3.2 Choix des composants
Bref présentation de l'IC
- 4.1 Dessin
- 4.2 Schéma interne
- 4.3 Schéma typique de montage du MAX 1722
Où trouver les composants
Design de l'alimentation (PCB)
- 6.1 Conception du PCB
Schéma des alimentations utilisées
- 7.1 Alimentation 1.8V
- 7.2 Alimentation 3.3V
- 7.3 Alimentation 6V
2
2
2
2
2
3
3
3
4
4
4
4
5
5
5
6
G Accéléromètre
1
2
3
4
5
6
Introduction
- 1.1 Domaine d'utilisation de l'accéléromètre
Composant utilisé
- 2.1 Choix du composant
- 2.2 Présentation du composant
- 2.3 Fonctions et capacités de l'accéléromètre
Conversion du signal PWM en analogique
Circuit imprimé d'adaptation
- 4.1 Implantation
- 4.2 Pinout du composant
Signaux générés
Calculs
Métraux Nathanaël
IV/
IV/V
2
2
2
2
3
3
4
4
5
5
6
6
14 mars 2006
Table des matières
H Affichage
1
2
3
4
5
6
7
8
9
Introduction
Le choix de l'écran
Spécification de l'écran
- 3.1 Résolution
- 3.2 Interface
- 3.3 Emplacement des pattes
Procédure d'initialisation
- 4.1 Valeur d'initialisation
Stockage des images
- 5.1 Le problème
- 5.2 Les améliorations
Listening du code de la conversion RAW - VHDL
Traitement des images
- 7.1 Le fichier RAW
- 7.2 Le logiciel créé
- 7.3 Les images utilisées
Protocole d'initialisation
Spécifications
2
2
2
2
2
3
4
4
7
7
7
8
9
9
9
9
10
11
I Dossier de fabrication
1
2
3
4
5
6
7
Introduction
Le circuit imprimé
- 2.1 Explication des fichiers GERBER
- 2.2 Dimensions
- 2.3 Implantation
- 2.4 Plan de perçage
Liste de composants
- 3.1 Distrelec
- 3.2 Farnell
- 3.3 Fourniture personnelle
- 3.4 Centre professionnel
- 3.5 Madis
Plan du boîtier
- 4.1 Cache avec interrupteur
- 4.2 Cache avec le porte pile
Procédure pour le montage
- 5.1 Montage du PCB
- 5.2 Réglage des alimentations
Montage du boîtier
- 6.1 Côté pile
- 6.2 Coté interrupteur
Version finale du boîtier
2
2
2
3
4
5
6
6
6
6
6
6
7
7
8
9
9
9
10
10
10
11
J CD
1
2
3
Introduction
Contenu du CD
- 2.1 Répertoires principaux
Le CD
Métraux Nathanaël
V/V
2
2
2
3
14 mars 2006
Rapport
Travail de semestre 2005
Le 14. mars 2006.
Table des matières
1
2
3
4
5
6
7
8
9
10
11
12
Présentation du dossier
Un peu d'histoire
Introduction
- 3.1 Rappel du cahier des charges
- 3.2 Appareil similaire
Schéma bloc
- 4.1 Matériel
- 4.2 Logiciel
Schéma de montage matériel
- 5.1 Oscillateur avec circuit inverseur
- 5.2 Oscillateur Pierce
- 5.3 Oscillateur utilisé
Compilation
Remerciements à
Bibliographie
Logiciels utilisés
- 9.1 Rédaction du code
- 9.2 Compilation du code
- 9.3 Rédaction du rapport
- 9.4 Conception du circuit imprimé
- 9.5 Lecture des datasheets
- 9.6 Système d'exploitation du PC
Matériels utilisés
- 10.1 Oscilloscope
- 10.2 Station de travail
- 10.3 Alimentations stabilisée
- 10.4 ByteBlaster Altera
Remarques
- 11.1 Améliorations possibles
- 11.2 Les petits plus
Conclusion
2
3
5
5
5
6
6
7
8
9
10
10
11
11
11
12
12
12
12
12
12
12
13
13
13
13
13
14
14
14
14
Rapport
1 Présentation du dossier
Le présent dossier a été segmenté en plusieurs parties dans le but de pouvoir
être repris que partiellement. Il y a un mini rapport pour chacune des étapes
effectuées qui peuvent être pris indépendamment les uns des autres, c'est cas
pour:
•
Piggybag
•
Accéléromètre
•
Afficheur LCD Nokia
Le présent rapport montre le cheminement afin mettre bout à bout les
différents éléments utilisés dans le projet.
Un CD en fin de dossier contient
1
2
•
Sources compilées et non-compilées
•
Traitement de texte utilisé (Licence GNU)
•
Logiciel de conversion au format PDF (Licence GNU)
•
Compilateur C++ (Licence GNU1)
•
Le rapport et les sources au format OpenOffice et PDF
•
Les fichiers de conception du PCB2
Les licences d'utilisation de la plupart des programmes sont définies pour limiter ou supprimer toute liberté à
l'utilisateur. À l'inverse, la Licence Publique Générale (General Public License) est destinée à vous garantir la liberté
de partager et de modifier les logiciels libres, et de s'assurer que ces logiciels sont effectivement accessibles à tout
utilisateur.
Printed Circuit Board ou circuit imprimé
Métraux Nathanaël
A - 2/14
14 mars 2006
Rapport
2 Un peu d'histoire
Depuis de nombreuses années il a été nécessaire à l'homme de pouvoir placer
quelque chose à plat ou à la verticale et ceci le plus facilement possible. Des
outils ancestraux existent encore aujourd'hui et sont utilisés par nombre de
personnes dans la maçonnerie.
On peut par exemple cité les niveaux à bulle qui donnent l'horizontale ou la
verticale mais cet outil requiert d'avoir une référence pour être juste.
Le fil à plomb permet de faire la même chose mais ne nécessite aucun
calibrage, le fameux fil à plomb se réalise très facilement (une masse et un fil),
et on obtient une mesure de la verticale très précise.
Outils romains: pierre tombale de Lucius Alfius Statius, Aquileia, Via Petrada.
Métraux Nathanaël
A - 3/14
14 mars 2006
Rapport
On peut facilement donner l'horizontale ou un angle avec un fil à plomb comme
le montre l'équerre ci-dessous:
Equerre à fil à plomb provenant de la
tombe de Semerdjen (XIXe dynastie
égyptienne). Musée du Caire. Photo tirée
de "La symbolique maçonnique du
troisième millénaire", Irène Mainguy,
Dervy, 2003.
Un mur qui penche risque de tomber. Le
maçon qui veut construire un mur
d'aplomb vérifie son travail en appliquant
un fil à plomb contre le mur car le poids
tend toujours le fil à la verticale.
Métraux Nathanaël
A - 4/14
14 mars 2006
Rapport
3 Introduction
On peut se rendre compte qu'au travers des âges, que ce soit dans un domaine
professionnel, artistique ou à titre privé le niveau à bulle ou un fil à plomb
seront toujours indispensables si l'on veut faire un travail propre.
Notre projet de semestre à pour but de faire aussi bien voir mieux, mais je
doute qu'il soit aussi facile à réaliser qu'un fil à plomb.
- 3.1 Rappel du cahier des charges
Le cahier des charges demandait de monter un appareil capable de mesurer
l'angle avec la surface terrestre, en gros un équivalent du traditionnel niveau à
bulle ou du fil a plomb, mais en
version électronique.
Le cahier des charges prévoit de
travailler avec une FPGA, de la
programmer en VHDL. Il n'est
pas
autorisé
d'utiliser
un
composant tel que le micro
contrôleur en interne.
Il est demandé d'afficher
valeur en X et en Y.
la
- 3.2 Appareil similaire
Patrick Jan fit un travail de diplôme similaire en 2000.
Cette appareil permet de mettre une table à un angle donné par rapport à la
terre. Il utilise aussi un accéléromètre.
Métraux Nathanaël
A - 5/14
14 mars 2006
Rapport
4 Schéma bloc
- 4.1 Matériel
Alimentation
Step – up converter
Oscillateur
Métraux Nathanaël
A - 6/14
14 mars 2006
Rapport
- 4.2 Logiciel
Métraux Nathanaël
A - 7/14
14 mars 2006
Rapport
5 Schéma de montage matériel
Métraux Nathanaël
A - 8/14
14 mars 2006
Rapport
- 5.1 Oscillateur avec circuit inverseur
Le montage le plus simple consiste à utiliser un circuit inverseur. A la mise
sous tension, le quartz oscille grâce à la différence de niveaux de tension entre
l’entrée et la sortie du circuit. La fréquence des oscillations peut atteindre le
mégahertz. Le deuxième inverseur permet la mise en forme du signal de sortie
pour obtenir un signal carré. La fréquence du signal peux être ajustée par des
condensateurs.
Métraux Nathanaël
A - 9/14
14 mars 2006
Rapport
- 5.2 Oscillateur Pierce
C’est un montage analogue à l’oscillateur Colpitts. La charge est soit une
résistance de collecteur Rc, soit un collecteur ouvert. Le quartz doit osciller sur
la fréquence de résonance série. La fréquence doit être légèrement inférieure à
la fréquence propre du cristal; elle peut être ajustée par C1 et C2; c’est un
montage très utilisé sur émetteur de petite puissance.
- 5.3 Oscillateur utilisé
Sur le schéma de la page précédente, on peut voir l'oscillateur a quartz monté
avec le 74HC14. C'est une des méthodes que nous avions vue en première
année qui à l'air de marcher convenablement.
La fréquence d'oscillation utilisée est de 3.2768 MHz, quartz utilisé dans les
système d'horloge.
Une fréquence plus basse ferait un rafraîchissement de l'écran beaucoup trop
lent et visible a l'oeil.
Métraux Nathanaël
A - 10/
10/14
14 mars 2006
Rapport
6 Compilation
Le développement du logiciel fait partie d'un chapitre complet, dans cette
rubrique nous allons plutôt approcher les problèmes qui arrivent à la
compilation et qui peuvent avoir comme cause un code VHDL juste, mais nonfonctionnel.
7 Remerciements à
Christophe Dubach pour son aide précieuse sur les problèmes dû au timing.
Yann Müller pour son aide sur les problèmes de syntaxe du VHDL.
Anto Barisic pour son aide sur la PWM.
Alexandre Nüssli pour les dessins mécaniques des découpes du boîtier.
M. Torche pour la gravure du boîtier.
M. Zbinden pour les diverses versions du circuit imprimé.
8 Bibliographie
VHDL Made Easy - David Pellerin et Douglas Taylor – ISBN 0-13-650763-8
Cours du VHDL et FPGA de M. Pierre Cornu - CPNV
Métraux Nathanaël
A - 11/
11/14
14 mars 2006
Rapport
9 Logiciels utilisés
- 9.1 Rédaction du code
Ease Version 5.1 (14 avril 2004)
•
EASE Graphical HDL Entry
•
EALE HDL language Editor
- 9.2 Compilation du code
Quartus Version 5.0 Build 148 26 avril 2005 SJ version complète.
- 9.3 Rédaction du rapport
OpenOffice.org version 2.0 (Fournis sur le CD en annexe)
PDF creator pour la génération des fichiers PDF.
SRip32 pour faire les copies d'écran des logiciels.
- 9.4 Conception du circuit imprimé
PROTEL DXP 2004 en version de démonstration.
- 9.5 Lecture des datasheets
Adobe Acrobat reader version 6.0
- 9.6 Système d'exploitation du PC
Microsoft Windows XP Professionnel Version 2002 - Service pack 2
Métraux Nathanaël
A - 12/
12/14
14 mars 2006
Rapport
10 Matériels utilisés
- 10.1 Oscilloscope
TEKTRONIX TDS 3014
•
Numéros de sériel
B019685
- 10.2 Station de travail
Ordinateur Hewlett Packard Compaq DX6100MT.
Pentium IV CPU 3 GHz 1 Go de RAM
•
Numéros de série
CZC5080RTT
- 10.3 Alimentations stabilisée
Hewlett Packard E3630A
•
0 - 6V
•
0 - 20 V
- 10.4 ByteBlaster Altera
Modèle sur port parallèle
Métraux Nathanaël
A - 13/
13/14
14 mars 2006
Rapport
11 Remarques
- 11.1 Améliorations possibles
Il serait possible de réduire considérablement le coût de fabrication du montage
en utilisant un micro contrôleur ou alors de réaliser un ASIC. Car l'utilisation
d'une FPGA fait pour ainsi dire doubler le prix de conception du montage.
L'inconvénient du Piggybag est sa taille, il serait possible de tous inclure
derrière l'écran et de faire un montage très fin, léger et consommant peu.
L'écran utilisé provient d'un Nokia 6610, il utilise un driver Philips PCF8833,
malheureusement Philips a arrêté la production de ce driver, néanmoins Nokia
continue de produire des écrans en utilisant un driver provenant de chez
EPSON, seule la procédure d'initialisation et la tension d'alimentation changent,
en effet en travaillant à 3.3V cette écran a contraste très faible, Il faut donc
l'utiliser avec une tension inférieure de l'ordre de 2.2V à 3V pour être vraiment
optimum.
- 11.2 Les petits plus
Dans la méthode utilisée on peut remarquer que le montage travail avec une
seule pile de 1.5V de type LR06.
L'écran LCD provient du domaine de la télécommunication public de ce fait ne
consomme que 20 mA rétro-éclairage activé.
Le montage est très faible en consommation.
Outre le piggybag, le montage est d'un coût relativement modeste.
12 Conclusion
En conclusion je dirais que ce projet m'a énormément appris sur le VHDL, m'a
fait découvrir une partie de l'électronique moderne dont j'avais juste entendu
parler sans vraiment m'y intéresser.
Je suis content d'avoir pu finaliser ce projet avec succès en utilisant des
composants et des outils inconnus il y a moins d'un an.
Nathanaël Métraux - Vallorbe le 23. février 2006,
Métraux Nathanaël
A - 14/
14/14
14 mars 2006
Cahier des
charges
Travail de semestre 2005
Le 13 mars 2006.
Table des matières
1
2
3
4
Introduction
Le sujet du projet
Le concept
- 3.1 Contrôleur
- 3.2 Affichage
- 3.3 Capteur
- 3.4 Fonctions du montage
Dates importantes
2
2
2
2
2
2
2
2
Cahier des charges
1 Introduction
Cette rubrique a pour but de fixer les points clés du projet.
2 Le sujet du projet
La donnée est simple: concevoir un appareil équivalent à un niveau a bulle,
mais électronique.
3 Le concept
- 3.1 Contrôleur
L'utilisation d'une FPGA1 et de la programmer en VHDL est obligée
- 3.2 Affichage
L'affichage se fera sur un écran graphique indiquant l'angle en X et en Y.
On peut imaginer de placer une image sur l'écran d'un cercle et d'une croix,
lorsque la croix est placée au centre du cercle la pièce est placée à plat.
- 3.3 Capteur
L'utilisation d'un accéleromètre serait idéale, certains de ces capteurs générent
deux signaux PWM facilement gérable avec une FPGA.
Le choix d'un autre capteur est libre.
- 3.4 Fonctions du montage
L'idée serait de pouvoir visualiser les informations sous deux formes
•
Une forme graphique.
•
Une forme littérale avec affichage des angles en X et Y.
J'ai inclus dans le cahier des charges le but d'utiliser une seule pile
pour l'alimentation du montage et de concevoir un PCB.
4 Dates importantes
1
Début
14 Novembre 2005
Remise du rapport
20 Mars 2006
Défense
27 Mars 2006
Field Programmable Logic Array - composant à logique programmable
Métraux Nathanaël
B - 2 /2
13 mars 2006
Mode d'emploi
Travail de semestre 2005
Le 14 mars 2006.
Table des matières
1
2
3
4
5
Un peu d'histoire
Plan du boîtier
Montage de la pile
Spécifications
Explication de l'affichage
2
4
4
5
5
Mode d'emploi
1 Un peu d'histoire
Depuis de nombreuse année il a été nécessaire a l'homme de pouvoir placer
quelque chose a plat ou a la verticale et ceci le plus facilement possible. Des
outils ancestraux existe encore aujourd'hui et son utilisé par nombre de
personnes dans la maçonnerie.
On peut par exemple cité les niveaux a bulle qui donne l'horizontale ou la
verticale mais cette outil requiert d'avoir une référence pour être juste.
Le fil a plomb permet de faire la même chose mais ne nécessite aucun
calibrage, le fameux fil a plomb se réalise très facilement, un poids et un fil, et
on obtient une mesure de la verticale très précise.
Outils romains: pierre tombale de Lucius Alfius Statius, Aquileia, Via Petrada.
Métraux Nathanaël
C - 2 /5
14 mars 2006
Mode d'emploi
On peut facilement donné l'horizontale ou un angle avec un fil à plomb comme
le montre l'équerre ci-dessous:
Equerre à fil à plomb provenant de la
tombe de Semerdjen (XIXe dynastie
égyptienne). Musée du Caire. Photo tirée
de "La symbolique maçonnique du
troisième millénaire", Irène Mainguy,
Dervy, 2003.
Un mur qui penche risque de tomber. Le
maçon qui veut construire un mur
d'aplomb vérifie son travail en appliquant
un fil à plomb contre le mur car le poids
tend toujours le fil à la verticale.
Métraux Nathanaël
C - 3 /5
14 mars 2006
Mode d'emploi
2 Plan du boîtier
Sur le coté droit l'interrupteur permet de mettre en ou hors tension le montage.
3 Montage de la pile
1. Mettre le montage hors tension. (Interupteur sur 0)
2. Devisser la face du côté opposé de l'interrupteur.
3. Déposer le couvercle a plat.
4. Ôter la pile à l'aide d'un tournevis.
5. Placer la nouvelle pile à dans le support. (Faire attention à la
polarité)
6. Placer le couvercle sur le boîtier.
7. Remettre les vis.
8. Mettre en tension pour tester le fonctionnement.
Métraux Nathanaël
C - 4 /5
14 mars 2006
Mode d'emploi
4 Spécifications
Alimentation de 0.9 V à 1.8 V supporte tous types de pile 1.5V de type de LR6
ou AAA.
Le montage est capable de mesurer de 0 à ± 90° dans les angles X - Y.
Consommation de 250 mA à 1.5V d'alimentation soit environ 300mW de
consommation environ.
5 Explication de l'affichage
A la mise sous tension de l'appareil l'image ci-dessous apparaît environ 1
seconde.
Une fois l'introduction passée, l'écran ci-dessous apparaît.
Le point central s'ffiche en vert lorsque les deux angles X et Y sont à zéro ou
quand l'appareil est a zéro.
Un point rouge s'affiche en fonction de la position de l'appareil en X ou en Y.
Métraux Nathanaël
C - 5 /5
14 mars 2006
Explication du
code
Travail de semestre 2005
Le 14 mars 2006.
Table des matières
1
2
3
4
5
Introduction
Le langage VHDL
- 2.1 Détails techniques
- 2.2 Historique
- 2.3 Introduction au VHDL
- 2.4 Exemples de code VHDL
Logiciel utilisé pour l'élaboration du code
- 3.1 Editeur VHDL
- 3.2 Compilatateur
Assignation des pattes
Explication des blocs
- 5.1 Top Level
- 5.2 Global
- 5.3 Diagramme de flux
- 5.4 Initialisation du LCD
- 5.5 Image d'accueil
- 5.6 Interface SPI
- 5.7 La PWM
- 5.8 Génération de la table calcul
- 5.9 Affichage des caractères
- 5.10 Affichage de la valeur de X et Y
- 5.11 Table de caractères
- 5.12 La modification de la couleur des points
- 5.13 Contrôle du point milieu
- 5.14 Points extérieures
2
2
2
3
4
5
8
8
10
14
15
15
16
17
18
19
20
21
22
23
24
24
25
26
26
Explication du code
1 Introduction
Le but de la FPGA est de pouvoir tout inclure dans un seul composant.
Le présent projet à nécessité une APEX EP20K300EQC240-3 de chez Altera.
Le majeur problème étant la place requise par les ROM pour les images.
Le langage VHDL
2 Le langage VHDL
- 2.1 Détails techniques
La syntaxe du VHDL est tirée du langage Ada, dont les mots clefs ont été
adaptés à la conception matérielle. L'une des particularités du VHDL provient
du fait qu'il est possible d'exprimer facilement le parallélisme présent à
l'intérieur d'un circuit.
Le but d'un tel langage de description du matériel est de faciliter le
développement d'un circuit numérique en fournissant une méthode rigoureuse
de description du fonctionnement et de l'architecture du circuit désirée. L'idée
est de ne pas avoir à réaliser (fondre) un composant réel, en utilisant à la place
des outils de développement permettant de vérifier le fonctionnement attendu.
Ce langage permet en effet d'utiliser des simulateurs, dont le rôle est de tester
le fonctionnement décrit par le concepteur.
L'étape suivante consiste à synthétiser cette description matérielle pour obtenir
un composant réalisant les fonctions désirées, à l'aide d'éléments logiques
concrets (portes logiques, bascules ou registres). Ceux-ci seront implémentés,
selon la technologie utilisée, soit en transistors (dans le cas d'un ASIC), ou plus
couramment en se basant sur les éléments programmables des FPGA. Pour ce
dernier cas, il faut alors passer encore par des phases de placement et de
routage qui consistent à placer les éléments synthétisés en fonction des
ressources particulières disponibles dans les différents FPGA.
Métraux Nathanaël
D - 2/25
14 mars 2006
Explication du code
- 2.2 Historique
Originellement commandé par le ministère de la défense américain, celui-ci lui
a finalement préféré le langage Verilog HDL, très similaire. Il existe de fait une
quasi équivalence entre les deux langages, d'où l'existence de nombreux scripts
de traduction de l'un vers l'autre. Le langage VHDL est maintenant
principalement utilisé par les entreprises européennes.
La version initiale de VHDL, standard IEEE 1076-1987, incluait un large éventail
de types de données, numériques (entiers, réels), logiques (bits, booléens),
caractères, temps, plus les tableaux de bits et chaînes de caractères.
L'un des principaux problèmes concernait le type bit. Celui-ci ne pouvant
prendre que 2 valeurs (0, 1), il était impossible de représenter les signaux de
valeur inconnue ou encore les signaux en haute impédance, ainsi que la "force"
d'un signal (faible, forte ou nulle). La norme IEEE 1164 définit le type std_logic
avec 9 états possibles. Ceci a été adopté dans le VHDL-93 (seconde version de
la norme IEEE 1076).
Afin de répondre aux différents problèmes de l'électronique, la norme VHDL a
du évoluer. L'IEEE Design Automation Standards Committee (DASC) a créé la
norme IEEE 1076.1, ou VHDL-AMS (VHDL-Analog & Mixed Systems). Cette
nouvelle norme est une extension de la norme IEEE 1076-1987 déjà existante.
Elle supporte à présent la description et la simulation de circuits analogiques,
numériques, et mixtes (analogique et numérique).
Métraux Nathanaël
D - 3/25
14 mars 2006
Explication du code
- 2.3 Introduction au VHDL
En VHDL, on décrit l’architecture d’un « module matériel » en deux temps :
•
Une ENTITY : il s’agit de déclarer ce que le module expose au monde
extérieur, principalement la liste des E/S d’un module (exemple pour une
porte logique classique : deux entrées a et b, et une sortie s).
•
Une ARCHITECTURE : il s’agit de décrire le fonctionnement d’un module
dont les E/S ont été définies dans l'ENTITY. Plusieurs modules aux
fonctionnements très différents et donc décrits par plusieurs
ARCHITECTUREs, peuvent être basés sur une même ENTITY. (exemple
de plusieurs portes logiques à deux entrées et une sortie : ET, OU,
XOR…)
C’est donc l'ARCHITECTURE qui contient la description de la fonction matérielle
désirée :
•
soit sous forme de comportement attendu (behaviour), c'est-à-dire
orienté fonctionnel,
•
soit sous forme de description précise de l’architecture matérielle (les
portes logiques à utiliser).
Dans cette ARCHITECTURE, la logique utilisée peut être :
•
soit combinatoire (on dit « concurrente », c'est-à-dire traitements en
parallèle),
•
soit dépendante du temps (on parle de logique « séquentielle par
opposition à la logique concurrente », c'est-à-dire traitements en série).
Métraux Nathanaël
D - 4/25
14 mars 2006
Explication du code
- 2.4 Exemples de code VHDL
Un multiplexeur 3 vers 1 (trois architectures concurrentes différentes)
En VHDL, il faut distinguer le contenant du contenu, nommés respectivement
entité et architecture.
Le fichier VHDL
Un fichier VHDL doit toujours porter le nom de l'entité qu'il contient. Son
extension standard est ".vhd" Avant toute chose, il faut commencer par
déclarer l'utilisation des librairies à utiliser dans le projet:
-- En VHDL : une ligne de commentaires commence avec deux "-"
-- le fichier doit porter le même nom que l'entité qu'il décrit, ici ce sera
"logique_3_vers_1.vhd"
-- Il faut toujours commencer par importer les bibliothèques VHDL standards normalisées par
l'IEEE
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;
L'entité
Nous décrivons en premier lieu l'interface (l'entité) d'un composant
multiplexeur, entité qui nous servira pour les trois exemples d'architectures
concurrentes permettant de réaliser un multiplexeur.
-- Voici un exemple d’entité, décrivant les E/S utilisées
-- par les trois exemples d’architectures purement concurrentes :
--- ATTENTION, l'entité doit avoir le même nom que le fichier (logique_3_vers_1.vhd)
ENTITY logique_3_vers_1 IS
PORT
(
a
b
c
adr
s
);
:
:
:
:
:
IN STD_LOGIC;
IN STD_LOGIC;
IN STD_LOGIC;
IN STD_LOGIC_VECTOR (1 downto 0);
OUT STD_LOGIC
END logique_3_vers_1;
Métraux Nathanaël
D - 5/25
14 mars 2006
Explication du code
Première Architecture
La première architecture permettant de décrire ce multiplexeur est en fait plus
particulièrement adaptée aux équations simples, ou aux fonctions en somme de
produits impliquants un nombre d'entrées variable (par exemple s=a.b+a.b.c)
car cette méthode est très souple et permet de tout faire. En contrepartie elle
est peu lisible pour les équations complexes.
-- Première architecture concurrente décrivant un mux :
ARCHITECTURE mux_3_vers_1 OF logique_3_vers_1 IS
BEGIN
s <= ( a AND NOT adr(1)
OR ( b AND NOT adr(1)
OR ( c AND adr(1)
-- OR ('0'AND adr(1)
l'équation du dessus
AND NOT adr(0) )
AND
adr(0) )
AND NOT adr(0) );
AND
adr(0) );
-- Cette dernière ligne est implicite dans
END mux_3_vers_1;
Deuxième Architecture
La deuxième architecture permettant de décrire ce multiplexeur est limitée aux
fonctions dont le nombre d'entrées est fixée (n) pour lesquelles elle est tout
particulièrement adaptée. Cependant, avec cette méthode il est obligatoire de
lister l'ensemble des états possible (2^n).
-- Deuxième architecture concurrente décrivant un mux :
ARCHITECTURE mux_3_vers_1 OF porte_3_vers_1 IS
BEGIN
WITH adr SELECT
s <= a WHEN
b WHEN
c WHEN
‘0’ WHEN
"00",
"01",
"10",
"11";
END mux_3_vers_1;
Métraux Nathanaël
D - 6/25
14 mars 2006
Explication du code
Troisième Architecture
La troisième architecture permettant de décrire ce multiplexeur est elle aussi
limitée aux fonctions dont le nombre d'entrées est fixée (n) pour lesquelles elle
est tout particulièrement adaptée. Cependant, avec cette méthode il n'est pas
obligatoire de lister l'ensemble des états possible, puisque la dernière ligne
permet d'appliquer un traitement par défaut.
-- Troisième architecture concurrente décrivant un mux:
ARCHITECTURE mux_3_vers_1 OF porte_3_vers_1 IS
BEGIN
s <= a WHEN adr = "00" ELSE
b WHEN adr = "01" ELSE
c WHEN adr = "10" ELSE
‘0’;
END mux_3_vers_1;
Architecture séquentielle - une bascule D
La description d'une architecture séquentielle, c'est à dire avec une fonction
dépendante du temps (ie. de l'horloge), passe par l'utilisation de process.
-- Architecture séquentielle pour une bascule D :
ARCHITECTURE bascule_d OF xxx IS
BEGIN
bascule : PROCESS (clk, reset)
IF reset = ‘1’ THEN
q <= 0;
ELSE
IF clk’event AND clk = ‘1’ THEN
q <= d;
END IF;
END IF;
END bascule;
END bascule_d;
Métraux Nathanaël
D - 7/25
14 mars 2006
Explication du code
3 Logiciel utilisé pour l'élaboration du code
L'élaboration d'un projet en VHDL nécessite beaucoup d'attention quand au
temps de propagation, la majeure partie des problèmes proviennent de ceuxci.
- 3.1 Editeur VHDL
Création d'un projet sous ease
Une fois le nouveau projet (« File -> New ») il faut ouvrir le gestionnaire des
fichier en utilisant le bouton ci-dessous:
Cliquer sur l'accès au propriété du Top level.
Métraux Nathanaël
D - 8/25
14 mars 2006
Explication du code
Pour avoir un projet qui soit modifiable à coup sûr il faut respecter les étapes
suivantes.
Création de la librairie Work
Choix de l'emplacement de fichier de sortie
Designer permet de donner les indications concernant le dévellopeur, ce point et le
suivant ne sont pas primordiaux.
Métraux Nathanaël
D - 9/25
14 mars 2006
Explication du code
- 3.2 Compilatateur
Paramètrage de Quartus II (Altera)
Une fois le fichier compilé (voir le chapitre du Piggybag pour cette étape) il se
peut que des problèmes de timing apparaîssent.
Ceux-ci sont indiqués par un « Critical Warning », en ouvrant le fichier de
compilation on peut les voir apparaître.
En cliquant sur ce bouton on arrive sur la fenêtre des paramètrages des clocks.
Métraux Nathanaël
D - 10/
10/25
14 mars 2006
Explication du code
Il faut cliquer sur Clocks pour accéder au paramètrage des clocks.
Une nouvelle fenêtre s'ouvre alors.
Métraux Nathanaël
D - 11/
11/25
14 mars 2006
Explication du code
Pour venir ajouter les clocks qui posent un problème lors de la compilation il
faut presser sur new
A ce moment il faut donner un nom à la modification et cliquer sur [...] pour
arriver sur la liste.
Métraux Nathanaël
D - 12/
12/25
14 mars 2006
Explication du code
Pour afficher la liste des nets utilisés sur le logiciel il faut cliquer sur « List ».
Pour les ajouter il suffit de presser [>] ou [>>].
Ne pas oublier de cliquer sur OK sur chacune des fenêtres, sinon les
modifications ne sont pas prises en compte.
Métraux Nathanaël
D - 13/
13/25
14 mars 2006
Explication du code
4 Assignation des pattes
CS
SDA
SCK
Reset
Métraux Nathanaël
113
115
119
136
PWM_x
PWM_y
Clock
D - 14/
14/25
129
131
123
14 mars 2006
Explication du code
5 Explication des blocs
Les différents schémas bloc présentés ci-dessous expliquent la méthode utilisée
pour arriver à faire fonctionner le projet.
Je n'ai pas inséré le code dans le rapport car il y a plus de 1200 pages A4.
- 5.1 Top Level
Le top level est le bloc important, on pourrait comparer celui-ci au composant
que l'on viendrait placer dans un schéma pour créer un PCB, ce schéma est
utilisé pour l'élaboration de l'assignation des pattes.
Métraux Nathanaël
D - 15/
15/25
14 mars 2006
Explication du code
- 5.2 Global
Métraux Nathanaël
D - 16/
16/25
14 mars 2006
Explication du code
- 5.3 Diagramme de flux
Les étapes importantes du software sont commandées via un diagramme de
flux ou plus communément appelé « State machine » en VHDL.
Les étapes du diagramme
s1 – s3
s4
s5
s6
s8
Métraux Nathanaël
Reset du LCD
Initialisation du LCD
Affichage de l'intro
Temporisation
Affichage de l'image active avec les
angles
D - 17/
17/25
14 mars 2006
Explication du code
- 5.4 Initialisation du LCD
Un compteur est cadencé à chaque fois que la SPI a fini d'envoyer une donnée
à l'écran.
Dés que l'initialisation est terminée la patte « Fin_Init » prend '1' est active
l'étape suivante du diagramme de flux qui est l'affichage de l'image d'accueil.
- 5.5 Image d'accueil
Cette étape est similaire à la précédente sauf que la taille
stockée est de 16384 Bytes, celle-ci contenant l'image du
logo d'accueil.
Comme avant, dès que l'affichage est terminé la patte
« Fin_Intro » prends '1' est active l'étape suivant sur le
diagramme.
Métraux Nathanaël
D - 18/
18/25
14 mars 2006
Explication du code
- 5.6 Interface SPI
L'interface SPI est le moyen utilisé pour communiquer avec l'écran LCD celui-ci
étant en mono directionnel, il est donc facile d'utilisation.
Le concept utilisé pour la SPI est un multiplexeur, la sortie est influencée
directement par les données palcées en entrée.
L'interface d'entrée contient les data (8 Bits) et la commande CD(1 Bit). Le
multiplexeur 16 to 1 est attaqué via un compteur 5 bits.
Le multiplexeur génère tous les signaux nécessaires pour que la norme SPI soit
respectée au mieux selon la datasheet afin de respecter les problèmes de
métastabilité sur l'écran LCD.
Métraux Nathanaël
D - 19/
19/25
14 mars 2006
Explication du code
- 5.7 La PWM
La PWM est utilisée pour aquérir les données depuis l'accéléromètre.
Afin d'obtenir la valeur la plus précise possible, le cadencement de la FPGA à
été fixé a 3.276'800 Mhz. Le bloc PWM_read est un compteur qui est déclenché
au flan montant du signal d'entrée et stoppé au flan descendant.
architecture a0 of PWM_read is
signal pwm_1:std_logic_vector(12 downto 0);
begin
process (PWM,clock)
begin
if PWM = '1' then
if rising_edge(Clock) then
pwm_1 <= pwm_1 + "0000000000001";
end if;
else
pwm_1 <= "0000000000000";
end if;
end process;
process (PWM)
begin
if falling_edge(PWM) then
OUT_pwm <= pwm_1(12 downto 5);
end if;
end process;
end a0 ; -- of PWM_read
Ce compteur est en 13 Bits et le clock utilisé et le clock de la FPGA divisé par
quatre afin d'avoir une résolution sur 256 valeurs précises.
Métraux Nathanaël
D - 20/
20/25
14 mars 2006
Explication du code
La valeur BCD est générée à travers une table adressée en 8 Bits.
Cette table est générée avec un petit code en C++ dont le calcul est:
- 5.8 Génération de la table calcul
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int dec_to_bin_8_bit(int a)
{
int val = 0;
if(a >= 128) {val = val + a/128 * 10000000; a = a - 128;}
if(a >= 64) {val = val + a/64 * 1000000; a = a - 64;}
if(a >= 32) {val = val + a/32 * 100000; a = a - 32;}
if(a >= 16) {val = val + a/16 * 10000; a = a - 16;}
if(a >= 8 ) {val = val + a/8 * 1000; a = a - 8;}
if(a >= 4 ) {val = val + a/4 * 100; a = a - 4;}
if(a >= 2 ) {val = val + a/2 * 10; a = a - 2;}
if(a >= 1 ) {val = val + a;}
return val;
}
main()
{
FILE *destination;
destination = fopen("table_conversion.txt","w");
fprintf(destination,"-- Table de convertion binaire en BCD\n");
fprintf(destination,"case (In_Bin) is\n");
for (int i = 0; i<=256; i++)
{
int duty,t1,t2;
t1 = i;
t2 = 256;
duty = t1/t2;
float a;
int valh,vall,BCD_l,BCD_h,b;
a = abs ( asin((((float(i))/256)-0.5)/0.125 )*(180.0/3.1415));
if (a > 90) a = 90.0;
if (a < 10) b = int(a) ;else
if (a < 20) b = int(a) - 10;else
if (a < 30) b = int(a) - 20;else
if (a < 40) b = int(a) - 30;else
if (a < 50) b = int(a) - 40;else
if (a < 60) b = int(a) - 50;else
if (a < 70) b = int(a) - 60;else
if (a < 80) b = int(a) - 70;else
if (a < 90) b = int(a) - 80;else
if (a < 100) b = int(a) - 90;
int low,high;
if (i <= 255) {low = i; }
else
{
low = i & (0x00FF);
high = i>>8;
}
valh = dec_to_bin_8_bit(int(a/10));
vall = dec_to_bin_8_bit(b);
low = dec_to_bin_8_bit(low);
high = dec_to_bin_8_bit(high);
fprintf(destination,"when \"%0.8d\" => BCD <= \"%0.4d%0.4d\"; -- %d
\n",low,valh,vall,int(a));
}
fprintf(destination,"when others => BCD <= \"00000000\";\n");
fprintf(destination,"end case;\n");
fclose(destination);
}
Métraux Nathanaël
D - 21/
21/25
14 mars 2006
Explication du code
- 5.9 Affichage des caractères
La partie d'affichage du message d'accueil (AngleXY) dans le projet ease, est
assez complexe et demande une tournure d'esprit un peu particulière.
La PWM donne deux valeurs, une en BCD et l'autre en binaire, la valeur en
binaire est utilisée pour affficher la valeur sur les points, la valeur en BCD pour
afficher la valeur en décimal pour les angles X et Y.
Métraux Nathanaël
D - 22/
22/25
14 mars 2006
Explication du code
- 5.10 Affichage de la valeur de X et Y
« Adresse(13:0) » vient attaquer le bloc « abc » et place sur PixelOUT la
valeur du pixel à afficher en fonction de l'emplacement du curseur sur l'écran
LCD.
La partie « Conv_Couleur » donne la couleur du pixel à afficher, si PixelOUT est
à '1', le pixel sera coloré en noir sinon il sera en blanc.
- 5.11 Table de caractères
Les caractères utilisé sont:
●
Police:
Verdana
●
Hauteur:
9 pixels
-- EASE/HDL begin --------------------------------------------------------------- Architecture 'a0' of 'ROM.
--------------------------------------------------------------------------------- Copy of the interface declaration of Entity 'ROM' :
--- port(
-- BCD : in std_logic_vector(3 downto 0) ;
-- Pixel : out std_logic_vector(0 to 62) ) ;
--- EASE/HDL end ---------------------------------------------------------------architecture a0 of ROM is
begin
process (BCD)
begin
case (BCD) is
-- 012345678901234567890123456789012345678901234567890123456789012
when "0000" => Pixel <="011111011000111100011110001111000111100011110001111000110111110";
when "0001" => Pixel <="111111000110000011000001100000110000011000001100000111100011000";
when "0010" => Pixel <="111111100001100001100001100001100001100000110000011000110111110";
when "0011" => Pixel <="011111011000111100000110000001111001100000110000011000110111110";
when "0100" => Pixel <="011000001100001111111011000101100100110100011010001110000110000";
when "0101" => Pixel <="011111011000111100000110000011000000111110000011000001101111110";
when "0110" => Pixel <="011111011000111100011110001111000110111110000001100001100111100";
when "0111" => Pixel <="000011000011000001100001100000110000110000011000011000001111111";
when "1000" => Pixel <="011111011000111100011110001101111101100011110001111000110111110";
when "1001" => Pixel <="001111001100001100000111111011000111100011110001111000110111110";
when others => Pixel <="111111111111111111111111111111111111111111111111111111111111111";
end case;
end process;
end a0 ; -- of ROM
Métraux Nathanaël
D - 23/
23/25
14 mars 2006
Explication du code
- 5.12 La modification de la couleur des points
Les points changent de couleurs en fonction de la position du montage. Pour ce
faire une série de comparaison est effectuée, si la valeur centrale (128 ou 0
degrés apparaît), le point du milieu est activé alors que tous les autres sont
éteints.
Métraux Nathanaël
D - 24/
24/25
14 mars 2006
Explication du code
- 5.13 Contrôle du point milieu
architecture a0 of Milieu_Control is
begin
process (Bas_in,Haut_in,Droite_in,Gauche_in)
begin
if (Bas_in = '0' and Haut_in = '0' and Droite_in = '0' and Gauche_in = '0') then
Milieu <= "00011100";
else
Milieu <= "11111111";
end if;
end process;
end a0 ; -- of Milieu_Control
- 5.14 Points extérieures
Les 4 points extérieures utilisent le même principe, il y a juste le nom du signal
qui change.
begin
process (Droite_in)
begin
if Droite_in = '1' then
Droite <= "11100000";
else
Droite <= "11111111";
end if;
end process;
end a0 ; -- of Droite_control
Métraux Nathanaël
D - 25/
25/25
14 mars 2006
Piggybag APEX
Travail de semestre 2005
Le 14 mars 2006.
Table des matières
1
2
3
4
Présentation
- 1.1 Possibilité
- 1.2 Alimentation
Emplacement des pattes
Mise en oeuvre pour le développement
- 3.1 Création d'un nouveau projet
- 3.2 Choix du composant
- 3.3 Programmation du composant
- 3.4 Programmation du composant
Schéma du piggybag
2
2
2
3
4
4
7
9
10
11
Piggybag APEX
1 Présentation
- 1.1 Possibilité
Le piggybag fait au centre professionel du Nord Vaudois, permet de placer des
FPGA de chez Altera allant de 100 000 - 300 000 portes.
Il s'agit des Altera APEX EP20K100 à EP20K300.
- 1.2 Alimentation
Les alimentations sont en 1.8V pour le core et 3.3V pour les buffer logiques.
Le system Multivolt d'Altera permet d'entrer des tensions de 5V mais ne permet
pas de sortir des tensions supérieures a 3.3V.
Métraux Nathanaël
E - 2/11
14 mars 2006
Piggybag APEX
2 Emplacement des pattes
Connecteur
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Métraux Nathanaël
X8
X13
X9
X10
113
114
115
116
117
118
119
121
123
124
125
126
NC
NC
129
130
131
133
134
135
136
138
NC
NC
NC
NC
170
171
172
173
174
NC
NC
178
180
182
183
184
186
187
190
192
192
NC
NC
196
197
198
201
202
203
207
215
216
217
219
220
221
222
223
224
225
226
NC
NC
230
231
232
233
234
235
236
237
238
APEX
2
3
4
NC
NC
7
8
9
10
11
13
NC
NC
16
17
18
20
NC
NC
23
NC
NC
35
NC
NC
NC
NC
40
41
43
44
46
47
48
49
50
51
52
53
54
55
57
58
59
61
62
63
64
65
66
68
69
70
71
NC
NC
74
75
76
77
79
80
81
82
83
84
85
94
95
96
98
99
100
101
102
103
104
105
NC
NC
109
110
111
113
E - 3/11
14 mars 2006
Piggybag APEX
3 Mise en oeuvre pour le développement
On commence par brancher, le piggybag au byteblaster préalablement branché
sur le port parrallèle du PC.
- 3.1 Création d'un nouveau projet
Ensuite on ouvre le logiciel Quartus
Dans le menu démarrer on crée un nouveau projet
Métraux Nathanaël
E - 4/11
14 mars 2006
Piggybag APEX
La fenêtre suivante apparaît
Ici on va pouvoir choisir dans l'ordre des cases
•
Le répertoire de travail
•
Le nom du projet
•
Le top level du fichier VHDL
on peut choisir à trois reprise le fichier VHDL conçu via la case "..."
Puis on presse le bouton Next
Métraux Nathanaël
E - 5/11
14 mars 2006
Piggybag APEX
La nouvelle rubrique demande le ou les fichiers VHDL utilisé dans le projet
En pressant les "..." on ouvre une fenêtre et l'on choisit notre fichier.
Il ne faut pas oublier de presser la touche "Add..." car sinon le fichier ne sera
pas intégrer au projet.
Puis on termine cette étape par la touche "Next".
Métraux Nathanaël
E - 6/11
14 mars 2006
Piggybag APEX
- 3.2 Choix du composant
Dans notre cas, nous allons sélectionner une APEX20KE en boîtier 240 pins.
On termine cette étape par "Next >".
La rubrique EDA tools Wizard ne doit rien avoir de coché.
Métraux Nathanaël
E - 7/11
14 mars 2006
Piggybag APEX
Une fois la touche "Next>" pressée on obtient le résumé de la configuration du
projet.
Métraux Nathanaël
E - 8/11
14 mars 2006
Piggybag APEX
- 3.3 Programmation du composant
On commence par compiler le nouveau projet
Avec la flèche violette.
Une fois le projet compiler, il faut assigner les pattes au composant
Une fois la fenêtre ouverte, on ouvre à nouveau le menu "assignement". et on
presse sur "Back-Annotate Assignements..."
Sans rien modifier on presse "OK" dans la fenêtre qui s'ouvre.
A ce moment là, le composant dessiné montre les pattes utilisées colorées en
rouge.
On peut venir les déplacer pour changer. Il faut ensuite recompiler pour que le
changement soit pris en compte.
Métraux Nathanaël
E - 9/11
14 mars 2006
Piggybag APEX
- 3.4 Programmation du composant
On commence par presser le bouton où un composant est dessiné, si on laisse
en surbrillance il doit écrire "Programmer"
Une fois l'interface de programmation ouverte, on choisit le Mode "Passive
serial".
Puis on presse sur "Start". Lorsque la barre atteint 100%, le composant est
programmé.
Métraux Nathanaël
E - 10/
10/11
14 mars 2006
Piggybag APEX
4 Schéma du piggybag
Métraux Nathanaël
E - 11/
11/11
14 mars 2006
Alimentations
Travail de semestre 2005
Le 14 mars 2006.
Table des matières
1
2
3
4
5
6
7
Introduction
Ce que le montage requiert
Obtention des tensions
- 3.1 But
- 3.2 Choix des composants
Bref présentation de l'IC
- 4.1 Dessin
- 4.2 Schéma interne
- 4.3 Schéma typique de montage du MAX 1722
Où trouver les composants
Design de l'alimentation (PCB)
- 6.1 Conception du PCB
Schéma des alimentations utilisées
- 7.1 Alimentation 1.8V
- 7.2 Alimentation 3.3V
- 7.3 Alimentation 6V
2
2
2
2
2
3
3
3
4
4
4
4
5
5
5
6
Alimentations
1 Introduction
Dans cette rubrique, je vais expliquer comment je m'y suis pris pour alimenter
le montage.
2 Ce que le montage requiert
Le montage est globalement peu gourmand en courant, ce qui permet de
travailler avec des composants relativement petits.
Les tensions nécessaires sont:
•
1.8V pour le core de la FPGA
•
3.3V pour l'écran LCD, la FLASH.
•
6V pour le rétroéclairage du LCD
3 Obtention des tensions
- 3.1 But
Ayant placé dans le cahier des charges que l'alimentation devait se faire avec
une seule pile.
Le but est d'élever les tensions de 0.9V aux tensions données. La pile fournit
1.5 voir 1.6V mais seulement quand elle est neuve, le but est de la vider
jusqu'au bout.
- 3.2 Choix des composants
Un tour sur le site de Maxim donne vite des solutions rapides et fiables. De plus
le site offre la possibilité de commander des samples ce qui permet
d'économiser un peu sur le projet en global et d'essayer de IC que l'on ne
trouve pas chez les fournisseurs habituels.
Les IC choisit sont:
•
MAX1724EZK33 pour le 3.3V
•
MAX1722EZK1 pour le 1.8V et le 6V
Ces alimentations ont besoin d'une self de 10uH et deux condensateurs,
l'alternative face un IC tel que le 780x est pas mal, car on travail avec une
tension d'entrée allant de 0.5V à 1.8V pour des tensions de sortie allant
jusqu'a 6V et un courant max de 150 mA.
1
Pour de plus amples information se réferer a la note d'application sur le CD en annexe (../Note d'application/MAX1722-MAX1724.pdf)
Métraux Nathanaël
F - 2 /6
14 mars 2006
Alimentations
4 Bref présentation de l'IC
- 4.1 Dessin
- 4.2 Schéma interne
Métraux Nathanaël
F - 3 /6
14 mars 2006
Alimentations
- 4.3 Schéma typique de montage du MAX 1722
On peut très bien remplacé R2 et R1 par un potentiomètre.
5 Où trouver les composants
A la date de rédaction de ce document il n'est pas possible de trouver ce
composant en suisse, mais il est disponible en « sample » chez Maxim1. Il faut
faire attention car le nombre est limité à deux exemplaires et met autour de 6
semaines pour arriver suivant les stocks.
Les composants standards sont disponible chez Farnell ou Distrelec.
6 Design de l'alimentation (PCB)
Il ne faut pas perdre de vue que ce genre d'alimentation ne travail pas comme
un régulateur, il s'agit d'une véritable alimentation à découpage, l'inconvenient
est qu'il faut faire très attention au design du PCB sinon l'alimentation se
transformera en véritable nid a parasite.
Pour ce faire, je déconseil d'utiliser ce genre de composant sur des montages
analogique.
- 6.1 Conception du PCB
Si l'on veut respecter la CEM et avoir une alimentation plutôt qu'un oscillateur,
il faut impérativement que tous les composants nécessaires à l'alimentation soit
au plus proche de l'IC, la configuration des pattes permet de réalisé quelque
chose de joli avec des composants SMD.
1
www.maxim-ic.com
Métraux Nathanaël
F - 4 /6
14 mars 2006
Alimentations
7 Schéma des alimentations utilisées
- 7.1 Alimentation 1.8V
L2
10uH
MAX1722EZK
1
Batterie
3
FB
U2
5
LX
4
OUT
GND
C3
10uF
Batt
1.8V
2
C4
10uF
GND
R3
R4
100K
47K
Les résistances R3 et R4 doivent être calculées, selon la datasheet:
R2=R1
Vout
−1
Vfb
Vfb vaut 1.235V.
Les valeurs obenuent sont pour R3 = 100K:
R2=100K 
1.8V
−1=45.73K soit 47K
1.235
- 7.2 Alimentation 3.3V
L3
10uH
MAX1724EZK30
1
Batterie
3
FB
U3
LX
GND
2
C5
10uF
Batt
OUT
5
4
3V
C6
10uF
GND
La tension de 3.3V est obtenue directement par l'IC il n'y a rien besoin de
Métraux Nathanaël
F - 5 /6
14 mars 2006
Alimentations
calculer.
- 7.3 Alimentation 6V
L1
10uH
MAX1722EZK
1
Batterie
3
FB
U1
OUT
5
4
6V
C2
10uF
2
R1
LX
GND
C1
10uF
Batt
R2
GND
100K
390K
Les résistances R1 et R2 doivent être calculée, selon la datasheet:
R2=R1
Vout
−1
Vfb
Vfb vaut 1.235V.
Les valeurs obenuent sont pour R1 = 100K:
R2=100K 
Métraux Nathanaël
6V
−1=385.83K soit 390K
1.235
F - 6 /6
14 mars 2006
Accéléromètre
Travail de semestre 2005
Le 14 mars 2006.
Table des matières
1
2
3
4
5
6
Introduction
- 1.1 Domaine d'utilisation de l'accéléromètre
Composant utilisé
- 2.1 Choix du composant
- 2.2 Présentation du composant
- 2.3 Fonctions et capacités de l'accéléromètre
Conversion du signal PWM en analogique
Circuit imprimé d'adaptation
- 4.1 Implantation
- 4.2 Pinout du composant
Signaux générés
Calculs
2
2
2
2
3
3
4
4
5
5
6
6
Accéléromètre
1 Introduction
- 1.1 Domaine d'utilisation de l'accéléromètre
De nos jours, nombre d'applications utilisent des accéléromètres, dans le
monde de l'automobile ils sont énormément présents.
De nos jours la sécurité des voitures est accrue grâce à des systèmes tel que
l'ESP. Celui-ci, est un trés bon exemple d'utilisation de l'accéleromètre car dès
le moment où la voiture subit une accélération latérale rapide, un système de
correction élèctronique intervient immédiatement pour remettre le véhicule sur
la bonne trajectoire.
Les feux au xénon fleurissent sur la majeur partie des nouveaux véhicules.
Ceux-ci étant particulièrement lumineux, ils éblouiraient les autres usagers de
la route si aucun réglage n'était fait. Le réglage de ceux-ci est fait au travers
d'une électronique et de moteur. Les informations fournies à l'élèctronique de
commande proviennent d'accéleromètres qui donnent la position horizontale de
manière à ce que les phares ne dépassent jamais une certaine hauteur et ceci
peu importe la charge du véhicule.
2 Composant utilisé
- 2.1 Choix du composant
J'avais utilisé ce composant pour faire des mesures d'accéleration sur une
voiture et ainsi déduire la puissance de celle-ci en fonction de son poid.
J'en ai profité pour proposer ce composant à mes collégues de classe et nous
avons passé la commande chez Maurer Alexandre Distribution, l'entreprise d'un
ami.
Le composant choisi donne deux valeurs PWM une en X et l'autre en Y.
Métraux Nathanaël
G - 2 /6
14 mars 2006
Accéléromètre
- 2.2 Présentation du composant
Le MXD7202GL de MEMSIC est un accéléromètre permettant de mesurer
l'accélération de façon bidimensionnel. Ce circuit est conçu sur le processus
standard "submicron CMOS", une technique de fabrication "system-on-achip" ou "système-sur-circuit". En effet, cet élément est un système
complet contenant le capteur analogique, ainsi que le système de traitement de
signaux pour obtenir des données digitales
L'accéléromètre possède une échelle de mesure de ±2g. Il fournit un signal
PWM à ces sorties dont le rapport cyclique varie de ±12,5%/g à 5V. L'élément
peut aussi bien mesurer les accélérations statiques (gravité terrestre) que les
accélérations dynamiques (vibrations).
Le capteur interne est basé sur un principe de conversion de la chaleur et ne
requiert aucune masse solide de référence.
L'élément résiste à des chocs de plus de 50'000 g, ce qui lui permet de ne pas
être endommagé lors de l'assemblage sur circuit imprimé.
- 2.3 Fonctions et capacités de l'accéléromètre
•
Low cost (Bas prix).
•
Résolution d'une précision de moins de 1 milli g.
•
Accéléromètre bidimensionnel fabriqué dans un circuit intégré
CMOS monolithique.
•
Traitement des signaux en interne du circuit.
•
Pas d'éléments mobiles dans l'IC (Pas de perte par frottements).
•
Résiste aux chocs de plus de 50'000 g.
•
Boîtier LCC de 5mm x 5mm x 2mm.
•
Tension d'alimentation allant de 2.7V à 5V.
•
Compensation de la sensibilité suivant la température extérieure.
•
Offset zéro g extrêmement faible.
•
Aucun ajustement extérieur nécessaire.
•
Opérationnel de 0°C à 70°C.
Métraux Nathanaël
G - 3 /6
14 mars 2006
Accéléromètre
3 Conversion du signal PWM en analogique
Le signal PWM peut-être converti en signal analogique grâce à un filtre RC placé
sur chacune des sorties.
Le seul point auquel il faut prêter attention dans cette configuration est que
l'impédance du circuit qui suit le capteur soit plus élevée que l'impédance du
filtre RC.
4 Circuit imprimé d'adaptation
Afin que l'accéléromètre puisse être connecté sur un circuit pour composant
traversant, la réalisation d'un circuit imprimé d'adaptation a été nécessaire.
Je tiens a remercier au passage Anto Barisic sans qui ce PCB n'aurait pas vu le
jour et aurait fortement retardé la mise en oeuvre de l'accéléromètre.
Métraux Nathanaël
G - 4 /6
14 mars 2006
Accéléromètre
- 4.1 Implantation
- 4.2 Pinout du composant
1
2
3
4
Métraux Nathanaël
TP (GND)
COM (GND)
PWM Y
5
6
7
8
G - 5 /6
PWM X
2.7V – 5V
14 mars 2006
Accéléromètre
5 Signaux générés
Le capteur utilisé nous fourni une pwm ayant une horloge à 100Hz.
Le rapport cyclique varie en fonction de l'angle.
6 Calculs
La formule donnée dans la datasheet nous donne la valeur par rapport a un 1g.
T1
T2
A la valeur 0 on obtient 0g donc un rapport
cyclique de 50%
− 0.5
0.125
:= A
Pour obtenir la valeur de l'angle formé avec l'horizontale
asin 
T1 
 − 0.5 180
 T2 
⋅
:= Angle
0.125
Métraux Nathanaël
π
G - 6 /6
14 mars 2006
Affichage
Travail de semestre 2005
Le 13 mars 2006.
Table des matières
1
2
3
4
5
6
7
8
9
Introduction
Le choix de l'écran
Spécification de l'écran
- 3.1 Résolution
- 3.2 Interface
- 3.3 Emplacement des pattes
Procédure d'initialisation
- 4.1 Valeur d'initialisation
Stockage des images
- 5.1 Le problème
- 5.2 Les améliorations
Listening du code de la conversion RAW - VHDL
Traitement des images
- 7.1 Le fichier RAW
- 7.2 Le logiciel créé
- 7.3 Les images utilisées
Protocole d'initialisation
Spécifications
2
2
2
2
2
3
4
4
7
7
7
8
9
9
9
9
10
11
Affichage
1 Introduction
Le travail de semestre ayant pour but de mettre en oeuvre nos connaissances,
j'ai décidé d'utiliser un écran qui consomme peu et qui soit en couleur.
La meilleure alternative est un écran de natel, car ceux-ci ont été conçu pour
consommer peu, travailler à des tensions faibles, résistants à un peu tous les
types de traitements que l'on pourrait rencontrer dans un niveau à bulle sur un
chantier.
2 Le choix de l'écran
Après, avoir fait un tour d'horizon sur le net, je suis
tomber sur plusieurs sites parlant de l'écran des
Nokia 6610, 6100 et autre, qui utilisent un driver
connu (PCF88331 de Philips). Pour se fournir un tel
écran j'ai du faire plusieurs démarche chez des
réparateurs de natel.
3 Spécification de l'écran
- 3.1 Résolution
128x 128 pixels avec 3 couleurs (RGB2).
- 3.2 Interface
L'interface se fait via de la SPI comme le montre le chronogramme ci-dessous.
Le protocole est de type SPI mais en uni-directionnel, sur 9 bits dont un bit de
choix pour une trame de données ou de commandes.
1
2
Note d'application sur le CD en annexe
RGB = Red Green Blue (Rouge Vert Bleu)
Métraux Nathanaël
H - 2/11
13 mars 2006
Affichage
- 3.3 Emplacement des pattes
L'image ci-dessus présente l'emplacement des pattes du composant, il faut noter que
l'écran possède deux types de drivers un Epson et un Philips, celuis d'Epson ne
possède que le petit connecteur qui est très difficile à souder, il faut de préférence en
utiliser un de type Philips. La note d'application est plus facile à trouver pour celui-ci.
Il sont disponibles chez www.jelu.se ou www.yampp.com.
Métraux Nathanaël
H - 3/11
13 mars 2006
Affichage
4 Procédure d'initialisation
- 4.1 Valeur d'initialisation
Métraux Nathanaël
H - 4/11
13 mars 2006
Affichage
Métraux Nathanaël
H - 5/11
13 mars 2006
Affichage
Métraux Nathanaël
H - 6/11
13 mars 2006
Affichage
5 Stockage des images
- 5.1 Le problème
Le problème de la FPGA1 est que la capacité de stockage est très vite limitée.
Dans le cas du projet de semestre l'utilisation d'un écran couleur pose un
sérieux problème de place car une image utilise 57Ko en mode RGB sous un
fichier brut RAW2.
- 5.2 Les améliorations
La méthode consiste à transformer l'image en 8 bits de manière à pouvoir
afficher la couleur du pixel directement, cette opération fait gagner autour de
70% de place.
1
2
Field Programmable Logic Array - Composant à logic programmable volatile.
Format brut d'image utilisé par les appareils photos numériques ou les scanners
Métraux Nathanaël
H - 7/11
13 mars 2006
Affichage
6 Listening du code de la conversion RAW - VHDL
#include <stdio.h>
#include <stdlib.h>
int dec_to_bin_8_bit(int a)
//Conversion Int en valeur Binaire ASCII.
{
int val = 0;
if(a >= 128) {val = val + a/128 * 10000000; a = a - 128;}
if(a >= 64) {val = val + a/64 * 1000000; a = a - 64;}
if(a >= 32) {val = val + a/32 * 100000; a = a - 32;}
if(a >= 16) {val = val + a/16 * 10000; a = a - 16;}
if(a >= 8 ) {val = val + a/8
* 1000; a = a - 8;}
if(a >= 4 ) {val = val + a/4
* 100; a = a - 4;}
if(a >= 2 ) {val = val + a/2
* 10; a = a - 2;}
if(a >= 1 ) {val = val + a;}
return val;
}
main()
{
FILE *source;
FILE *destination;
source = fopen("128.raw","rb");
//Fichier source
destination = fopen("out.vhd","w");
//Fichier de destination
for (long i = 0; i<=128*128-1; i++)
//Résolution de l'image - 1 pixel.
{
int r,g,b;
int a;
long val;
a = 0;
r = fgetc(source);
g = fgetc(source);
b = fgetc(source);
a = ((r&0x07)*32) | ((g&0x07)*4) | (b&0x03);
int low,high;
if (i <= 255) {low = i; }
else
{
low = i & (0x00FF);
high = i>>8;
}
val = 0;
val = dec_to_bin_8_bit(a);
low = dec_to_bin_8_bit(low);
high = dec_to_bin_8_bit(high);
if (a == 255)
{
fprintf(destination," -- when \"%0.6d%0.8d\" => Data <= \"%0.8d\";CD <= '1';Fin_Tempo <=
'0'; -- %d a%x r%x g%x b%x\n",high,low,val,i,a,r,g,b);
}
else
{
fprintf(destination,"when \"%0.6d%0.8d\" => Data <= \"%0.8d\";CD <= '1';Fin_Tempo <= '0';
-- %d a%x r%x g%x b%x\n",high,low,val,i,a,r,g,b);
}
}
fclose(source);
fclose(destination);
}
Métraux Nathanaël
H - 8/11
13 mars 2006
Affichage
7 Traitement des images
Cette étape consiste à convertir les images en ligne de code VHDL de manière à
les inclures dans la FPGA.
L'inconvénient et que l'on vient remplir autour de 45% du composant juste
avec les images.
- 7.1 Le fichier RAW
Le fichier RAW est un format utilisé sur les scanners, appareils numériques, on
l'appelle aussi format brut. Ce fichier a la particularité de ne posséder aucune
entête ou header. Dés qu'on l'ouvre on a les données au format RGB à
disposition.
- 7.2 Le logiciel créé1
Le logiciel créé permet de convertir les images au format RAW en code VHDL
afin de faire un ROM en code pur.
- 7.3 Les images utilisées
1
Le logiciel est disponible sur le CD en annexe
Métraux Nathanaël
H - 9/11
13 mars 2006
Affichage
8 Protocole d'initialisation
Une des méthodes d'initialisation qui marche bien est la suivante:
0x01
Reset
Commande
0x11
Sleepout
Commande
0x25
Display On
Commande
0x03
Booster On
Commande
0x36
Data access
Commande
0x48
X and BGR Mode
Commande
0x3A
Color Mode
Commande
0x02
Mode 256 Couleur
Data
0x2A
Colonne
Commande
0x02
Y0
Data
0x81
Y0
Data
0x2B
Ligne
Commande
0x02
X0
Data
0x81
X0
Data
0x2D
Memory write
Commande
Elle permet d'initialiser l'écran et de placer le curseur sur le premier pixel.
Pour modifier la résolution des couleurs il faut regarder dans la datasheet les valeurs
disponible normalement 8bits, 12bits, 16bits de résolution.
Celle indiquée ci-dessous permet d'envoyé en 8 bits:
R = Rouge
G = Vert
B = Bleu
R2
R1
Métraux Nathanaël
R0
G2
G1
H - 10/
10/11
G0
B1
B0
13 mars 2006
Affichage
9 Spécifications
Résolution 132 x 132 pixel RGB, avec 4096 couleurs au maximum.
Driver EPSON et Philips PCF8833.
Alimentation de 1.8V - 3.5V.
Consommation 20 mA avec rétroéclairage (sans le rétréclairage l'écran est noir
mais consomme moin de 1 mA.
Métraux Nathanaël
H - 11/
11/11
13 mars 2006
Dossier de
fabrication
Travail de semestre 2005
Le 13 mars 2006.
Table des matières
1
2
3
4
5
6
7
Introduction
Le circuit imprimé
- 2.1 Explication des fichiers GERBER
- 2.2 Dimensions
- 2.3 Implantation
- 2.4 Plan de perçage
Liste de composants
- 3.1 Distrelec
- 3.2 Farnell
- 3.3 Fourniture personnelle
- 3.4 Centre professionnel
- 3.5 Madis
Plan du boîtier
- 4.1 Cache avec interrupteur
- 4.2 Cache avec le porte pile
Procédure pour le montage
- 5.1 Montage du PCB
- 5.2 Réglage des alimentations
Montage du boîtier
- 6.1 Côté pile
- 6.2 Coté interrupteur
Version finale du boîtier
2
2
2
3
4
5
6
6
6
6
6
6
7
7
8
9
9
9
10
10
10
11
Dossier de fabrication
1 Introduction
Cette partie va présenter:
•
Le circuit imprimé
•
La liste de composants avec les prix et les différents fournisseurs
•
Les plans pour la fabrication du boîtier
•
La procédure pour le montage
Les fichiers gerber relatifs au circuit imprimé sont placés sur le CD en annexe
au dossier.
2 Le circuit imprimé
- 2.1 Explication des fichiers GERBER
Les fichiers nécessaires à la fabrication du circuit imprimé se trouvent sur le
CD-ROM fournit en annexe dans le répertoire PCB.
Ce répertoire contient deux sous-répertoires
1
RS274X
3
1
niveau a bulle.GTL
Fichier gerber du TOP level
Percage
3
niveau a bulle.PER
Fichier de perçage, unit = inches, code
type ASCII none
3
niveau a bulle.DRL
Plan de percage format gerber
Il n'y a pas de plan de découpe, ni de plan d'implantation.
Seul le plan de perçage fait foi.
Tolérance +0.1mm - 0mm
Métraux Nathanaël
I - 2/11
13 mars 2006
Dossier de fabrication
- 2.2 Dimensions
Métraux Nathanaël
I - 3/11
13 mars 2006
Dossier de fabrication
- 2.3 Implantation
Métraux Nathanaël
I - 4/11
13 mars 2006
Dossier de fabrication
- 2.4 Plan de perçage
l 0.8 mm
n 0.9 mm
Métraux Nathanaël
I - 5/11
13 mars 2006
Dossier de fabrication
3 Liste de composants
- 3.1 Distrelec
Boîtier
30 06 36
26.50
Cache du boitier
30 06 42
22.80
Interrupteur
20 27 53
2.90
Quartz 3.27680 MHz
64 47 83
5.40
Y1
952-2042
1.60
L1 - L3
1.90
R1 - R3
- 3.2 Farnell
Self 10 uH Boitier 1210
Potentiomètre 50K Type CERMET 107-135
- 3.3 Fourniture personnelle
Ecran Nokia 6100
40.00
IC d'alimentation MAX 1722
5.00
U1 - U3
74HC14 format SOL14
2.00
U4
Condensateur 100uF Tantale 1206
2.00
C1 - C6
40.00
X4
- 3.4 Centre professionnel
Gravure et découpe du boîtier
Circuit imprimé (2 versions)
Connecteur et cable
Piggybag et matériel de dévelopement
- 3.5 Madis
Accéléromètre
Cout total du projet de semestre est d'environ 150 CHF plus les
fournitures de l'école
Métraux Nathanaël
I - 6/11
13 mars 2006
Dossier de fabrication
4 Plan du boîtier
- 4.1 Cache avec interrupteur
Métraux Nathanaël
I - 7/11
13 mars 2006
Dossier de fabrication
- 4.2 Cache avec le porte pile
Métraux Nathanaël
I - 8/11
13 mars 2006
Dossier de fabrication
5 Procédure pour le montage
Cette étape va expliquer le protocole à suivre pour que le montage puisse être
fonctionnel rapidement.
- 5.1 Montage du PCB
Pour faciliter le montage des composants sur le PCB il faut suivre les étapes
suivantes.
On commence par vérifier qu'il n'y ait pas de pont ou piste cassée afin d'éviter
des problèmes.
On a presque tous les composants qui sont au format SMD donc il faut
impérativement commencé par les plus difficiles à souder:
IC d'alimentation U1 à U3
Condensateur d'alim (attention ils sont polarisés) le trait là où il y a les angles.
C1 à C6.
Bobines des alimentations à découpages L1 à L3.
Potentiomètre d'alimentations R1 à R3.
Ensuite il faut régler les tensions d'alimentation. (voir étapes suivantes) Il est
impératif de régler les alimentations avant de monter les composants
travaillant à basse tension.
X3, Y1 et U4 peuvent ensuite être monté
Les barrettes pour la connection
maintenant. JP1, X2 et X4.
du
piggybag
peuvent
être
montées
Branchement du LCD (attention à la patte 1)
Montage du piggybag sur le PCB.
Placement des EPROM sur le piggybag.
La partie de montage du PCB est terminée.
- 5.2 Réglage des alimentations
Les alimentations doivent être reglées avec le plus grands soin il faut que
sur le connecteur X2, JP1 on trouve les tensions d'alimentation
1.8V
2
3.3V
12 4 X2
GND
6
Métraux Nathanaël
4 X2
6V
8 4 JP1
4 X2
I - 9/11
13 mars 2006
Dossier de fabrication
6 Montage du boîtier
- 6.1 Côté pile
Le trous ont été percer 1/10 de mm plus petit afin de pouvoir visser des vis autotaraudeuses de manière à ne pas avoir d'écrou sur la partie extérieur.
- 6.2 Coté interrupteur
L'interrupteur est chassé à l'intérieur de la découpe.
Métraux Nathanaël
I - 10/
10/11
13 mars 2006
Dossier de fabrication
7 Version finale du boîtier
Métraux Nathanaël
I - 11/
11/11
13 mars 2006
CD
Travail de semestre 2005
Le 14 mars 2006.
Table des matières
1
2
3
Introduction
Contenu du CD
- 2.1 Répertoires principaux
Le CD
2
2
2
3
CD
1 Introduction
Le cédérom fournit dans ce chapitre, donne l'intégralité des sources créées.
Les logiciels utilisés pour la rédaction du texte et pour la conversion au format
PDF.
2 Contenu du CD
- 2.1 Répertoires principaux
Rapport
Ce dossier contient tous les documents relatifs à la rédaction du rapport.
Note d'application
Dossier sur l'utilisation des composants ou datasheet.
Logiciels utilisés
Logiciel utilisés pour la rédaction du rapport, ils sont en licence GNU (donc
libre). Contient OpenOffice.org, PDFcreator, Srip32
Source
Dossier avec les sources sous Ease, Quartus, les fichier pour les EPROM pour le
piggybag.
Matériel
Contient les documents relatif à la conception du matériel,
d'implantation, schéma électrique, conception du PCB, etc...
schéma
PCB
Dossier contenant les différents fichier relatif a la conception du circuit imprimé,
fichier au format Gerber RS274x.
Métraux Nathanaël
J - 2 /3
14 mars 2006
CD
3 Le CD
Métraux Nathanaël
J - 3 /3
14 mars 2006