Hello tout le monde,
Mes compétences en c++ et en électronique sont limitées.
J'ai récemment fait l'acquisition d'une carte basée sur le rp2040 sur AliExpress (lien : https://fr.aliexpress.com/item/1005006710298380.html ) et je souhaite y raccorder un mcp23017.
Le problème étant que le mcp n'est pas reconnu sur les GPIO0 et GPIO1 du rp2040 avec le scanner i2c.
Voici le code utilisé :
#include "I2C_SCANNER.h"
I2C_SCANNER scanner;
void setup()
{
Serial.begin(115200);
while (!Serial);
Serial.println();
Serial.println(__FILE__);
Serial.print("I2C_SCANNER_LIB_VERSION: ");
Serial.println(I2C_SCANNER_LIB_VERSION);
Wire.begin();
scanner.begin();
for (int addr = 0; addr < 128; addr++)
{
if (addr % 8 == 0) Serial.println();
if (scanner.ping(addr))
{
Serial.print(addr);
}
else
{
Serial.print("-");
}
Serial.print("\t");
}
Serial.println();
Serial.println();
}
void loop()
{
}
Merci d'avance pour votre aide !
Dans setup(), avant de faire Wire.begin(), tu peux utiliser Wire.setSDA() et Wire.setSCL(); pour définir les pin utilisées
https://arduino-pico.readthedocs.io/en/latest/wire.html
Même en sélectionnant Wire.setSDA(0) et Wire.setSCL(1), il ne le trouve pas.
Sur un Arduino Uno je n'ai pas eu ce problème. Et sur les images à disposition ce sont à priori bien ces GPIO qui sont utilisés sur cette carte.
shgeoffrey:
#include "I2C_SCANNER.h"
Quel est cette librairie?
Solution en 3 étapes :
spécifier les ports I2C (Wire.setSDA(0) et Wire.setSCL(1))
alimenter le MCP23017 en 3v3 et non pas en 5v
intégrer des résistances 10K entre les bornes SDA-SCL et le 3v3
Le signal devait être de très mauvaise qualité, ce qui oblige les 2 derniers points...
Merci pour votre aide.
C'est obligatoire pour que le bus I2C fonctionne correctement.
Le MCP23017 c'est un module ou un composant isolé?
Dans le premier cas voir si les résistances au +3.3V sont présentes sur le module.
Je ne comprends pas très bien la nécessité de passer à 3.3V la Nano Every est 5V compatible et le MCP fonctionne de 2.5V à 5V.
Non avec un Atmega328 par exemple je n'en ai pas eu besoin.
fdufnews:
Le MCP23017 c'est un module ou un composant isolé?
Dans le premier cas voir si les résistances au +3.3V sont présentes sur le module.
Je ne comprends pas très bien la nécessité de passer à 3.3V la Nano Every est 5V compatible et le MCP fonctionne de 2.5V à 5V.
C'est le composant directement.
Moi non plus je n'ai pas compris. Mais c'est ce que j'ai constaté.
Pas de soucis en 5v avec le Atmega328 pourtant.
Merci pour ces détails.
J'en prends bonne note