Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Mcp23017


Messaggi consigliati

Inserito:

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?


Inserita: (modificato)

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
Inserita:

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

Inserita:

Metti una 4700 tra base ed emettitore per assicurare un'apertura sicura del transistor.

Inserita:

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

Inserita:
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.

Inserita: (modificato)

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
Inserita:

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

Inserita: (modificato)

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
Inserita:

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:

Inserita: (modificato)

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
Inserita:

Tra base ed emettitore, serve per migliorare la commutazione durante lo spegnimento credo.

Inserita: (modificato)

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
Inserita:

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

Inserita:

ok gia saldata la 4K7 :D

Ho oridnato una decina di MCP23017 spero arrivino presto .... :smile:

Inserita:

Hai avuto problemi a pilotarli con la solita libreria I2C?

Inserita:

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.

Inserita:

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

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...