HOME                                                            

I2C

Personalizzato

 Descrizione

Nonostante su questo e su altri siti, sia già stato scritto ampiamente e diffusamente, su tutto ciò che c’è da sapere su questo famosissimo protocollo di comunicazione; desidero condividere con voi, i risultati di alcune mie recenti esperienze, soprattutto perché condotte utilizzando il software di programmazione MIKROBASIC, che consente una stesura, nonché una lettura e comprensione delle istruzioni, molto agevole.

Personalizzato, in quanto l’esigenza era di leggere e/o scrivere su delle eeprom del tipo 24C32, un numero prefissato di byte in successione, con una sola chiamata della funzione che permette di farlo, in modo immediato e diretto.

Per la precisione, ho ottenuto i medesimi risultati, anche con delle 24C64, 24C128, 24C256, senza modificare alcunché, ne sul circuito elettrico ne sul software.

Alla pagina principale del programma, sono associati due moduli, uno per la lettura/scrittura delle eeprom, ed uno per la lettura di un tastierino da sedici pulsanti, organizzati a matrice di quattro righe per quattro colonne.

Sappiamo tutti che la MikroElektronika a corredo del MikroBasic, mette a disposizione molte librerie che consentono di ottenere molto agevolmente, la gestione delle eeprom e della tastiera cui vi ho accennato e di molti altri dispositivi ancora; ma credo che questo lavoro, possa essere d’aiuto, a chi ha la pazienza e la voglia di andare a leggersi i sorgenti, in quanto ogni comando è stato separato ed evidenziato, per favorire la comprensione di come su due fili soltanto, si possano stabilire delle comunicazioni bidirezionali precise ed affidabili.

Passo dunque a descrivervi le tre istruzioni per così dire nuove, che troviamo nella pagina principale
"24C32.mbas"; esse sono “leggo_ee”,  “scrivo_ee” e “tastiera4x4”, che richiamano altrettante “sub procedure” nei due moduli aggiuntivi.


Potrete inserirle nei vostri progetti, e quando eseguite, richiameranno le sub procedure corrispondenti, ospitate nei moduli che avrete cura di aggiungere alla vostra pagina principale.

Prima che vengano eseguite le istruzioni  “leggo_ee” e “scrivo_ee”, occorre  aggiornare le cinque variabili ad esse associate, che sono “control_code”,  “indirizzo_soft”, “indirizzo_hard”,  “nr_chr” e “txt1”.


La prima, cioè “control_code”, contiene il codice di controllo del dispositivo col quale si intende dialogare, in questo caso per la eeprom usata vale 1010xxxx in binario.

La seconda, cioè “indirizzo_soft”,  contiene l’indirizzo della locazione di memoria della eeprom, a partire dalla quale si intende scrivere o leggere, nel caso in esame 480, valore che verrà successivamente scomposto in “indiriz_hi” e “indiriz_low”.

La terza, cioè “indirizzo_hard” , contiene l’indirizzo della eeprom, impostato sui piedini A0 A1 A2 della eeprom medesima, nel caso in esame 1;  molto utile quando le eeprom sono più d’una, fino ad un massimo di otto collegate tutte in parallelo.

La quarta, cioè “nr_chr”, contiene il numero di caratteri che vogliamo leggere o scrivere in successione, nel caso in esame 16. Il valore massimo utilizzabile è indicato nel data-sheet della eeprom in uso.

La quinta, cioè “txt1”, contiene i caratteri letti se abbiamo richiamato l’istruzione “leggo_ee”, oppure i caratteri da scrivere prima di richiamare l’istruzione “scrivo_ee”.

 Nella figura che segue, ciò che accade durante le operazioni di scrittura.

 

Nella figura che segue, ciò che accade durante le operazioni di lettura.

 

Per finire, potrete richiamare l’istruzione “tastiera4x4” in qualsiasi momento, senza alcuna preparazione, essa vi restituirà il numero del tasto premuto, che sarà presente nella variabile “ta” ad essa associata.

I più volenterosi e dinamici, potranno trovare nel file
“i2c_ee.mbas”, tutte le sub procedure implementate, con riferimenti e commenti utili a capire il meccanismo della comunicazione, con la possibilità di scegliere i pin da usare per sda ed scl.

Lo stesso vale per il file
“tastiera4x4.mbas”, dove è possibile per ogni riga o colonna della tastiera, scegliere i pin del pic da dedicare allo scopo.

Quello che segue è lo scema elettrico che ho usato per le mie prove.

Qui potrete scaricare il file .hex per il pic.

Colgo l'occasione per augurare a tutti una Felice Pasqua.

Buon divertimento..
It9dpx.