Site hosted by Angelfire.com: Build your free website today!

~ Progetti ~
- powered by JavaScript -

Home page Datasheets from manufacturers This page Links to some interesting sites E-mail the author


Programmatore di EEPROM seriali I²C

Un PIC fa da interfaccia tra il bus I²C, al quale è collegata la memoria da leggere/programmare, e la porta seriale del PC.
Le memorie che questo programmatore è in grado di gestire sono le seguenti : 24C00, 24C01, 24C02, 24C04, 24C08, 24C16, 24C32, 24C64, 24C128, 24C256, SDA 2516, SDA 2526, SDA 2546, SDA2586, SDA 3526, SDA3546, SDA3586, PCF8581/2, PCD8581/2, X2402/4, X2402P/04P e modelli equivalenti.
Esse sono ormai presenti in diverse apparecchiature elettroniche quali telefoni, autoradio,
televisori, centralini e schede per i più svariati usi. In moltissimi casi tali memorie sono preformattate, vale a dire, contengono una serie di dati inseriti in fase di produzione degli apparecchi, oppure contengono dati, relativi ai vari settaggi, che devono essere mantenuti anche in mancanza di alimentazione.

Software di gestione

Ecco come si presenta il software per Windows :


Questo programma, semplice ed intuitivo, permette la lettura e la scrittura delle memorie I²C dalla 24C00 (16 byte x 8 bit) alla 24C256 (32Kbyte x 8 bit) ed equivalenti di qualsiasi marca e qualsiasi velocità di bus/programmazione.
In mancanza dell'hardware di programmazione, questo programma può essere utilizzato sia come convertitore da BIN a HEX che come Hex-Viewer aprendo un file e poi cliccando sul pulsante View Buffer.
L'hardware di programmazione comunica con il pc attraverso una porta seriale, da COM1 a COM4, che viene rilevata automaticamente dal sw e poi impostata a 9600 baud, NO parity, 8 data bits, 1 stop bit.

Esiste anche una versione del software per DOS, di seguito la schermata principale.

I comandi usati per la comunicazione sono riportati in questa tabella.

Descrizione Comando Input Output Descrizione
Read byte R Addr, Data - Lettura di un byte
Write byte W Addr, Data Data Scrittura di un byte
Set Control Word C CW - Impostazione della Control Word (per default è A0h)
Read firmware ver. F - [stringa] Restituisce versione del firmware
Read status S - STATUS Stato della EEPROM (risposta all'ultima operazione)
00h = la memoria ha risposto con ACK
08h = la memoria non ha risposto
Set type T TYPE - Impostazione del tipo di EEPROM
00h = fino a 16Kbit
01h = maggiore di 16Kbit

[stringa] è una stringa in formato ASCII di max. 20 caratteri (es. "1.0" virgolette escluse).
Status è un byte che può essere 0h, se durante l'ultimo comando di lettura/scrittura la EEPROM ha risposto con Ack (fare riferimento al data-sheet di una qualsiasi memoria I²C), oppure 08h se durante l'ultimo comando di lettura/scrittura la EEPROM non ha risposto. La lettura di questo byte permette al programmatore di identificare automaticamente la EEPROM sullo zoccolo di programmazione.
Notare che il comando Write NON fa un eco del dato da scrivere ma restituisce il dato *effettivamente* presente all'indirizzo specificato dopo il ciclo di scrittura. Se questo byte è diverso dal byte trasmesso, significa che è avvenuto un errore in scrittura (una possibile causa può essere la EEPROM difettosa o al termine della sua vita utile).
Addr è un byte nel caso delle EEPROM fino a 16Kbit, oppure due bytes (Low Byte, High byte) nel caso delle EEPROM maggiori di 16Kbit.

Hardware

Data la semplicità del montaggio, non mi sembra necessario usare 140Kb di testo per descriverne il funzionamento...
Le operazioni di lettura e scrittura della memoria vengono effettuate ad un clock inferiore ai 100KHz, per permettere al dispositivo di programmare sia le memorie con freq. massima di clock di 400KHz che i modelli standard a 100.
T1, comandato da U1, accende e spegne la EEPROM, il MAX202 (sostituibile con il MAX232 o similari) permette l'interfacciamento con il PC, il 78L05 fornisce la tensione stabilizzata di +5V necessaria al funzionamento del tutto.

Il consumo del programmatore in stand-by è di circa 10mA, può quindi essere alimentato anche a batteria.

 

Small_foto







Notare che IL PROGRAMMA "VEDE" E PERMETTE DI SELEZIONARE SOLO LE PORTE CON CAVO NULL-MODEM (vedere sotto) COLLEGATO !
L'immagine mostra la schermata principale dopo che è stato premuto "C" : il software ha "visto" un cavo null modem sulla porta COM2, e permette la selezione solo di questa porta. Questo vincolo permette di evitare conflitti con altre periferiche che utilizzano la porta seriale.

 

Collegamento al pc

Schema del cavo seriale :

Schema cavo

PC (9 pin)

PC (25 pin)

SEEWriter

3 (TxD)

2 (TxD)

2 (RxD)

2 (RxD)

3 (RxD)

3 (TxD)

5

7

5 (Ground)

1-4-6

6-8-20

-

Vengono utilizzati solo i segnali TxD, RxD e la massa. I pin 4 e 5 del connettore DB25F vanno collegati assieme, stessa cosa per i pic 6,8 e 20. Per il collegamento tra i due connettori è possibile usare anche un comune cavetto (schermato) stereo per applicazioni audio. Se sul PC avete una porta seriale con connettore a 9 pin anzichè a 25, è necessario fare riferimento a quanto riportato in tabella sotto la colonna "PC (9 pin)".

Download

Schema elettrico
Layout
Master del circuito, le sue dimensioni sono 68,6x33,65 mm
Lista componenti

Firmware per il PIC16F84 versione 1.4

Software per Windows v3.0, scritto in Visual C++
Software di controllo per DOS, versione 1.5

Foto dell'apparecchio finito
Foto del prototipo


This page is (always) under construction.