summaryrefslogtreecommitdiff
path: root/2004
diff options
context:
space:
mode:
authorgalmes2004-04-05 07:23:30 +0000
committergalmes2004-04-05 07:23:30 +0000
commit408461b4500f1afa51d9cd618d8557f9d02a04ec (patch)
tree92d2ecf49d118d8aa57ad889e80f3a3586f767cc /2004
parent3911b89554951ad8d5017856d537075cb3b36734 (diff)
gpio : doc mise à jour en partie pour la nouvelle version avec it_up et
it_down.
Diffstat (limited to '2004')
-rw-r--r--2004/n/fpga/doc/dcd/gpio/gpio.tex42
1 files changed, 25 insertions, 17 deletions
diff --git a/2004/n/fpga/doc/dcd/gpio/gpio.tex b/2004/n/fpga/doc/dcd/gpio/gpio.tex
index 1c1d750..8acfe2d 100644
--- a/2004/n/fpga/doc/dcd/gpio/gpio.tex
+++ b/2004/n/fpga/doc/dcd/gpio/gpio.tex
@@ -42,18 +42,22 @@ Du point de vue comportemental son fonctionnement est le suivant. Au début, le
PC configure le bloc après avoir envoyé un signal de remise à zéro. Il
commence par configurer les différentes pins du bloc soit en entrées, soit en
sorties. Ensuite le PC configure quelles pins pourront générer une
-interruption. Une fois cela fait, il peut lire et écrire des données sur les
+interruption. Ces interruptions peuvent être déclenchées soit sur front
+montant, soit sur front descendant.
+
+Une fois cela fait, il peut lire et écrire des données sur les
entrées et sorties. La configuration du bloc gpio est réalisée en écrivant
dans des registres.
-On remarque que ce module possède quatres signaux "chip select" :
-cs\_reg\_data, cs\_reg\_direction, cs\_reg\_it\_mask et cs\_read\_output.
-Le signal cs\_read\_output permet de lire les états des 8 broches d'entrées /
-sorties. Les autres signaux permettent d'accéder aux registres contenant
-respectivement, le masque des directions, le masque d'interruption et les
-données à mettre sur les lignes en sorties.
+On remarque que ce module possède cinq signaux "chip select" : cs\_reg\_data,
+cs\_reg\_direction, cs\_reg\_it\_up\_mask, cs\_reg\_it\_down\_mask et
+cs\_read\_output. Le signal cs\_read\_output permet de lire les états des 8
+broches d'entrées / sorties. Les autres signaux permettent d'accéder aux
+registres contenant respectivement, le masque des directions, les masques
+d'interruptions (font montant et descendant) et les données à mettre sur les
+lignes en sorties.
-Ces trois registres ont la particularité de pouvoir être écrit mais aussi lu.
+Ces quatres registres ont la particularité de pouvoir être écrit mais aussi lu.
En effet, pour la phase de teste il nous semble utile que les registres
puissent être relus. Ainsi on pourra s'assurer que la configuration est bien
celle désirée.
@@ -72,14 +76,14 @@ lecture (Read), puis en sélectionnant le chip select du registre auquel on
désire accéder.
On notera que pour interfacer ce bloc et le bus ISA, il faut un module dont le
-rôle sera de convertir les signaux du bus ISA en les signaux $R\bar{W}$ et les
-signaux de "chip select" (CS).
+rôle sera de convertir les signaux du bus ISA (AEN, IOR, IOW) en les signaux
+$R\bar{W}$ et les signaux de "chip select" (CS).
Pour résumer, voici quelques informations utiles :
\begin{itemize}
\item{La lecture (signal $R\bar{W}$) : active pour un état haut}
\item{L'écriture (signal $R\bar{W}$) : active pour un état bas}
-\item{Le masque d'interruptions : interruption active pour un état haut,
+\item{Les masques d'interruptions : interruption active pour un état haut,
inactive pour un état bas}
\item{Le masque de directions : en sortie pour un état haut, en entrée pour un
état bas}
@@ -106,11 +110,11 @@ comportementale du bloc d'entrées sorties.
%\label{gpio_behav_simul}
%\end{figure}
-Dans cet exemple, nous allons configurer puis utiliser le bloc d'entrée /
+Dans cet exemple, nous allons configurer puis utiliser le bloc d'entrées /
sorties. La première action à effectuer est une remise-à-zéro du bloc à l'aide
de son signal reset. C'est ce que l'on remarque lorsque le signal rst est à 1.
Ce signal doit garder un état haut durant au moins une prériode d'horloge du
-bus ISA (clk\_i).
+bus (clk\_b).
On remarque que sur les entrées /sorties, on simule le fait d'avoir branché
des capteurs sur les cinq lignes de poids fort. On voit donc apparaître sur
@@ -127,11 +131,15 @@ sorties sont à zéro d'ou les signaux obtenus.
On remarquera aussi que la ligne $R\bar{W}$ est en écriture. Ainsi, dès que
la ligne de validation du registre de configuration des directions (ligne chip
-select : cs\_reg\_direction ) est à un état haut et qu'il y a un front
-montant de l'horloge (clk\_i) du bus ISA, on configure le bloc avec les
-signaux sur le bus de données.
+select : cs\_reg\_direction ) est à un état haut et qu'il y a un front montant
+de l'horloge (clk\_b) du bus, on configure le bloc avec les signaux sur le bus
+de données.
+
+De la même manière, on configure ensuite les masques d'interruptions.
+
+% TODO : continuer icicicicicicicicicicicicicicicicici.
-De la même manière, on configure ensuite le masque d'interruption pour lequel
+pour lequel
on conserve la valeur $11111000$. On remarque que cet octet est le
complémentaire du masque de direction. Dans cette configuration, on vient
d'autoriser les interruptions sur les pins en entrée du bloc. Ainsi, dès qu'il