From 408461b4500f1afa51d9cd618d8557f9d02a04ec Mon Sep 17 00:00:00 2001 From: galmes Date: Mon, 5 Apr 2004 07:23:30 +0000 Subject: gpio : doc mise à jour en partie pour la nouvelle version avec it_up et it_down. --- 2004/n/fpga/doc/dcd/gpio/gpio.tex | 42 +++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 17 deletions(-) (limited to '2004') 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 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 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 %\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 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 -- cgit v1.2.3