Partie 8 Communication série I²C Serial communication with I²C

Documents pareils
ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

1. PRESENTATION DU PROJET

Les liaisons SPI et I2C

Réalisation d un réseau de capteurs de température sans fil basé sur le protocole ZigBee

Master d'informatique 1ère année Réseaux et protocoles. Couche physique

Evaluation. Partie Quelles sont les possibilités offertes par cette caméra d un point de vue utilisation?

Transmissions série et parallèle

PIC EVAL Dev Board PIC18F97J60

NanoSense. Protocole Modbus de la sonde Particules P4000. (Version 01F)

Connexion sur REDLION G-308 avec le modem GSM GDW-11 pour envoi de SMS

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

2 Raccordement d une imprimante, d un terminal ou d un ordinateur au DULCOMARIN

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

ANALYSE TRAMEs LIAISON SERIE

Université de La Rochelle. Réseaux TD n 6

CLIP. (Calling Line Identification Presentation) Appareil autonome affichant le numéro appelant

PROGRAMMATION D'UN MICROCONTRÔLEUR

Fiche technique CPU 315SN/PN (315-4PN33)

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Projet M1 Année scolaire 2013/2014

Système Electronique pour le Monitoring des Chaînes PV

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A) MODULE A5 Programmation de la CPU 314C-2DP

PocketNet SNMP/Modbus

Fiche technique CPU 314SC/DPM (314-6CG13)

KX GPRS SERIAL ETHERNET MODEM Le modem GPRS/EDGE «Machine to Machine»

Guide Mémoire NETRAM

1) Où est le problème? Chère lectrice, cher lecteur, On est entre nous, alors on va se tutoyer.

Description d'une liaison

Bus de communication

Ordinateurs, Structure et Applications

COMMANDER la puissance par MODULATION COMMUNIQUER

Cours 7 : Programmation d une chaîne d acquisition

CONFIGURATION ET UTILISATION

Transmission de données. A) Principaux éléments intervenant dans la transmission

Enregistreur sans papier avec écran TFT et carte Compact Flash. B Description des interfaces 07.07/

Caractéristiques techniques

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Description du logiciel Modbus RTU

COMMUTEL PRO VM3 INTERFACE GSM VOIX POUR EMULATION DE LIGNE RTC ET TRANSMETTEUR DE SMS D ALERTES ET TECHNIQUES.

T101, serveur de temps haute précision

INdICAteur MISE EN SERVICE. INdICAteur. Afficheur déporté pour BAMOFLONIC PFA. MeS. Indicateur pour BAMOFLONIC /1. Code article :

DIRIS D-30 DIRIS Digiware D-40 DIRIS Digiware D-50

Le multiplexage. Sommaire

ENREGISTREUR DE TEMPERATURE

Concentrateur d accès SM400

Manuel d'utilisation. OctoBUS 64

EL70x1 en mode position. Mise en œuvre rapide. VERSION : Beta / DATE : 31 Juillet 2011

Licence Sciences et Technologies Examen janvier 2010

Logiciel de Télégestion

Mise en service HORUS version HTTP

Tuto pour connecter une source RVB RGB à un moniteur Commodore / Amiga

/ / / Système de distribution audio A44/A88 Logiciel PC

Organigramme / Algorigramme Dossier élève 1 SI

Corrigé des TD 1 à 5

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

Modules d automatismes simples

TeamConnect. SL TeamConnect CU1, Unité centrale SL TeamConnect CB1, Combox CARACTÉRISTIQUES

Guide d'utilisateur. Câble adaptateur USB2.0 vers IDE et SATA. Modèle : DA-70202

CYLINDRE ET BÉQUILLE ÉLECTRONIQUES À BADGE Aperio E100 & C100

Indicateur universel de procédé format 96 x 48 mm ( 1 /8 DIN)

Architecture des ordinateurs

J TB/TW Limiteur de température, contrôleur de température avec afficheur LCD, montage sur rail oméga 35 mm

