Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Tout ce qui n'a pas de catégorie !
I2C et multiplexage
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#1 Message par Gérard » mar. 3 nov. 2020 10:39

Bonjour à tous,

Pour un projet, j'ai besoin de commander 10 MCP23016. Les adresses hard permettent 8 circuits. J'ai trouvé ce circuit.
Je ne le connais pas et je voulais savoir si quelqu'un a déjà utilisé ce circuit.

Ou alors, y a-t-il une autre possibilité pour mes 10 MCP?

Merci d'avance pour vos idées.

GG est là avec ses questions... :-D
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

I2C et multiplexage
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2596
Enregistré en : juillet 2016
Localisation : Terre

#2 Message par Temps-x » mer. 4 nov. 2020 02:55

Bonsoir Gérard, et tout le forum,

Gérard a écrit :Source du message Les adresses hard permettent 8 circuits

Exacte, il te manque 2 circuits
Gérard a écrit :Source du message j'ai besoin de commander 10 MCP23016

oops 10 circuits, ce qui nous fait 10x16 = 160 sorties/entrées à gérer
Gérard a écrit :Source du message Ou alors, y a-t-il une autre possibilité pour mes 10 MCP ?

Pourquoi ne pas prendre un 2 Pic avec 100 sorties/entrées genre PIC18F97J94

Gérard a écrit :Source du message GG est là avec ses questions... :-D

GG et de retour... :lol:

:roll: Je me demande ce qu'il nous prépare...

==> A+
Modifié en dernier par Temps-x le jeu. 5 nov. 2020 01:47, modifié 3 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

I2C et multiplexage
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#3 Message par paulfjujo » mer. 4 nov. 2020 08:30

bonjour,



8 x16 serait OK avec l'adressage I2C ..
dommage il n'y a pas de pin CS sur ce boitier...

par contre en version MCP 23S17 et en liaison SPI ( le pendant du MCP23017 I2C rapide 1,7MHz par rappor au MCP23016 400Khz maxi)
la boche CS permettrait de faire une selection de boitier
+ un decoder genre 4 vers 16 ( 74HC154, CD4515B ) ,piloté par 4 sorties PIC .. permettrait 16 x 16 E/S
Aide toi, le ciel ou FantasPic t'aidera

I2C et multiplexage
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2596
Enregistré en : juillet 2016
Localisation : Terre

#4 Message par Temps-x » jeu. 5 nov. 2020 01:55

Bonsoir paulfjujo, Gérard, et tout le forum,

paulfjujo a écrit :Source du message par contre en version MCP23S17 et en liaison SPI

Effectivement en mode SPI on peut aller beaucoup plus loin sur le nombre de circuit, car la broche CS existe, ce qui n'est pas le cas pour le mode I2C

Normalement si je ne me trompe pas, on peut aller jusqu’à 8 circuits par patte du Pic, donc, si tu utilises 2 pattes pour CS sur ton Pic, tu auras 16 circuits .

==> A+
Modifié en dernier par Temps-x le jeu. 5 nov. 2020 20:20, modifié 1 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

I2C et multiplexage
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#5 Message par paulfjujo » jeu. 5 nov. 2020 10:02

bonjour à tous,

:+1:
Temps-x a écrit :Normalement si je ne me trompe pas, on peut aller jusqu’à 8 circuits supplémentaires par patte du Pic, donc, si tu utilises 2 pattes pour CS sur ton Pic, tu auras 16 circuits supplémentaires.

==> A+


Effectivement, l'adressage device en mode SPI est aussi possible via A0 A1 A2
si : Address pins are enabled/disabled via IOCON.HAEN.
ce qui mobiliserait 2 pins du PIC ( sans decodeur pour selectionner 1 boitier parmi 16)

il faut supposer aussi que l'Application se contente d'une activation sequentielle des 16x16 E/S ..decalage temporel au niveau des commandes.
Aide toi, le ciel ou FantasPic t'aidera

I2C et multiplexage
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#6 Message par Gérard » ven. 6 nov. 2020 22:18

Merci à tous pour vos idées.
Je vais parler un peu plus longuement du pourquoi des 10 circuits. A l'origine, je ne voulais en utiliser que 8 (c'est OK avec 3 pins d'adresses hard).
Pour le reste des besoins, j'avais dans l'idée de prendre des PCF8574A. Sauf que je n'arrive pas à les utiliser en sorties.

J'ai un montage qui en utilise 2, je suis sûr du fonctionnement. Je veux tester en sortie et ça ne fonctionne pas.
Moyens de test :
- plaque sans soudure neuve achetée chez Farnell
- PCF qui fonctionnent en entrées
Pas de bol, ils ne fonctionnent pas en sortie. Je ne peux pas mettre le matériel RCP en cause, il n'y en a pas.

L'objectif était de piloter des 74247 mais là aussi des soucis.

Branchements :
74247 (acheté chez Ali) qui pilotent des afficheurs 7 segments 1,8' bleus. Je constate que les segments éteints sont un peu allumés et que le 6 et le 9 ne sont pas conformes. Au 6, il manque le segment "a" et au 9 le segment "d". Souci RPC? Sur un autre montage, ça fonctionne très bien.

