memoria eeprom 24lc16b

12 Anni 10 Mesi fa #1 da armando66me
memoria eeprom 24lc16b è stato creato da armando66me
Come spesso mi capitami iscrivo ai forum quando ho l’acqua alla gola ed ho bisogno di aiuto e la mia presenza oggi qua e’ in linea con cio’.
Infatti se qualcuno mi puo aiutare xke non riesco a scrivere nemmeno un bit sulla eprom esterna.
Le prime prove che ho fatto sono quelle riportate nell’esempio del relativo capitolo del libro c18 step by step che ormai e’ un best seller. (anche altre prove non hanno dato esito diverso)
Allora al fine di agevolare chi mi aiuta uso la seguente configurazio

Pic 18f4550
Quarzo 20 Mhz
Eeprom 24CL16B
Librerie quelle di Mauro laurenti download dal sito laurtec
Sul pin sds e scl due restistenze da 2,2 verso il positivo

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • armando66me
  • Junior Member
  • Junior Member
Di più
12 Anni 10 Mesi fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: memoria eeprom 24lc16b
Ciao Armando,

la ragione per cui hai problemi e' legata al fatto che la libreria LaurTec per C18 non supporta la EEPROM 24LC16 ma solo EEPROM a partire dalla 24LC32. In passato ho erroneamente scritto che la 24LC16 era supportata ma non e' cosi ( se hai letto dei riferimenti a questa memoria fammi sapere).
La ragione per cui non funziona, e' dovuta al fatto che possiede solo un byte d'indirizzamento mentre la libreria LaurTec supporta EEPROM con due byte d'indirizzo. Per tale ragione per la EEPROM 24LC16 puoi far uso della libreria EEPROM standard Microchip, che diversamente dalla mia supporta un solo byte d'indirizzamento. Attento al fatto che i pin di indirizzo esterni all'EEPROM non sono usati e la memoria e' divisa in blocchi da 256 byte che devono essere indirizzati per mezzo del control byte (il primo byte che contiene anche l'indirizzo della EEPROM). Un'altra particolarità della EEPROM 24LC16 e' che solo una EEPROM puo' stare sul bus (non avendo possibilità di cambiare il suo indirizzo con i pin esterni).

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 10 Mesi fa - 12 Anni 10 Mesi fa #3 da armando66me
Risposta da armando66me al topic Re: memoria eeprom 24lc16b
Avevo intuito che potesse dipendere da cio. ma sono stra contento che
a rispondendermi sia stato Mauro Laurenti in persona
autore del libro c18 step by step che e' un best seller.
Io l'avro letto un 15ina di volte.

Effetivamente dal testo era chiaro che supportava dalle 24c32 a salire
ma non si capiva bene se le tue librerie erano compatibili con le 21c16.
Cmq avevo provato a usare in modo similare delle funzioni delle librerie della
microchip senza esito positivo perche sicuramento sbaglio qualcosa.

Su google non ho trovato nulla di chiaro certo e in italiano che guidi
a come scrivere un numero in un indirizzo e di come rilegerlo.

Se tu mi indichi qualcosa qualche link bene diversamente piuttosto che
sbattermi in mille prove vado a fare un po di shopping su ebay e prendo le
24cl32 e uso le tue librerie unica cosa che mi rompe l'attesa che arrivino.

cmq grazie per la precedente risposta e x le prossime qualora ci saranno

ps qualora si usini le librerie microchip e le 24cl16 con SSPADD va a 12 ?
0XA0 resta tale almeno cosi dicono sui documenti microchip ed avendo
i pin della eprom 1234 e 7 tutti a massa non dovrebbe cambiare,


se faccio
il write di un singolo dato xo non mi scrive nulla (lo verifico con il programmatore)
se faccio il random rady che dovrebbe leggere un singolo dato
non mi legge nulla.

esiste qualcosa da leggere di facile comprensione per chiarirmi le idee ?
si possono modificare le tue librerie ?
o e meglio attendere l'arrivo delle 24cl32 ?

______________________________

aggiornamento ordinate le le 24c32 su ebay
visto lo sciopero dei trasportatori ho fatto diversi tentativi
il piu significativo e' il seguente:


#include "p18cxx.h"
#include "i2c.h"
unsigned char arraywr[]={1,2,3,4,5,6,7,8,0};
unsigned char arrayrd[20];
//**************************
void main(void)
{
OpenI2C(MASTER, SLEW_ON);
// Initialize I2C module
SSPADD = 9;
//400kHz Baud clock(9) @16MHz
//100kHz Baud clock(39) @16MHz
while(1)
{
EEByteWrite(0xA0, 0x30, 0xA5);
EEAckPolling(0xA0);
EECurrentAddRead(0xA0);
EEPageWrite(0xA0, 0x70, arraywr);
EEAckPolling(0xA0);
EESequentialRead(0xA0, 0x70, arrayrd, 20);
EERandomRead(0xA0,0x30);
}
}



con SSPADD = 12;

ma non riesco ne a scrivere ne a leggere nulla sulla eprom.

qualcuno mi sa dire dove sbaglio ?
Ultima Modifica 12 Anni 10 Mesi fa da armando66me.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • armando66me
  • Junior Member
  • Junior Member
Di più
12 Anni 10 Mesi fa #4 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: memoria eeprom 24lc16b
Ciao,

devo dire che anche ai miei colleghi dico che e' un best seller...
poi gli dico che il libro e' gratuito...e si mettono a ridere! :)

La EEPROM 24LC16 e' un po' infelice per iniziare visto che usa il control byte per indirizzare i banchi interni da 256 byte.
In ogni modo non dovrebbe essere troppo difficile utilizzarla.
L'indirizzo 0xA0 rimane uguale ma gli ultimi tre bit sono usati per indirizzare i blocchi interni.
Potresti pensare la 24LC16 come composta da piu' EEPROM il cui indirizzo sono 1010 0000 per il primo blocco 1010 0001 per il secondo ...e via dicendo. Controlla il datasheet della EEPROM per accertarti che non mi sia sbagliato con i bit.
Documenti di esempio, mmm...non saprei.
...aspettare per una 24LC32, potrebbe sicuramente aiutarti. Partire da un software ed esempi che funzionano aiuta qualora ci siano problemi hardware. Se hardware e software sono dei test...e' difficile sapere dove sia il problema.
Una volta che avrai qualcosa di funzionante potrai fare esperimenti con altre EEPROM.

In ogni modo leggi il datasheet della EEPROM 24LC16 e valuta le difficolta' o meglio come usare la libreria Microchip.

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 10 Mesi fa #5 da armando66me
Risposta da armando66me al topic Re: memoria eeprom 24lc16b
a causa di uno sciopero degli autotrasportatori della sicilia le 24lc32 non arrivano.
le 24lc16 non riesco proprio a scriverci nulla e nemmeno a leggere.

non vedo l'ora cghe arrivano almeno sono sicuro che l'hardwere funzioni.

non so piu cosa sperare
se e' l'hardware sono una pecora anon saper mettere 4 fili 4

se e' il software sono un pecorone a non capire una cosa che sembra semplice....


maahhhhhhhhh........

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • armando66me
  • Junior Member
  • Junior Member
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login