Escrevendo em Português


Aqui vão algumas recomendações para resolver o seu problema com o MCP23017 e o ESP32 rodando ESPHome:
  • Veja se você está usando pinos I²C livres e não “boot-strap” do módulo:
    • Evite usar GPIO0, GPIO2, GPIO12, GPIO15 etc., pois esses pinos têm funções internas de seleção de boot.
    • Use, por exemplo, SDA = GPIO21 e SCL = GPIO22 no ESP32-WROOM-32E.
      (baseado em guidance da knowledge base: evite boot-strapped pins quando possível)
  • Garanta pull-ups e desacoplamento adequados:
    • Coloque dois 4.7k Resistor (um em SDA, outro em SCL) na tensão de 3.3 V.
    • Acrescente também um 0.1 µF Capacitor próximo ao pino EN do ESP32 para melhorar imunidade a ruídos.
      (conforme recomendação da knowledge base: pull-ups de 4.7 kΩ e C_EN = 0.1 µF)
  • No YAML do ESPHome, defina o barramento e insira um delay antes de iniciar o MCP23017:

Yaml


i2c:
  sda: GPIO21
  scl: GPIO22
  scan: True    # opcional, ajuda no debug

# opcional: para dar tempo de estabilização
on_boot:
  then:
    - delay: 2s

mcp23017:
  - id: expander
    address: 0x20    # ajuste conforme o A0/A1/A2
    # seus pinos e configurações…
  • Verifique o hardware do MCP23017:
    • VDD em 3.3 V, VSS em GND.
    • RESET puxado para 3.3 V (por resistor interno ou externo).
    • Endereço I²C configurado corretamente via A0/A1/A2.
  • Teste o scan do I²C separadamente:
    1. Programe ESPHome apenas com o bloco i2c: e scan: True.
    2. Abra o console e valide se o 0x20 aparece na lista de dispositivos encontrados.
    3. Só então adicione o componente MCP23017-E/SP.
Com esses ajustes de pinos, pull-ups, desacoplamento e delay, o ESPHome deve conseguir detectar o expander no barramento I²C.
Selecionar pull-ups
Selecionar capacitor EN
Configurar net class
Criar pontos de teste
Selecionar footprint MCP23017

Name
Pin #
Type
Section
Pin Group
Orientation
Order
Sub-symbol
Terminal Type
GPB0
1
Unspecified
bidi
GPB1
2
Unspecified
bidi
GPB2
3
Unspecified
bidi
GPB3
4
Unspecified
bidi
GPB4
5
Unspecified
bidi
GPB5
6
Unspecified
bidi
GPB6
7
Unspecified
bidi
GPB7
8
Unspecified
bidi
VDD
9
Unspecified
powerIn
VSS
10
Unspecified
powerIn
NC
11
Unspecified
notConnected
SCK
12
Unspecified
INPUT
SDA
13
Unspecified
bidi
NC
14
Unspecified
notConnected
A0
15
Unspecified
INPUT
A1
16
Unspecified
INPUT
A2
17
Unspecified
INPUT
~RESET~
18
Unspecified
INPUT
INTB
19
Unspecified
tristate
INTA
20
Unspecified
tristate
GPA0
21
Unspecified
bidi
GPA1
22
Unspecified
bidi
GPA2
23
Unspecified
bidi

MCP23017-E-SP