devo fare un programma copy emprom

Devo scrivere un programmino per arduino 2009. La funzione che deve svolgere è quella di leggere il contenuto di una eeprom 3 wire e scriverlo in un altra eeprom 3 wire. Ho a disposizione 2 eeprom 3 wire 93c86 per sviluppare il programma, ma poi il programma deve lavorare con il 93c46 che ha la dimensione della memoria dimezzata rispetto al 93c86.

Bene, mi scoccia, sono stanco ed ho sonno, se ci fosse già qualcosa da mettere sul 328 sarebbe un gran vantaggio. Purtroppo in giro non ho trovato nulla, anche sul playground non c'è nulla. Quindi avete link, codice ecc. (o volete scrivermelo voi 8))

Ciao.

Cos'é un EMPROM?
Ciao Uwe

:stuck_out_tongue_closed_eyes: :stuck_out_tongue_closed_eyes:

@Mauro:
non ho trovato nulla neanch'io. mi sa che devi scriverti il protocollo.

uwefed:
Cos'é un EMPROM?
Ciao Uwe

Uwe, sei consapevole che con questo tuo intervento ci autorizzi a sfotterti ogni volta che sbagli a scrivere una lettera? :wink:

No, non autorizzo nessuno. 8)
Ciao Uwe

Una EMPROM è una ROM che serve a memorizzare l'EMPatia.... :stuck_out_tongue_closed_eyes: :stuck_out_tongue_closed_eyes:

leo72:
Una EMPROM è una ROM che serve a memorizzare l'EMPatia.... :stuck_out_tongue_closed_eyes: :stuck_out_tongue_closed_eyes:

Una EMProm è una rom non sensibile agli impulsi EMP, ottima in caso di attacco nucleare :grin:

:stuck_out_tongue_closed_eyes: :stuck_out_tongue_closed_eyes:

In teoria oggi non ho nulla da fare se non questo programmino, spero di avere almeno la mattinata senza rotture di p..e.

Dunque una EMPROM è una memoria a cui e connesso un circuito decisionale indeciso. :roll_eyes:
Avete presente quando alle medie durante una interrogazione tra una parola e l'altra si inserisce EMmmmm. Questo accade quando il bus è impegnato dal transito informazioni scaturite a seguito di evento (sentimento), informazioni tipo sono, bastardo proprio oggi mi devi interrogare, ma ti faccio vedere io sti svito i bulloni delle ruote, ecc. :astonished:

Leo, ti prego cura per me una pagina su wikipedia sull'argomento. :stuck_out_tongue:

Fine cazzeggio.

Che poi ho riletto 3 volte il post alla ricerca dell'errore, che invece si trova nel titolo.

Bene, come faccio a serializzare i bit di una variabile che contiene start bit, opcode e indirizzo.
Posso leggere sempre lo stato del bit0 e usare lo shitf per scorrere tutti i bit fino alla fine, oppure?

Ciao.

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1290974281
http://mcu.sunplusmcu.com/soft/65_en_Application_note/AN_SPMC65_O0323_en_V1.2.pdf spiega un po di cose

Ciao Uwe

@uwe
Ok mi sono documentato, grazie a buon rendere. :wink:

Di queste EEprom seriali c'è ne per qualunque esigenza, della serie 93c i seguenti sono quelli di cui ho letto il datasheet:

93c46 fonte Atmel
93c76/86 fonte microchip
93c06/46 fonte microchip anno 1995, non ha il pin ORG

Bene 1 a 0 per microchip a causa del datasheet molto dettagliato.

Si tratta di EEprom con protocollo microwire 3/4 fili, 3 o 4 perchè DI (data input) e DO (data output) sono connessi insieme, grazie al fatto che DO viene posto ad alta impedenza dal protollo e in open collector (credo) quando serve. Lo schematico consigliato nel documuneto al secondo link di uwe richiede 4 fili e vede i pin DI e DO connessi con una pull-up da 10k e gli altri pin direttamente connessi al microcontroller.

Un pin denominato ORG permette di selezionare l'organizzazione 8 o 16 bit. Se ORG è connesso a VCC l'organizzazione interna è a 16bit, se connesso a GND l'organizzazione è a 8bit.

Su pin DI si inviano i dati serialmente presi sul fronte di salita del clock applicato al pin CK (clock). All'accensione la EEprom si trova in modo
Erase/Write Disable (EWDS), quindi non è possibile scrivere o cancellare ma è possibile leggere da subito.

La lunghezza del frame dipende dalla dimensione della memoria e dalla organizzazione 8/16bit.
Il frame seriale è composto da:
uno start bit posto sul bit più significativo.
2 bit per il command opcode, tramite il quale possiamo scegliere se scrivere, leggere o cancellare.
6|7|9|10 o 11bit per l'indirizzo di memoria, più grande è lo spazio di memoria maggiore è il numero di bit necessario per l'indirizzo.
8|16 bit per il dato da leggere o scrivere.

Quindi il numero di cicli varia, partendo da 18 del 93c46 in modo 8bit, per finire a 29 per il 93c86 in modo 16bit.

....continua

Ciao