Vai al contenuto
PLC Forum


Mcp23017


walterword

Messaggi consigliati

MCP23017 e' un buon I/O expander in I2C o SPI , per microntrollori

Ora lo sto montando sulla mia scheda 16 I/O in I2C per arduino Due .

In condizioni normali di lavoro , il reset del mcp23017 deve essere a 5 V .Arduino Due lavora a 3.3V , penso che possa farcela altrimenti mi tocca mettere un transitor BCxxx per traslare la tensione

Però se lo voglio resettare , specialmente se usato come uscite , devo mettere il pin del micro a 0 V ma il pin reset deve essere connesso a pull down ?

Io credo si debba collegare una resistenza da 10K pull down

Voi cosa ne dite?

Link al commento
Condividi su altri siti


Il classico reset sul pawer on prevede un resistore verso il +V ed un condensatore colegato a 0V. In questo modo all'accensione il piedino di reset viene tenuto a livello "0" per un certo tempo, tempo necessario e sufficiente alr esto del sistema per completare l'inizializzazione.

Se vuoi resettare a comando puoi prevedere un transistor inparllelo al condensatore, comandato da un segnale a 3.3 V di Arduino, che chiude a 0V il pin.

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

infatti mi sembrava che c'era qualcosa ...be direi che per gli ingressi non e' necessario questo lavoro , per le uscite invece si

Qualcosa del genere puo' andar bene?

c8fa767aa34658b7db2300915f5da44d.png

Link al commento
Condividi su altri siti

4700 Hom in entrata sulla base?

In questo modo se l'uscita arduino e' alta il dispositivo MCP viene resettato .

Essendo che le uscite arduino sono basse per default c'e' il piccolo rischio che vadano alte le uscite per una frazione di secondo

Una variante potrebbe essere quella di usare un pnp al posto del npn

Pero' tutto sommato c'e' il condensatore per cui va bene cosi

All'inizio del setup di arduino metto a 1 l'uscita e alla fine del setup la riport a 0

Link al commento
Condividi su altri siti

Essendo che le uscite arduino sono basse per default c'e' il piccolo rischio che vadano alte le uscite per una frazione di secondo

Questo avviene all'accensione quando sei in fase di reset, quindi al più avrai un reset prolungato in perifieria.

Link al commento
Condividi su altri siti

Livio , ma 4700 cosa si riferisce a hom del resistore base -emettitore no , non vedo altri punti dove mettere componenti ....

Se metto un condensatore tra base e massa potrei ritardare il pilotaggio ....oppure usare un pnp :whistling:

comunque con un resistore da 10 K , quello del pull up , e un condensatore da 10 uF si ottine un ritardo di circa 100 mS che non e' male , nel frattempo il setup dovrebbe gia essere terminato , previo qualche delay per attendere il settaggio completo delle seriali ect .

comunque la prima cosa che faccio nel setup e' resettare l'uscita del reset , che sono coperto dalla rete RC , e poi quello che viene viene dovrei essere a posto

Modificato: da walterword
Link al commento
Condividi su altri siti

Praticamente nei primi 100mS metto a zero l'uscita del reset , col transitor, passati i 100mS il transisto mi tiene l' MCP23017 resettato , poi termino il setup e lo metto a 1 come ultima istruzione del setup

Link al commento
Condividi su altri siti

Livio per la scelta del transistor , la corrente durante la chiusura e' di 5/10K=0.5 mA per cui va bene un S9018 o 2N3904 per stare piu trq.

o NO?

Con un condensatore da 47 uF ho una costante di tempo di 0.47 sec. meglio del 10 uF

Modificato: da walterword
Link al commento
Condividi su altri siti

praticamente va bene qualsiasi transistor per piccoli segnali, un BCxxx qualsiasi.

Anche 10 µF son tanti. Slitamente si usa uno 0.47 µF, però ha poca importanza, al più il reset dura un po' di più. :smile:

Link al commento
Condividi su altri siti

comunque sempre molto meno di un secondo e data l'applicazione credo che sia il meno dei mali

Sopra dicevi di mettere una 4700 ...a cosa ti riferisci ad un resistore 4K7 tra base e collettore?

Modificato: da walterword
Link al commento
Condividi su altri siti

si scusa piccolo errore di scrittura , tra base -emettitore ...distrazione

non uso gli ULN direttamente perche non devo tirare il rele direttamente , per cui sarebbe sprecato

Modificato: da walterword
Link al commento
Condividi su altri siti

Serve ad ancorare la base a 0 un assenza di segnale, ad abbassare l'impedenza d'ingresso così aumenta l'immunità ai disturbi, infine aumenta la velcoità di svotamento della base per la commutazione da saturo ad interdetto.

la 4k7 può anche diventare una 2k2

Link al commento
Condividi su altri siti

Sono d'accordo che gli uln sarebbero sprecati, intendevo una soluzione simile con array di transistors.

Quanta corrente serve per gli ingressi della scheda relè? L'MPC non ce la fa?

Se vuoi usare l'HC04 per forza puoi mettere una resistenza di pull-down all'ingresso in modo che durante il reset dell'MCP le uscite dell'HC04 rimangano alte.

Ciao.

Link al commento
Condividi su altri siti

no ho provato con i PCF ....la corrente non e' poi molta , le schede a rele' sono abbastanza "intelligenti " su quel punto di vista

Solo che non volevo complementare i bytes di sucita verso il MCP23 ,che comunque era l'ultimo dei mali inq uanto lo avrei fatto una volta sola nel sw .Avevo fatto dei test tempo fa con arduino uno , pcf e uln e mi sembrava ben robutsto come discorso per questo ho voluto esagerare

Oltre alla tesi vorrei progettare qualcosa da usare nel domotico , tra non molto qua a casa inizio con le canalette belle :) e portar fili ect

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...