Panier d'achat :
0 article / 0.00 €

[s'identifier]


Notes d'applications

Outils de développements Starter-kits (8 à 32 bits) Modules PICBASIC


Adressage mémoire EEprom I2C™ 24LC04 - 30/05/2002   -  Mr Bernard Bourgeois
Le programme "EEPROM.BAS" vous montrera comment adresser une mémoire externe I2C™ à l'aide d'un module PICBASIC.
  
  
 

Autre exemple d'adressage d'une mémoire EEprom I2C™ -
Lextronic

Il peut être intéressant dans certains cas de figure de disposer d'une mémoire externe supplémentaire pour sauvegarder un grand nombre de données. L'exemple qui suit vous montre comment piloter une mémoire de type 24LC04. Cette référence utilise un mode de gestion basé sur le protocole "I2C™". Ce protocole mis au point par Philips™ est très utilisé par d'autres types de composants: mémoire RAM, gestionnaire d'entrées/ sorties, convertisseurs N/A, synthétiseurs, etc... Sans expliquer dans le détail le principe de fonctionnement (de très bons ouvrages techniques spécialisés sont disponibles pour celà), sachez qu'il nécessite seulement le recours à 2 fils de liaisons qui par le biais d'un dialogue série vous permettront de piloter entièrement ces composants. Tous les composants "I2C™" peuvent être "montés" en parallèle (vis-à-vis de leur bus 2 fils) et adressés indépendamment grâce à un système de "repérage" par une adresse interne à chaque circuit. Les 2 fils utilisés sont respectivement RDA (servant à envoyer / recevoir les données en série) et CSL servant de signal d'horloge de synchronisation. Des conditions particulières dans l'établissement et le chevauchement de ces signaux permettent de déterminer les débuts et fins (START/STOP) de communication entre les circuits. Le programme ci-dessous recrée tous les signaux de base propres à piloter des composants I2C™ et vous montre comment lire et afficher tout le contenu d'une mémoire EEPROM 24LC04 sur un afficheur LCD à commande série.
  
   

  
 
          
  
  
               CONST SCL = 4
' Programme de gestion de la mémoire EEPROM
               CONST SDA = 5
               DIM I AS BYTE
               DIM J AS BYTE
               DIM K AS BYTE
               SET PICBUS HIGH
               LCDINIT 
               J=0
10           GOSUB I2C_WRITE
               GOSUB I2C_READ
               J = J + 1
               LOCATE 0,0 ' Initialise l'adresse de lecture
' Entame le dialogue avec l'EEPROM
' Récupère la donnée dans l'EEPROM
 
 
               PRINT HEX(K)
               GOTO 10

I2C_WRITE:
               GOSUB I2C_START ' Affiche la valeur hexadécimale de la donnée lue.       
 
   
               I = &B10101110 ' Configure l'adresse de repérage de l'EEPROM
               SHIFTOUT SCL,SDA,2,I ' Envoi l'adresse de l'EEPROM sur le BUS I2C
               SHIFTOUT SCL,SDA,2,J ' pour le sélectionner
               SHIFTOUT SCL,SDA,2,J
               GOSUB I2C_STOP
               RETURN

I2C_READ:
               GOSUB I2C_START 
               I = &B10101110 ' Configure l'adresse de repérage de l'EEPROM
               SHIFTOUT SCL,SDA,2,I ' Envoi l'adresse de l'EEPROM sur le BUS I2C
               SHIFTOUT SCL,SDA,2,J ' pour le sélectionner
               GOSUB I2C_START
               I = &B10101110
               SHIFTOUT SCL,SDA,2,I
               K = SHIFTIN (SCL,SDA,1)
               GOSUB I2C_STOP
               RETURN

I2C_START:
               OUT SCL,1
               OUT SDA,1
               OUT SDA,0
               RETURN

I2C_STOP:
               OUT     SDA,0
               OUT     SCL,1
               OUT     SDA,1
               RETURN