Mentions légales (non traduites) Introduction Légendes Schémas de raccordement Configuration de la S16...

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Configuration d'un GSM pour une transmission de données via une centrale de mesure de Campbell Scientific

Spécifications détaillées

COMMUNICATION PC/MINITEL

FRANCAIS DGM1. Centrale Vigik 1 porte. N d homologation : - PS MS Gamme: Vigik MANUEL D INSTALLATION.

KL5121. Pour activer des sorties en fonction de la position d'un codeur

Système M-Bus NIEVEAU TERRAIN NIVEAU AUTOMATION NIVEAU GESTION. Domaines d'application

Éléments d'architecture des ordinateurs

Examen Médian - 1 heure 30

Séverine Marien Maxime Ringard. 2 ème année GEII. Régulateur de charge pour station de recharge photovoltaïque

Régulateur de fin de course CMFL

Prototypage électronique

Kit pédagogique RFID-EDUC

Programmation système de commandes en C

Vers du matériel libre

DTS MOBATime's Distributed Time System

Choix d'un serveur. Choix 1 : HP ProLiant DL380 G7 Base - Xeon E GHz

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Système d automation TROVIS 6400 Régulateur compact TROVIS 6493

Organisation du module

212 Erreur accès anti- Echo. 214 Erreur démarrage vérif DSP. 215 Erreur accès trame IC. 216 Erreur DSP carte MSG. 217 Erreur données Carte MSG

Electron S.R.L. - MERLINO - MILAN ITALIE Tel ( ) Fax Web electron@electron.it

Manuel d aide à la pose

Ebauche Rapport finale

Etudier l influence de différents paramètres sur un phénomène physique Communiquer et argumenter en utilisant un vocabulaire scientifique adapté

Parallélisme et Répartition

Algorithmique et Programmation, IMA

Ressource Site EURIDIS

MB Led. Benjamin Bonny Cédric Le Ninivin Guillaume Normand

Lecteur de carte à puce LCPM1 SOMMAIRE

VIII- Circuits séquentiels. Mémoires

Technique de sécurité

Information. BASES LITTERAIRES Etre capable de répondre à une question du type «la valeur trouvée respecte t-elle le cahier des charges?

Programmation d un contrôleur via une liaison téléphonique Note d application

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Transcription:

Cours/TD d informatique embarquée Utilisation d un microcontrôleur MBED Partie 8 Communication série I²C Serial communication with I²C Plan du cours 8.1. Introduction 8.2. Etude de la communication I²C 8.3. Utilisation de I²C avec mbed 8.4. Etude du circuit PCF8574 8.5. Etude du télémètre ultrason SFR08 CV C/TD INFO2 - Partie 8 page 1

