Pièces: 8bit Io Expander (PCF8574)

Pièces: 8bit Io Expander (PCF8574)

May 21, 2023 Uncategorized 0

Dans certains cas, un travail a beaucoup plus de capteurs, de boutons ou de voyants que votre microcontrôleur a des goupilles. Le PCF8574 est une méthode simple pour ajouter 8 broches d’entrée à basse vitesse ou de sortie à un microcontrôleur. Une adresse configurable permet d’exister plusieurs PCF8574 sur le même bus, de sorte que deux broches de microcontrôleur peuvent gérer de nombreuses goupilles IO. Nous vous montrerons exactement comment utiliser cette puce ci-dessous.

TI PCF8574 I2C 8BIT IO Expander (Mouser # 595-PCF8574N, 1,86 $)

Nous avons découvert des empreintes de la carte pour cette puce dans i2c.lbr ainsi que micro-phillips.lbr sur la page de téléchargement de la bibliothèque de Cadsoft Eagle. Le PCF8574 est géré avec le protocole de 2 câbles I2C, nous avons donc utilisé notre interface série universelle de pirate de bus pour démontrer cette puce. Les mêmes opérations fondamentales s’appliqueront à tout type de microcontrôleur.

Le schéma montre notre circuit de test facile pour le PCF8574, voici la fiche technique (PDF). Nous avons alimenté la puce avec 5 volts, ainsi que l’utilisation d’un condensateur de découplage 0.1uf (C1) entre la puissance ainsi que les broches moulantes. R1 ainsi que R2 maintiennent l’horloge I2C ainsi que le bus de données à 5 Volts. Nous allons utiliser une LED pour tester les fonctionnalités de sortie de la puce; P0 est liée à LED1 avec résistance de limitation actuelle R3 (330+ ohms). P6 ainsi que P7 sont connectés au comprises spécifie afin que nous puissions tester rapidement les capacités d’entrée de la puce.

L’adresse I2C de PCF8574 est 0100xxxy, avec trois bits (X) identifiées par la spécification des broches d’adresse A2-0, ainsi qu’un bit final (Y) qui définit le mode vérifié (1) ou composez (0) mode. De nombreux PFC8574S peuvent partager un bus I2C en utilisant différents paramètres de broche d’adresse. Parce que nous avons connecté les broches d’adresse à la terre, l’adresse de composition est de 01000000 (0x40).

Sortir

La LED sur P0 est gérée par la composition d’un 1 (ON) ou 0 (OFF) au bit 0 de l’octet se conformant à l’adresse de la composition.

I2c> {0x40 0b00000001} <-Command 210 i2c commencent condition 220 I2C Écrire: 0x40 Got ACK: Oui <-Write Adresse 220 I2C Écrire: 0x01 a reçu ACK: Oui <-Out de valeur Condition d'arrêt 240 I2C I2c>

{Problèmes Un I2C Begin Condition, respecté par l’adresse de la composition, 0x40. La valeur de sortie, 0B00000001, définit P0 High ainsi que les bits restés bas. } Envoie la condition d’arrêt de bus I2C, mettant fin à la transaction. Lorsque le bit correspondant est réglé haut, le voyant s’allume.

Pour éteindre le voyant, répétez la séquence avec le bit de sortie correspondant défini sur 0.

I2C> {0x40 0B00000000} <- Commande 210 i2c commencent condition 220 I2C Écrire: 0x40 Got ACK: Oui <-Write Adresse 220 I2C Écrire: 0x00 Got ACK: Oui <-Out de valeur Condition d'arrêt 240 I2C I2c>

Avec P0 maintenant réglé sur le sol, le voyant s’éteint.

Contribution

Les broches définies sur la sortie haute peuvent également être utilisées en tant qu’entrées (page de données Page 1). Dans l’exemple, P6 est maintenu haut (+5 volts) ainsi que P7 est maintenu faible (sol), mais ceux-ci peuvent également être des boutons, des capteurs ou une autre logique numérique. Les autres broches sont laissées flottantes et ne représentent pas de données valides.

I2c> {0x40 0b11000000} <- commande 210 i2c commencent condition 220 I2C Écrire: 0x40 Got ACK: Oui <-Write Adresse 220 I2C Écrire: 0xc0 a obtenu ACK: oui <-Out de valeur Condition d'arrêt 240 I2C I2c>

Premièrement, nous définissons les broches d’entrée préférées à la sortie élevée en composant 1 aux bits correspondants de la valeur de sortie. BITS 6 Ainsi que 7 Set P6 ainsi que P7 pour produire haut.

Maintenant, nous pouvons vérifier le code PIN. Nous avons fait cette opération avec la sortie de la sortie du pirate de bus au mode binaire pour vous assurer que les valeurs des broches sont rapidement évidentes.

I2c> {0x41 r} <- commande 210 i2c commencent condition 220 I2C Écrire: 0B01000001 Got ACK: Oui <-Address 230 I2C Lire: 0b01000000 <-Pin State Condition d'arrêt 240 I2C I2c>

{PROBLÈMES UNE DÉMONTRE I2C DÉMONTRE, 0x41 est l’adresse décorée, ainsi que r lit un octet à partir du périphérique. } Envoie la condition d’arrêt de bus I2C, mettant fin à la transaction.

La réponse, 01000000, représente la spécification des broches d’entrée. Le bit le plus considérable est 0 car P7 est connecté au sol. Le bit suivant est 1 car p6 est maintenu élevé, les autres bits (0) sont des données à la poubelle.

Ceci est loin du seul IO Expander IC. Avez-vous utilisé une puce de plus?

Ne manquez pas de vous rappeler de rattraper sur aucun type de messages de pièces que vous avez peut-être manqués.

Leave a Reply

Your email address will not be published. Required fields are marked *