Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1459 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Ajout d'une mémoire externe EEPROM 24LC256 (bus i2c) à un PIC 18F452

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ajout d'une mémoire externe EEPROM 24LC256 (bus i2c) à un PIC 18F452

n°1878373
djkiri
Posté le 27-04-2009 à 16:41:59  profilanswer
 

Bonjour à tous, Actuellement, je suis un projet en BTS Systeme Electronique ( ANALYSEUR DE VERRE DE LUNETTE DE SOLEIL SGA).Fonction mémorisation.
 
Mon projet nécessite l'utilisation d'un PIC18F452, mais comme il n'a pas une grande mémoire( seulement 32ko de mémoire), on a du faire appel à un bus I2C ,EEPROM 24LC256 qui contient 256ko de mémoire.
Mais j'ai un souci en programmation langage microcontroleur C , j'arrive pas à savoir "comment peut-on stocker des informations sur un BUS I2C?"
 
Si quelqu'un pourrai m'aidez a savoir comment par exemple stocker des information d'un afficheur ou autre .J'ai commencé déjà à taper le programme , j'utilise un quartz 16Mhz.

 
 
#include <p18f452.h>
#include "initxlcd.c"
#define Fosc 16E6
#define FI2C 4E3
void ack(coid) //attend ackonledge
{
while(SSAPSTATbits.R_W);
while (SSPCON2bits.ACKSTAT); // attend fin ACK esclave
}
 
//retourne le contenu du registre cmd dans TC74
signed char lit_i2c(unsigned char adresse, unsigned char registre)
{ signed char t;
SSPCON2bits.SEN=1; //START
while (SSPCON2bits.SEN);
SSPBUF=adresse<<1; //adresse ecriture
ack();
SSPBUF=registre; //adresse registre
ack();
SSPCON2bits.RSEN=1; //RESTART
while (SSPCON2bits.RSEN);
SSPBUF=(adresse<<1) |0b00000001; //adresse lecture
ack();
SSPCON2bits.RCEN=1; //passe ne nmode lecture d'un octet
while (SSPCON2bits.RCEN); //attend recption terminée
SSPCON2bits.ACKDT=1; //NON-ACK
SSPCON2bits.ACKEN=1;
while (SSPCON2bits.ACKEN);
SSPCON2bits.PEN=1; //STOP
while (SSPCON2bits.PEN);
return (t);
}
 
 
}
 
void init_i2c(void)
{ DDRCbits.RC3 = 1;
DDRCbits.RC4 =1;
SSPCON1=0b00101000;
//efface WCOL ET SSPOV, active I2C, I2C mode maitre horloge=FOSC/(4*(SSPADD+1))
SSPSTATbits.SMP=1;
SSPADD=9; // Horloge=16Mhz/4*(SPADD+1)=400Khz ; SPADD=(16Mhz/1600khz)-1;SPADD=9

mood
Publicité
Posté le 27-04-2009 à 16:41:59  profilanswer
 

n°1879228
Emmanuel D​elahaye
C is a sharp tool
Posté le 29-04-2009 à 13:06:10  profilanswer
 

djkiri a écrit :

[b]Bonjour à tous, Actuellement, je suis un projet en BTS Systeme Electronique ( ANALYSEUR DE VERRE DE LUNETTE DE SOLEIL SGA).Fonction mémorisation.
 
Mon projet nécessite l'utilisation d'un PIC18F452, mais comme il n'a pas une grande mémoire( seulement 32ko de mémoire), on a du faire appel à un bus I2C ,EEPROM 24LC256 qui contient 256ko de mémoire.


C'est pas très clair... De quel genre de mémoire parle-tu ? Une E2PROM, c'est pour faire du stockage (surtout si elle est reliée par I2C). Quel est le type de mémoire que tu voudrais ajouter à ton matériel ?
 
- Mémoire programme (ou 'code') ?
- Mémoire de données rapide (RAM, DRAM, SRAM ?)
- Mémoire de stockage permanent ? (FLASH, E2PROM etc.)
 
Je ne suis pas sûr que ton besoin soit correctement exprimé.
 

Citation :

Mais j'ai un souci en programmation langage microcontroleur C , j'arrive pas à savoir "comment peut-on stocker des informations sur un BUS I2C?"


C'est sûr. Un bus I2C, c'est fait pour transporter des données, pas pour les stocker...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1880336
djkiri
Posté le 03-05-2009 à 17:21:57  profilanswer
 

le genre de mémoire est un EEPROM , c'est pour stocker des informations.

n°1880401
Emmanuel D​elahaye
C is a sharp tool
Posté le 04-05-2009 à 01:06:37  profilanswer
 

djkiri a écrit :

le genre de mémoire est un EEPROM , c'est pour stocker des informations.


Donc la mémoire sert à stocker les informations. Le bus I2C sert à véhiculer les infos vers la mémoire. (Je suppose que la lecture est de type // classique par bus d'adresse et de données...)
 
Alors quelle était la question, déjà ?


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Ajout d'une mémoire externe EEPROM 24LC256 (bus i2c) à un PIC 18F452

 

Sujets relatifs
Lecteur Mp3 en flash "externe"Gestion de la mémoire sous Vista
fopen - requete http externe : erreur de connexion (serveur dédié)Ajout de donnée sélectionner dans un tableau
Bug Mémoire - ocxAllocation très grande taille mémoire
[Access 2000] ajout multiple anormalexecution externe en java
Libération de la mémoire sous Excel 2002appel de script dynamiquement
Plus de sujets relatifs à : Ajout d'une mémoire externe EEPROM 24LC256 (bus i2c) à un PIC 18F452


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR