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 ---
- 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 ---
I2C et multiplexage
- Gérard
Expert- Messages : 1648
- Âge : 65
- Enregistré en : septembre 2015
- Localisation : Alsace - Haut-Rhin
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...
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...
I2C et multiplexage
Bonsoir Gérard, et tout le forum,
Exacte, il te manque 2 circuits
10 circuits, ce qui nous fait 10x16 = 160 sorties/entrées à gérer
Pourquoi ne pas prendre un 2 Pic avec 100 sorties/entrées genre PIC18F97J94
GG et de retour...
Je me demande ce qu'il nous prépare...
A+
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
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...
GG et de retour...
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.
I2C et multiplexage
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
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
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
I2C et multiplexage
Bonsoir paulfjujo, Gérard, et tout le forum,
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+
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.
I2C et multiplexage
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour à tous,
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.
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.
I2C et multiplexage
- Gérard
Expert- Messages : 1648
- Âge : 65
- Enregistré en : septembre 2015
- Localisation : Alsace - Haut-Rhin
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.
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.
I2C et multiplexage
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour à tous,
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
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
I2C et multiplexage
- Gérard
Expert- Messages : 1648
- Âge : 65
- Enregistré en : septembre 2015
- Localisation : Alsace - Haut-Rhin
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.
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.
I2C et multiplexage
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
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
et un test en mikro Basic avec la lib I2C .. serait plus convaincant .
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 .
I2C et multiplexage
- Gérard
Expert- Messages : 1648
- Âge : 65
- Enregistré en : septembre 2015
- Localisation : Alsace - Haut-Rhin
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.
Retourner vers « Coin Fourre-tout »
Qui est en ligne
Utilisateurs parcourant ce forum : Roger et 41 invités