8.1. Introduction I²C est l abréviation de Inter-Integrated Circuit bus I²C est un protocole de Ce protocole utilise une relation I²C utilise pour la communication (+ la masse) Les signaux de communication I² ²C sont - - Cela signifie qu à chaque instant esclave>>maître) Le protocole I²C utilise un bus série 2 fils : la donnée ne circule que dans un seul sens (maître>>esclave e ou L utilisation de seulement 2 fils (+ masse) fait de ce protocole un système Il existe de nombreux périphériques I²C (LCD, capteurs, mémoires, E/S ) Cela permet de délocaliser facilement plusieurs composants en utilisant seulement 3 fils Exercice 1 : Quelle est la vitesse de transmission du bus I²C? Rechercher 2 composants fonctionnant sur le bus I²C (capteur de température, LCD...) - - Quelle est la fonctionn du conposant PCF8583? CV C/TD INFO2 - Partie 8 page 2

8.2 Etude de la communication I²C I²C utilise un adressage des périphériques Intérêt : Chaque composant a (comme les numéros de maison dans une rue) codée sur 7 bits + un 0 Adresse = Pour parler à un composant il suffit de donner son dans le message qu on envoie Lorsqu il se reconnait le composant Le composant qui initie la communication est appelé. Le composant qui est adressé par le maître est appelé. Les esclaves et répondent uniquement aux données et aux commandes associées à. Cette méthode d'adressage limite le nombre de périphériques esclaves qui peuvent co-exister sur un seul bus I²C car chaque appareil doit avoir une adresse unique. (max = 2 7 = 128 périphériques) Exemple : adresse du composant PCF8574 Pour ce composant (PCF8574) sur les 7 bits d adresse : 4 sont (0100) 3 sont (A2A1A0): l utilisateur les fixe à ADR = 0100 A2A1A0 ADR = 01000000 = 0x40 ADR = 01000010 = 0x42 Exercice 3 : Combien de composant PCF8574 peut-on connecter sur un bus I²C? En étudiant la datasheet : a)dire quelle est la différence entre le PCF8574 et le PCF8574A. b)donner la fonction du circuit et dire sur quelles broches sont les sorties? CV C/TD INFO2 - Partie 8 page 3

Connecter la masse et l'alimentation sur les composants ci-dessous. Fixer les adresses à 0x46 et 0x4C Un transfert de données commence lorsque le maître signale un Start, suivi par 1,2 ou 3 octets contenant l adresse et les données. 1. Le START est défini par une transition 1 >> 0 de SDA lorsque SCL est à l état 1 2. Un front montant de SCL valide la donnée sur SDA. La donnée ne doit changer que lorsque l horloge est à l état 0 3. Une transition 0 >> 1 de SDA lorsque SCL est à l état 1 signifie le STOP 8.3 Utilisation de I²C avec mbed Les méthodes associées au type I2C sont dans le tableau ci-dessous : I2C Utilisation du mbed comme un maître I2C I2C Crée un maître I2C connecté à des broches spécifiques frequency Fixe la fréquence de l interface I²C read Permet la lecture de données issues d un esclave write Permet l écriture d une donnée vers un esclave start Crée un START sur le bus I²C stop Crée un STOP sur le bus I²C CV C/TD INFO2 - Partie 8 page 4

Le LPC1768 possède 2 interfaces I²C sur les broches p9/p10 et p28/p27 Les signaux SDA et SCL doivent être reliés à l alimentation avec des résistances (PullUp) dont la valeur peut être optimisée suivant la configuration du circuit. Ordre de grandeur : 1,8kΩ -> 10kΩ Exemple : Programme permettant de scanner toutes les adresses d un bus I²C Permet de savoir si des composants sont connectés sur le bus I²C et quelles sont leurs adresses #include "mbed.h" I2C composant(p9, p10); //sda, sc1 Serial pc(usbtx, USBRX); //tx, rx int main() { int i; printf("debut du Scan...\n\r"); for(i=0x00;i<=0xff;i=i+2){ composant.start(); //Start rep = composant.write(i); //Envoi d une adresse, y a-t-il une if(rep==1) //réponse? { printf("test de l adresse %x Composant I2C present!!\n\r",i); else{ printf("test adr = %x... rien... " %x\n\r",i); composant.stop(); //Stop wait(0.1); printf("fin du Scan...\n\r"); CV C/TD INFO2 - Partie 8 page 5

8.4 Etude du composant I²C PCF8574 Diagramme fonctionnel : Exercice 4 : Entourer le composant qui permet au PCF8574 de produire l'acquittement et d'écrire des données sur le bus. Quelle est la traduction en français des deux blocs de droite? Dans quelle direction vont les données? Exemple : Ce programme permet de fixer la valeur des sorties du PCF8574 #include "mbed.h" I2C composant(p9, p10); //sda, sc1 int main() { char A=0xAA; // 1010 1010 char B=0x55; // 0101 0101 while(1){ composant.write(0x40,&a,1); //Transfert de l octet dont //l adresse est &A wait(0.5); composant.write(0x40,&b,1); //Transfert de l octet dont //l adresse est &B wait(0.5); CV C/TD INFO2 - Partie 8 page 6

Exercice 4 : a) Réaliser le montage et scanner toutes les adresses du bus avec le premier programme. Quelle adresse a été trouvée? b) Fixer A 2 A 1 A 0 à "111"" et refaites les scan. Quelle adresse a été trouvée? c) Avec votre voisin, câbler deux composants sur un même bus et scanner les adresses. Quelles adresses ont été trouvées? a) b) c) Exercice 5 : Réaliser et tester le sorties. programme permettant de fixer les valeurs des a) Relever à l'oscilloscope les chronogrammes de SDA et SCL. b) Relever à l'oscilloscope les chronogrammes des sorties p4 et p5 (broches 9 et 10 du PCF8574). CV C/TD INFO2 - Partie 8 page 7

