Buongiorno a tutti,
è la prima volta che scrivo ma vi seguo e studio da parecchio.
Sto realizzando un progetto di controllo di un riscaldamento domestico (caldaia, pompe, termostati stanze) e mi sono imbattuto in uno strano problema.
Nel progetto ho previsto l'utilizzo di 2 distinti MCP23017 come espansori di porte, sia per input che per output.
Su una piastra esterna ho saldato i due MCP predisponendo una distribuzione per il 3,3V ed una per il GND così da poter impostare i pin degli MCP (fondamentalmente reset e indirizzo, oltre a Vss e Vcc).
Nella prima configurazione testata, la distribuzione di 3,3V e GND arriva direttamente da Arduino. In questo caso, tutto funziona e non ho difficoltà a rilevarli con i2c e controllarli.
Ho voluto quindi provare ad usare un DC-DC buck converter (il classico lm2596 hw-411 che si trova sui diversi siti):
Il convertitore viene alimentato a 5V da un alimentatore esterno.
Ho quindi regolato a 3,3V il convertitore e ho spostato i cavi dupont da Arduino al convertitore, ottenendo che la distribuzione 3,3V e GND sulla scheda venga da una fonte esterna.
Così facendo, non riesco più a rilevare i due MCP23017 da Arduino.
Riportando il tutto su Arduino, tutto torna a funzionare...
Ecco lo schema, stralciato di tutta la parte connessa alle porte GPIOA-B.
Avete idea del perchè succeda questa?
Vi ringrazio per l'aiuto!!