PCF8574 port expander [aiuto schema]

Salve a tutti ragazzi, avendo acquistato una considerevole vagonata di PC8574, avrei pensato di realizzare un port expander, per ora piloterebbe dei led alle sue 8 uscite, ma in futuro magari perchè no...appoistamente ridimensionate le uscite anche dei relè. Per la parte di programmazione non c'è problema..appena pronto il circuito funzionante ho già in mente come realizzare il codice grazie alla lib Wire. Quello che chiedo è una piccola mano col circuito elettrico visto che a dimensionare correnti etc sono un cane (chiedo scusa ai cani). Allego lo schema che ho realizzato

Grazie :D

Sí, lo schama va bene Ciao Uwe

E' ma le ho dimensionate io..non so se mi spiego :D

il pcf non ha abbastanza corrente da dare per accendere un led. Invece riesce a succhiarne tanta. Metti l'anodo (gamba lunga) di ogni led a 5v con una resistenza in mezza (220 ohm va più che bene) e il catodo (gamba corta) nell'uscita del pcf. Per accendere il led devi abbassare la porta del pcf.

ciao

ciao Uccio

Hai ragione , il pFC8674 non ha uscite simmetriche, ma puó dare i 25mA specificati solo se l'uscita é a massa percui uscita LOW. Se colleghi l' utenza come proposta da Whole Ti limita la corrente a qualche centinaio di µA.

Anche le resistenza da 330 Ohm vanno bene per limitare la corrente dei LED.

Ciao Uwe

Se ho capito bene dovrò poi strutturare la mia libreria per comadarlo in modo che ACCESO sarà un pin LOW e vice versa giusto ?
g.

si LOW=acceso. è un open drain in pratica

ehm open drain in una lingua "potabile" sarebbe ?:D uccio ti amo :D

guarda quanta corrente possono assorbire gli integrati, se il valore massimo è maggiore della corrente del diodo allora metti una resistenza pari a (5v - Vd)/Id dove Vd e Id sono rispettivamente la caduta sul diodo e la corrente che lo attraversa. Altrimenti se la corrente assorbita è minore di quella del diodo dovrai tenerti un po' sotto a questa per far funzionare il tutto senza preoccupazioni. A occhio farei un 10%. quindi la formula sarà (5V-Vd)/(Ipcf - 0.1Ipcf)

Dico giusto ragazzi?

con una 220 ohm hai 20ma nel diodo che sono abbastanza per accendere bene un led di qualsiasi colore.

@whole http://tinyurl.com/2basnaw

@uccio grazie...touchè :D

ciao Whole

Open Drain: per i FET é la stessa cosa come Open Collector per i transistori BJT.

Praticamente il source o rispettivamente l'emettitore é messo a massa. Il transistore quando viene pilotato mette l'uscita a massa. Quando non é pilotato l'uscita é aperta e se serve un segnale HIGH deve essere messo una resistenza verso l'alimentazione positiva. Questo permette di mettere in paralello delle uscite. Questo viene usato nel interfaccia I2C per questo devi mettere una resistenza a +5V.

L' alternativa é il "totem pole". Lí 2 transistori mettono in altrenativa l'uscita o a LOW o a HIGH. Una gran parte delle uscite sono cosí. Tipicamente della famiglia TTL e cmos serie 4000. Non possono essere messe 2 uscite in paralello perché quando una va a LOW e l'altro a HIGH é praticamnete un corto del alimentazione e romperebbe gli integrati. Eccezzione: i CMOS possono essere messi in paralello se vengono pilotati uguale. Questo serve per avere piú corrente.

Altra possibilitá é l' uscita "tri state". Questo tipo di uscita ha 3 stati: LOW, HIGH e alta impedenza. L' arduino ha queste uscite dove il stato di alta impedenza é quando definisci un uscita digitale come entrata. Questo tipo di uscite sono presente in tutti gli integarti che vanno su un bus (collegati uscite sulla stessa pista o conduttore). Tipicamente tutti microprocessori, memorie, e altri integrati che vanno collegati col microprocessore. Sono collegate tra di loro, ma solo un integrato puó aveve le uscite attive.

Arrivando al nostro PCF8574 ha un uscita tipo "totem pole" ma dove il transistore superiore ha una resistenza in serie e percui la corrente che puó dare quando l'uscita é HIGH é limitata tra 30 e 300µA (vedi dati tecnici) Questo basta per pilotare altri integrati CMOS ma non dei LED. Il transistore inferiore é collegato a massa. Questa configurazione é molto simile a un uscita open drain.

Spero di non averti fatto piú confusione, ma chiarito alcune cose.

ciao Uwe

Grazie, ora mi è abbastanza chiaro. Ad ogni modo, ho assemblato il circuito come suggeritomi da uccio, con le resistenze di 330 ohm. L'expander funziona perfettamente ma se usato da solo sull'i2c, infatti se lo inserisco in una catena fatta di ds1307 e un altro pcf8574 (configurato con un address diverso logicamente), la comunicazione sull'i2c diventa confusa..al display arrivano caratteri strani e a volte nemmeno parte la funzione di lcd.clear...e credo si blocchi lo sketch.

Saranno le correnti parassite o avete altri suggerimenti ? Grazie

Aggiungo un particolare utile. Non ho messo nessuna resistenza di pullup sui canali poichè come segnalato in alcuni post dovrebbero bastare quelle delel porte.. FORSE QUI MI SBAGLIO... se aggiungessi 2 r da 4,7K 1/4 w?

Allego uno schema del tutto assemblato. N.B. Le pullup sull'i2c che ho riportato nello schema allegato IO non LE ho messe. Grazie

Ciao Whole Come resistenza di PullUp viene usata quelle interne dei pin che sono tra 20 e 50 kOhm. Con cavi piú lunghi aumenta la capacitá e percui servono resistenze di PullUp con un valore piú piccolo. Se funziona senza va bene; se non funziona aggiungi 2x 4,7kOhm. Ciao Uwe

Stasera provo grazie uwe.. cmq i cavi non sono tanto lunghi..ho aggiunto un altr abreadboard e che saranno 4 cm di cavi e aggiunto una periferica i2c..bho. Bon stasera provo..sempre gentile Uwe :D ciao

E anche questa è andata ..FUNZIONA!!!

Bene, congratulazioni, ma per favore vai a dormire ad una certa ora [smiley=shocked.gif] ciao Uwe

ahahah.. @Uwe..sai cosa? purtroppo quando mi prende un problema..non riesco a dormire finchè non lo risolvo e stavolta erano vari giorni che mi scervellavo. Ciao Whole