TD bus I2C

Ce TD porte sur l’étude du capteur de proximité VCNL3020 link de chez Vishay link.

Ce capteur est composé d’un émetteur infra-rouge associé à un récepteur.

Il détermine la proximité d’un objet par la quantité de lumière infra-rouge réfléchie par ce dernier.

Les réponses aux questions posées sont à formuler à partir des informations présentes dans les 3 documents suivants :

✎ Travail n° 1 Caractéristiques

  1. À partir de quelle broche d’une Raspberry Pi est-il préférable d’alimenter le VCNL3020 ? Justifier.

    Le brochage de la Raspberry Pi peut-être trouvé ici

  2. Quelle distance max. peut mesurer le VCNL3020 ? Avec quelle résolution ? Justifier.

  3. À combien de mesures par secondes doit-on se limiter pour limiter la consommation propre du capteur à environ 500µA ? À quelle valeur doit-on alors limiter le courant consommé par la DEL émettrice ? Justifier.

  4. À partir de la “Fig. 3 - Proximity Value vs. Distance” de la datasheet, à quelle distance “approximative” correspond la valeur 3000|10 sachant que le courant de la DEL émettrice a été programmée sur 20mA ?

✎ Travail n° 2 Généralités I2C

  1. Quelle est, en binaire/hexadécimal/décimal, l’adresse I2C sur 7 bits du VCNL3020 ? À quelles “adresses” sur 8 bits cela correspond-il selon qu’on lit ou écrit sur le VCNL3020 ? Justifier.

  2. À quelle fréquence maximale peut-on dialoguer en I2C avec le capteur ? À quel mode (standard, fast, fast+, high speed, ultra fast) cela correspond-il ? Justifier.

  3. Quelle étendue de valeurs de résistances de pull-up à placer sur les lignes SDA et SCL du bus I2C est recommandée par le constructeur ? De quoi dépendent ces valeurs ? Justifier.

✎ Travail n° 3 Modèle de programmation

  1. Combien de registres internes possède le VCNL3020 ? Combien de bits comprennent-ils ? Justifier.

  2. Quelle trame I2C va-t-on devoir constituer pour programmer la valeur du courant utilisée par la DEL émettrice à une valeur de 20mA (→ registre IR LED CURRENT REGISTER #3) ? Représenter l’échange I2C complet avec le formalisme utilisé dans la datasheet.

  3. Représenter, avec le même formalisme, l’échange I2C complet correspondant à la lecture de l’ID et la révision du composant (→ registre PRODUCT ID REVISION REGISTER #1) ?

  4. Par rapport à ce qui est indiqué dans le paragraphe de la datasheet intitulé “IMPORTANT APPLICATION HINTS AND EXAMPLES”, représenter l’échange I2C complet correspondant à la lecture de la valeur 3000|10 dans les registres PROXIMITY RESULT REGISTER #7 et PROXIMITY RESULT REGISTER #8.

🞄  🞄  🞄