Donc j'ai besoin de remplacer les 4 PCF (4*8 sorties). J'ai trouvé le MAX7320.
L'ennui, c'est que ce n'est pas compatible coté brochage et que les circuits imprimés sont faits.

Je compte faire un circuit imprimé d'adaptation MAX --> PCF, je crois que c'est le plus simple.

Maintenant 2 questions :
- connaissez-vous le MAX?
- mon idée est elle correcte, réalisable, farfelue, autre... ?

Merci de m'avoir lu et pour votre patience.

Bon WE confiné, prenez soin de vous.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

I2C et multiplexage
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#7 Message par paulfjujo » sam. 7 nov. 2020 10:46

bonjour à tous,

Gérard a écrit : j'avais dans l'idée de prendre des ...PCF8574A. Sauf que je n'arrive pas à les utiliser en sorties.


le pilotage d'un PCF8754 en sortie est OK , sur les LCD I2C ...ou meme pour piloter 8 sorties quelconques..
Peux- tu poster ton code de test ?

attention: le PCF8754A n'a pas la meme adresse I2C que le PCF8754
Aide toi, le ciel ou FantasPic t'aidera

I2C et multiplexage
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#8 Message par Gérard » sam. 7 nov. 2020 16:14

BOUCLE_PRINCIPALE:

GoSub TEST_I2C_PCF ;PCF8574A
LED = ~LED
LED2 = ~LED2
GoTo BOUCLE_PRINCIPALE

TEST_I2C_PCF:

BStart
BusOut %01110000, [0]
DelayMS 200
BusOut %01110000, [255]
DelayMS 200
BStop

Return

Il y a bien une init avant la boucle principale.
Les LED et LED2 permettent de voir que le PIC tourne ce qui est le cas.
La sonde de l'oscillo me dit aussi qu'il se passe quelque chose sur SCL et SDA.

BusOut est une instruction que je connais pour l'avoir utilisée par ailleurs sans souci.
Ce SP devrait faire clignoter tout le port de sortie. J'ai monté une LED et rien ne se passe.
Je suis sûr du fonctionnement du 8574A vu qu'il fonctionne sur une autre carte sur laquelle il va lire 8 BP.

Même test avec un 8574 avec BusOut %01000000, [0] et rien non plus.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

I2C et multiplexage
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#9 Message par paulfjujo » dim. 8 nov. 2020 09:11

bonjour Gerard, et à tous


tes sorties leds sont-elles en pull up ( vers Vcc)
et a travers de quelle valeur de R ?
maxi i par sortie =10mA...

BusOut c'est bien de l'I2C ou du SPI ?

peux-tu essayer

Code : Tout sélectionner


BStart
BusOut 
%01110000, [0]      // test du ack ?
BStop
DelayMS 200
BStart
BusOut 
%01110000, [255]
BStop
DelayMS 200



et un test en mikro Basic avec la lib I2C .. serait plus convaincant .
Aide toi, le ciel ou FantasPic t'aidera

I2C et multiplexage
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#10 Message par Gérard » dim. 8 nov. 2020 21:29

paulfjujo a écrit :bonjour Gerard, et à tous


tes sorties leds sont-elles en pull up ( vers Vcc)
et a travers de quelle valeur de R ?
maxi i par sortie =10mA...

BusOut c'est bien de l'I2C ou du SPI ?


Je n'ai branché qu'une seule LED, essais entre VCC et pin et entre GND et pin, sans résultat.
Oui, BusOut est de l'I2C.

paulfjujo a écrit :peux-tu essayer


Code : Tout sélectionner


BStart
BusOut 
%01110000, [0]      // test du ack ?
BStop
DelayMS 200
BStart
BusOut 
%01110000, [255]
BStop
DelayMS 200



J'ai fait ce test, pas de résultat.

paulfjujo a écrit :
et un test en mikro Basic avec  la lib I2C  .. serait plus convaincant .


Code : Tout sélectionner


BOUCLE_PRINCIPALE
:

    LED = 1
    LED2 
= 0
    DELAY_MS 
(200)
    LED = 0
    LED2 
= 1
    DELAY_MS 
(200)

    I2C1_START()
    I2C1_WR (%01110000)
    I2C1_WR (0)
    I2C1_STOP()
    DELAY_MS(200)

    I2C1_START()
    I2C1_WR (%01110000)
    I2C1_WR (255)
    I2C1_STOP()
    DELAY_MS(200)

    GOTO BOUCLE_PRINCIPALE



Si je supprime la portion de code I2C, les 2 LED clignotent, si je l'inclue dans le code, pas de résultat.
Je n'ai pas oublié :

Code : Tout sélectionner


I2C1_INIT 
(100000)
 


Je vais arrêter les frais et acheter des MAX7320

Merci pour toutes vos idées et propositions.
Quand j'aurai les MAX, on en reparlera, en attendant, prenez tous soin de vous.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.


Retourner vers « Coin Fourre-tout »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 48 invités