http://micropic.free.fr
La gestion d'un bus I2C
Dans cette partie , nous allons voir comment interfacer le PIC16F84 avec un bus I2C.
L'exemple qui va suivre concernera une mémoire 24C16.

Le fichier que l'on va utiliser est issu du site de Pierre COL :
http://www.altern.org/col2000/

les commandes disponibles sont les suivantes :
  • call I2Cinit : initialise le port I2C
  • call I2CSTART : Envoie une sequence 'START' au peripherique I2C
  • call I2CSTOP : Envoie une sequence 'STOP' au peripherique I2C
  • call WtoI2C : Envoie un octet contenu dans W au peripherique I2C
  • call I2CtoW : Lit un octet depuis le peripherique I2C
  • call I2CgetACK : Verifie si le peripherique I2C renvoie un 'Acknowledge'
  • call I2CsetACK : Envoie un bit 'Acknowledge' au peripherique I2C
  • call I2CsetNoACK : Envoie un 'No Acknowledge' au peripherique I2C
  • call Set_Adr_I2C : Dans l'EEPROM I2C, pointe l'adresse memoire voulue
  • call Read24C16 : Lit un octet situe dans l'EEPROM I2C
  • call Write24C16 : Ecrit un octet dans l'EEPROM I2C

Voici le fichier asm :
i2c_mast.asm


voici un exemple :
i2c_test.asm qui écrit une valeur à l'adresse $100 de la memoire 24C16 , la relie et enfin l'affiche sur un afficheur LCD.



Et le schéma de branchement :





© 1999-2004 Philippe Brégea