[RESOLU] PCF8575 I2C I/O Expander et configuration des PINs
bonjour à tous ! 
voilà, je souhaite ajouter sur mon arduino une carte d'extension i/o : le pcf8575.
avant de rentrer dans des considérations de code et autres, j'ai essayé de comprendre la datasheet que propose texas instruments et il y quelque chose que je ne comprends pas :
comment définit-on que tel port va être une input et que tel autre port va être une output ? moi, de ce que je comprends, quand on décide de passer en mode lecture, on lit forcément tous les ports de la carte (p00 à p17). et quand on se met en mode écriture, on écrit forcément sur tous les ports de la carte également. il y donc pour moi un conflit. soit ils sont tous en input, soit ils sont tous en output !
supposons que je veuille que mon port p00 soit une input pour un capteur x. supposons également que je souhaite que mon port p01 soit une output. comme faut-il procéder pour le "dire" que p00 est input et p01 output ?
ce que je veux dire c'est que, après avoir envoyé mes bits d'adressage du périphérique et le bit du mode r/w, si je veux connaitre l'état de mon capteur x, je vais passer en mode lecture. mais (et c'est comme ça que je comprends la ds) à ce moment là je vais lire tous les états de mes ports. mes ports deviennent donc tous input, non ?
supposons que maintenant je souhaite mettre ma p01 en high, je vais devoir passer en mode écriture. mais là aussi, je suis obligé de fournir 2 octets de données donc je vais devoir imposer l'état de p00 que je voulais en input !
j'avoue que je suis perdu. je pourrais ne pas me poser de questions et utiliser directement les libs disponibles pour utiliser ce genre de composant mais je préférerais comprendre avant un peu comme ça marche. Ça fait un jour que je me prends la tête et que je ne trouve pas d'explication. je dois louper quelque chose.
je vous remercie !

voilà, je souhaite ajouter sur mon arduino une carte d'extension i/o : le pcf8575.
avant de rentrer dans des considérations de code et autres, j'ai essayé de comprendre la datasheet que propose texas instruments et il y quelque chose que je ne comprends pas :
comment définit-on que tel port va être une input et que tel autre port va être une output ? moi, de ce que je comprends, quand on décide de passer en mode lecture, on lit forcément tous les ports de la carte (p00 à p17). et quand on se met en mode écriture, on écrit forcément sur tous les ports de la carte également. il y donc pour moi un conflit. soit ils sont tous en input, soit ils sont tous en output !
supposons que je veuille que mon port p00 soit une input pour un capteur x. supposons également que je souhaite que mon port p01 soit une output. comme faut-il procéder pour le "dire" que p00 est input et p01 output ?
ce que je veux dire c'est que, après avoir envoyé mes bits d'adressage du périphérique et le bit du mode r/w, si je veux connaitre l'état de mon capteur x, je vais passer en mode lecture. mais (et c'est comme ça que je comprends la ds) à ce moment là je vais lire tous les états de mes ports. mes ports deviennent donc tous input, non ?
supposons que maintenant je souhaite mettre ma p01 en high, je vais devoir passer en mode écriture. mais là aussi, je suis obligé de fournir 2 octets de données donc je vais devoir imposer l'état de p00 que je voulais en input !
j'avoue que je suis perdu. je pourrais ne pas me poser de questions et utiliser directement les libs disponibles pour utiliser ce genre de composant mais je préférerais comprendre avant un peu comme ça marche. Ça fait un jour que je me prends la tête et que je ne trouve pas d'explication. je dois louper quelque chose.
je vous remercie !

bonjour
sauf erreur de ma part, les pcf8574 et pcf8575 ne sont pas complètement bidirectionnels, c'est-à-dire que tu n'imposes pas un mode de fonctionnement strict input ou output des pins.
je ne suis pas sûr de l'exprimer correctement d'un point de vue électrique, mais l'état "1" d'une sortie est un état faible, qui s'efface si le composant raccordé sur la sortie impose gnd (je le vois comme une sortie avec une résistance de pull à 5v).
a la mise sous tension toutes les sorties sont d'ailleurs à 1.
si la pin est utilisée en entrée, chaque écriture ver les pcf doit la placer à 1, et c'est le composant raccordé à la sortie qui imposera la tension 5v ou gnd. si celui-ci impose gnd alors il y aura un léger courant de fuite sur la sortie.
si la pin est utilisée en sortie, l'état 1 = 5v ne peut délivrer qu'un courant très faible (cf datasheet il me semble que c'est 2ma). l'état 0 = gnd un capacité d'absorption de courant plus importante (20 ma ?).
sauf erreur de ma part, les pcf8574 et pcf8575 ne sont pas complètement bidirectionnels, c'est-à-dire que tu n'imposes pas un mode de fonctionnement strict input ou output des pins.
je ne suis pas sûr de l'exprimer correctement d'un point de vue électrique, mais l'état "1" d'une sortie est un état faible, qui s'efface si le composant raccordé sur la sortie impose gnd (je le vois comme une sortie avec une résistance de pull à 5v).
a la mise sous tension toutes les sorties sont d'ailleurs à 1.
si la pin est utilisée en entrée, chaque écriture ver les pcf doit la placer à 1, et c'est le composant raccordé à la sortie qui imposera la tension 5v ou gnd. si celui-ci impose gnd alors il y aura un léger courant de fuite sur la sortie.
si la pin est utilisée en sortie, l'état 1 = 5v ne peut délivrer qu'un courant très faible (cf datasheet il me semble que c'est 2ma). l'état 0 = gnd un capacité d'absorption de courant plus importante (20 ma ?).
Arduino Forum > International > Français (Moderators: jfs, Snootlab) > [RESOLU] PCF8575 I2C I/O Expander et configuration des PINs
arduino
Comments
Post a Comment