Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 194

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>Diskless Nodes HOW-TO document for Linux: Costruire un programmatore EEPROM</TITLE>
 <LINK HREF="Diskless-HOWTO-6.html" REL=next>
 <LINK HREF="Diskless-HOWTO-4.html" REL=previous>
 <LINK HREF="Diskless-HOWTO.html#toc5" REL=contents>
</HEAD>
<BODY>
<A HREF="Diskless-HOWTO-6.html">Avanti</A>
<A HREF="Diskless-HOWTO-4.html">Indietro</A>
<A HREF="Diskless-HOWTO.html#toc5">Indice</A>
<HR>
<H2><A NAME="s5">5. Costruire un programmatore EEPROM</A></H2>

<P>
<H2><A NAME="ss5.1">5.1 Che cos'&egrave;?</A>
</H2>

<P>Questo capitolo &egrave; stato scritto da Abhijit Dasgupta ed &egrave; preso da
<A HREF="http://www.nnaf.net/~abhijit/eep">http://www.nnaf.net/~abhijit/eep</A>.
L'indirizzo email di Abhijit &egrave;:
<A HREF="mailto: abhijit@ans.net">abhijit@ans.net</A><P>Una foto del programmatore &egrave; visibile presso:
<A HREF="http://www.nnaf.net/~abhijit/pictures/eeprom-burner.jpg">http://www.nnaf.net/~abhijit/pictures/eeprom-burner.jpg</A><P>Questo &egrave; un programmatore per le EEPROM del tipo 2816 e 2864.
Sono disponibili vari progetti, ma l'obiettivo fondamentale &egrave; di avere 
qualcosa che sia:
<P>
<UL>
<LI>economico (meno di 35$)</LI>
<LI>facile da costruire e che usi solo componenti facilmente reperibili</LI>
<LI>funzionante con Linux</LI>
</UL>
<P>Questo programmatore usa una manciata di integrati logici 74HCTxx, tutti 
disponibili nel negozio di componenti elettronici sotto casa!
Usa l'interfaccia della porta parallela del PC. Abhijit ha scritto il codice
del driver solo per Linux, ma dovrebbe essere facile modificarlo per altri
sistemi operativi.
<P>&Egrave; stato usato per scrivere le PROM per il netboot di schede ethernet, 
che a loro volta sono state usate per realizzare delle macchine Linux 
diskless. Per i dettagli riguardanti le modalit&agrave; operative si vedano i 
pacchetti netboot e/o etherboot. &Egrave; anche possibile usarlo per 
costruire dei sistemi microcontrollori con ROM esterna (ad es. 8031).
<H2><A NAME="ss5.2">5.2 Costruzione</A>
</H2>

<P>ATTENZIONE: &Egrave; facile distruggere la porta parallela del proprio PC
collegandoci qualcosa. Facendo collegamenti sbagliati e in caso di incidenti
di tipo elettrico &egrave; possibile danneggiare o distruggere l'intero PC,
comprese le periferiche e tutto ci&ograve; che gli &egrave; attaccato, ed &egrave; anche possibile
ferire chi si trova l&igrave; vicino. FATE MOLTA ATTENZIONE.
<P>Liberatoria: Usate questo apparecchio a vostro rischio e pericolo. Non &egrave; data
nessuna garanzia di nessun tipo.
<P>Il programmatore pu&ograve; essere sperimentato su una breadboard, ma per 
realizzarne una versione permanente usate una protoboard.  
Usa abbondantemente i condensatori di bypass da 0.1uF per le linee di
alimentazione. L'alimentazione a 5V pu&ograve; essere presa direttamente dal PC,
ma fate attenzione.
<H2><A NAME="ss5.3">5.3 Elenco dei componenti</A>
</H2>

