Vous êtes sur la page 1sur 4

Université du Havre

UFR-ST- Master 1 EEEA

Microcontrôleurs-2

TP SERIE 4: Suite communication I2C et asynchrone

1- Objectif du TP:

Programmer les modules suivants du PIC16F886 :

- Le MSSP pour la communication avec différents circuits I2C.


- L’EUSART pour la communication avec un terminal.

2- Description de l’application :

Dans cette application, plusieurs périphériques communiquent avec le PIC, à savoir :

Sur le bus i2C :

- Un extenseur de port de référence MCP23008.


- Une EEPROM de référence 24LC02B.

1
- Un ADC de résolution 12 bit de référence MCP3221.
- Un DAC de référence MAX517.
- Un capteur de température de référence DS1621.
- Un LCD JHD.

Sur le bus asynchrone :

- Un terminal.

Programmation du microcontrôleur :

Le microcontrôleur devra pour effectuer les tâches suivantes dès l’appui sur le bouton START :

a- Lecture du port du MCP23008. La valeur lue est appelée Val. Cette valeur est fixée par
l’utilisateur.

b- Transmission de la valeur Val au DAC MAX517 qui la convertira en une tension analogique Vx.

c- Conversion de la sortie Vx du DAC par l'ADC MCP3221.

d- Affichage du résultat décimal de l'ADC sur la ligne 1 du LCD.

e- Lecture de la température Tx mesurée par le DS121.

f- Affichage de la valeur de Tx sur la ligne 2 du LCD.

g- Sauvegarde dans l'EEPROM:

- de la valeur Val du PORT de l’extenseur à l'adresse 0xA1


- du résultat de l'ADC à l'adresse 0xA2
- de la température à l'adresse 0xA4

h- Affichage sur le terminal du contenu hexadécimal des adresses 0xA0 à 0xA5 de l’EEPROM.

Exigences :

La fréquence de l’oscillateur sera réglée à 4MHz.


La fréquence de transmission I2C sera fixée à 10KHz.
Communication asynchrone : 9600 bauds (erreur < =5%) , 8 bits, sans parité, 1 bit de stop,

Les adresses des circuits i2C doivent être respectées.

2
3- Travail préparatoire :

3.a- En vous aidant de la documentation « constructeur » des différents circuits i2c de cette
application, écrire les fonctions de communication suivantes (vous devez commenter votre code pour
qu’il soit compréhensible) :

// ADC MCP3221

unsigned int ADC_read(void)

// EEPROM 24LC02

unsigned char Eeprom_read(unsigned char adress)


void Eeprom_write(unsigned char adress, unsigned char data)

➔ Respecter les temps d’accès, de lecture et d’écriture de l’EEPROM.

// MCP23008

void MCP_Tris(unsigned char x)


void MCP_write(unsigned char x)
unsigned char MCP_read(void)

// DS1621

void Command(unsigned char chip_adr,unsigned char com)


void write_reg8(unsigned char registre, unsigned char val)
unsigned char read_reg8(unsigned char registre)
void write_reg16(unsigned char registre, unsigned char val_H, unsigned char val_L)
void read_reg16(unsigned char registre, unsigned char *val_H, unsigned char *val_L)

➔ Respecter les temps de conversion du DS121…

// DAC MAX517

void DAC_write(unsigned char val)

Vous écrirez également les fonctions d’initialisation du PIC, de l’I2C, du LCD, de l’EUSART,
éventuellement les initialisations des circuits i2C ainsi que les fonctions de communication que vous
avez déjà utilisées aux TPs précédents.

3.b Répondre aux questions suivantes :

- Quelle est la résolution du DAC utilisé ?


- Quelle est la relation liant le résultat du DAC à au nombre d’entrée à convertir ?
- Quelle est la relation liant le résultat de l’ADC MCP3221 à la tension à convertir ?

3
- Dans cette application, à quoi correspond le contenu de l’adresse 0xA3 de l’EEPROM ?
- Quel sera le contenu du registre température du DS1621 si la température mesurée est de
38.5°C ?

Documentation technique nécessaire :

https://ww1.microchip.com/downloads/en/DeviceDoc/21919e.pdf

https://ww1.microchip.com/downloads/en/devicedoc/21709c.pdf

https://ww1.microchip.com/downloads/en/devicedoc/20001732e.pdf

https://pdfserv.maximintegrated.com/en/ds/DS1621.pdf

http://ww1.microchip.com/downloads/en/devicedoc/41291d.pdf

https://www.analog.com/media/en/technical-documentation/data-sheets/MAX517-MAX519.pdf

Vous aimerez peut-être aussi