Préciser clairement les échelles, les axes et les unités. a) chronogramme de SDA et SCL b)chronogramme de p4 et p5 Quelle est la fréquence du signal SCL? (Comparer avec la liaison série asynchrone 9600 bauds) Quelle est la durée de la transmission d'un octet? Exercice 6 : Travail à réaliser à deux : Réaliser un programme permetttant de saisir un nombre sur teraterm et de l'envoyer sur le PCF8574. L'écriture se fera à chaque fois que l'utilisateur rentre un nombre. Réaliser un deuxième programme permettant de lire une valeur présente sur le PCF8574 et de l'afficher sur le teraterm. La lecture devra se faire dans un Ticker appelé toutes les 500ms. Connecter entre eux les deux composants et envoyer un nombre depuis un PC vers le PC voisin. 8.4 Etude du composant I²C SRF08 Le capteur SRF08 est un capteur Il communique ses mesures en I²C et son adresse d usine est Procédure pour une lecture en cm : 1. Envoi (= l octet suivant sera ta configuration) et (= configuration en cm) 2. Envoi de (= envoie moi la donnée sur 2 octets) 3. Lecture de la donnée sur 2 octets CV C/TD INFO2 - Partie 8 page 8

Le SRF08 peut être connecté comme sur la figure ci-dessous : SRF08 est alimenté en 5V et les résistances de PullUp tirent les potentiels au 5V (SDA, SCL). Exemple : Utilisation du SFR08 #include "mbed.h" I2C UltraSon(p9, p10); //sda, sc1 Serial pc(usbtx, USBRX); //tx, rx int addr = 0xE0; char config[2]; char lecture[2]; int main() { int valeur; while (1) { config[0] = 0x00; // config[1] = 0x51; // UltraSon.write(addr, config, 2); wait(0.07); config[0] = 0x02; UltraSon.write(addr, config, 1); UltraSon.read(addr, lecture, 2); valeur = ((lecture[0] << 8) + lecture[1]); pc.printf(«distance = %d cm\n\r", valeur); wait(0.1); Exercice 6 : a) Câbler le SRF08 sur votre mbed et scanner les adresses. b) Tester le programme ci-dessus (modifier éventuellement le 0xE0). c) Etudier la documentation du SRF08 et modifier la configuration pour que la mesure soit réalisée en inches. d) Etudier la documentation et réaliser un programme qui permette de modifier l'adresse du SRF08. CV C/TD INFO2 - Partie 8 page 9

Questions de cours : Q1) Que signifie I2C? Q2) Combien de fils possède le bus de I2C? Q3) Quel est l'état de repos du bus? Q4) Sur combien de bits sont adressés les composants? Les adresses sont elles paires, impaires ou les deux? Q5) Est-il possible de connecter plus de 2 composants I²C sur un même bus? Q6) Dessiner la condition de Start et de Stop sur le bus I²C? Q7) Au cours de la transmission d'un octet quel doit être l'état de SCL lorsque SDA varie? Q8) Lorsque la méthode write est appelée avec un seul argument il faut utiliser les méthodes start et stop, vrai ou faux? Q9) Lorsque la méthode write est appelée avec 3 arguments il est inutile d'utiliser les méthodes start et stop, vrai ou faux? Q10) Lorsque la méthode write est appelée avec 3 arguments, quels sont ces arguments? CV C/TD INFO2 - Partie 8 page 10