<P>
<UL>
<LI><B>Circuiti integrati:</B> 74HCT123, 74HCT132, 74HCT138, 74HCT157, 
74HCT574 (1 ea) e 2 74HCT259.</LI>
<LI><B>Resistori:</B> 100K, 10K, 1K e 390 ohm (1 ea).</LI>
<LI><B>Condensatori:</B> 100pF, 1uF, (1 ea) e 3 condensatori da 0.1uF 
per il bypass della linea di alimentazione.</LI>
<LI><B>Vari:</B> 1 LED, 1 interruttore SPST, piattina da 25 fili con 
connettore maschio DB25, zoccolo ZIF a 28 pin (oppure si possono usare delle 
piccole breadboard), dei ponticelli.</LI>
</UL>
<P>
<H2><A NAME="ss5.4">5.4 Uso</A>
</H2>

<P>Scaricate il software 
<A HREF="http://www.nnaf.net/~abhijit/eep/eeprom.tar.gz">http://www.nnaf.net/~abhijit/eep/eeprom.tar.gz</A>.
Per compilarlo basta andare nella directory con i sorgenti e digitare `make'.
<P>
<HR>
<PRE>
readrom
-------
readrom legge da una EEPROM 2816/2864 un dato numero di byte, a partire 
da una data posizione, e li invia allo standard output in formato
binario (raw) o ascii-hex.

Uso:

    readrom -b|-t posizione dimensione

dove

    -b            uscita in binario (raw)
    -t            uscita in formato testo (ascii-hex)
    posizione     indirizzo di inizio nella EEPROM: 0..8191
    dimensione    numero di byte da emettere: 0..8192

Esempi:

# legge il contenuto di una 2864 in binario (raw) e lo salva in un file:
readrom -b 0 8192 > contenuto.bin

# mostra 80 byte a partire dal 32esimo:
readrom -t 32 80


writerom
--------

writerom legge un dato numero di byte dallo standard input e li
scrive in una ROM 2816/2864 a partire dalla posizione specificata.
writerom verifica tutti i byte che scrive nella EEPROM.

Uso:

    writerom posizione dimensione

dove

    posizione     indirizzo di inizio nella EEPROM: 0..8191
    dimensione    numero di byte da scrivere: 0..8192

Esempio:

# scrive nella EEPROM 8192 byte prendendoli dal file ne.lzrom:
writerom 0 8192 &lt; ne.lzrom
</PRE>
<HR>
<H2><A NAME="ss5.5">5.5 Schema circuitale</A>
</H2>

<P>Lo schema &egrave; disegnato in ASCII, ma &egrave; disponibile una versione in PostScript 
(graficamente migliore) presso
<A HREF="http://www.nnaf.net/~abhijit/eep/eeprom/schematic.ps">http://www.nnaf.net/~abhijit/eep/eeprom/schematic.ps</A><P>
<HR>
<PRE>
                       +-------+
              +5-------|RST    |               +5---o o o J1     +-----------+
              +5--o----|/CLR1  |         10K          |          |           |
                  |    |       |-----o--/VVV\-- +5    +----------|26 +5(NC)  |
      +------+    |    |1/2 123|     |              +----------->|27 NC(/WE) |
 16 o-|/CS2  |    |    |       |--||-+              | +--------->|23 /WE(A11)|
      |   CS1|----o----|B1     | 100pF              | |          |           |
      |      |         |    /Q1|---------->---------o o o J2     |  zoccolo  |
      |    Y1|---------|/A1    |                        |        |   ZIF28   |
      | 138  |         +-------+         _ 1/2 74HCT132 |        |    per    |
      |      |                     +5 --| \   __        |        | 2816(2864)|
      |    Y2|--------------------------|  O--| \       |        |           |
  8 o-|A2    |                +-------+ |_/   |  O-------------->|/OE        |
  7 o-|A1  Y4|--------------->|EN   Y7|-----o-|_/       |        |           |
  6 o-|A0  Y3|----+    +5-----|RST    |     |           |        |           |
      |    Y0|-+  |           |     Y6|--+  |           |        |           |
      |  /CS3| |  |           | 259   |  |  |           |        |           |
      +------+ |  |           |     Y4|--|--|-----------|------->|2 NC(A12)  |
            |  |  |           |     Y3|--|--|-----------+        |           |
  5 o--->---|--|--|--------o--|D    Y2|--|--|------------------->|A10        |
  4 o--->---|--|--|------o-|--|A2   Y1|--|--|------------------->|A9         |
  3 o--->---|--|--|----o-|-|--|A1   Y0|--|--|------------------->|A8         |
  2 o--->---|--|--|--o-|-|-|--|A0     |  |  |                    |           |
            |  |  |  | | | |  +-------+  |  |      +5------------|28 NC(+5)  |
            |  |  |  | | | |             |  |      +5----/VVV\---|1 NC(RDY)  |
            |  |  |  | | | |  +-------+  |  |             1K     |           |
            |  |  |  | | | |  |     Y7|--|--|------------o------>|A7         |
            |  |  +---------->|EN     |--|--|-----------o|------>|           |
            |  |     | | | |  |       |--|--|----------o||------>|           |
            |  |     | | | |  | 259   |--|--|---------o|||------>|           |
            |  |     | | | |  |       |--|--|--------o||||------>|           |
            |  |     | | | |  |       |--|--|-------o|||||------>|           |
            |  |     | | | +--|D      |--|--|------o||||||------>|           |
            |  |     | | +----|A2   Y0|--|--|-----o|||||||------>|A0         |
            |  |     | +------|A1     |  |  |     ||||||||       |           |
            |  |     +--------|A0  RST|  |  |     ||||||||       |   ZIF28   |
            |  |              +-------+  |  |   +------------+   |    per    |
            |  |                    |    |  |   |  dati In   |   |  2816/64  |
            |  |                   +5    |  +-->|/OE         |   |           |
            |  |                         |      |    574     |   |           |
            |  +------------------------------->|CLK         |   |           |
            |                            |      |  dati Out  |   |           |
            |                            V      +------------+   |           |
            +----+              +------------+     ||||||||      |           |
                 |              |       SEL  |     ||||||||      |           |
                 |              |          B3|&lt;----|||||||o------|D7         |
 11 o---&lt;-----------------------|Y3        B2|&lt;----||||||o-------|           |
 12 o---&lt;-----------------------|Y2        B1|&lt;----|||||o--------|           |
 13 o---&lt;-----------------------|Y1  157   B0|&lt;----||||o---------|           |
 15 o---&lt;-----------------------|Y0        A3|&lt;----|||o----------|           |
                 |              |          A2|&lt;----||o--- bus ---|           |
                 |              |          A1|&lt;----|o---- dati --|           |
                 |       GND----|/OE       A0|&lt;----o-------------|D0         |
  +5--o--+       |              +------------+                   |           |
      |  |  __   o---------------------------------------------->|/CE        |
    100K +-|  \  |  __                                           +-----------+
  sw1 |    |   O-o-|  \ 1/2 74HCT132
  o-->o----|__/    |   O---390ohm--+
  |   |          +-|__/            |
  |  --- 1uF     |                LED
  |  ---     +5--+                 |
  |   |                            |
  +---o----------------------------o- GND
</PRE>
<HR>
<P>Note:
<P>
<OL>
<LI>I numeri dei pin a sinistra sono quelli di una porta parallela con
connettore DB25.</LI>
<LI>I numeri dei pin nel blocco a destra sono quelli dello _zoccolo 
ZIF28_, non del circuito integrato.</LI>
<LI>La 2816 va inserita nella parte bassa dello zoccolo ZIF28.</LI>
<LI>J1 e J2 sono ponticelli a tre contatti in linea. Per entrambi, per
usare una 2816 vanno collegati i due contatti a sinistra, per la 2864 
invece i due a destra.</LI>
<LI>Nel blocco dello zoccolo ZIF28, le etichette dei segnali per la 2864 
(quando diverse da quelle della 2816) sono indicate fra parentesi. Per 
esempio, il pin 23 dello ZIF 28 ha l'etichetta "23 /WE(A11)" e quindi indica 
/WE per la 2816 e A11 per la 2864.</LI>
<LI>Per far funzionare il programmatore l'interruttore sw1 deve essere 
aperto.</LI>
</OL>
<P>
<HR>
<A HREF="Diskless-HOWTO-6.html">Avanti</A>
<A HREF="Diskless-HOWTO-4.html">Indietro</A>
<A HREF="Diskless-HOWTO.html#toc5">Indice</A>
</BODY>
</HTML>