Problema PCF8575 o I2C?

Allora vediamo se riesco a spiegare il problema senza fare troppo casino.
Per espandere gli I/O dell'ARDUINO e poter gestire 16 relay ho acqusitato questa scheda della sparkfun http://www.sparkfun.com/commerce/product_info.php?products_id=8130 .
Dopo varie prove per capirne il funzionamento sono riuscito ad agire sui relay e pensavo di essere a buon punto ma poi all'imporvviso puff ... buoi. Arduino non vede più la scheda ... sicurametne ho combinato qualche casino ma non ho idea di dove partire per capire cosa ho fatto.

quando tutto sembrava funzionare avevo avevo utilizzato questo codice per lo scanner delle periferiche i2c per verificarne la connessione e mi venivano tutte rilevate (RTC, MONITOR e EXPANDER) http://todbot.com/blog/2009/11/29/i2cscanner-pde-arduino-as-i2c-bus-scanner/
Adesso mi vede solo il monitor anche se comunque RTC funziona correttamente mentre dell'expander nessuna traccia.Per RTC magari il fatto che funzioni potrebbe essere che sia su una porta superiore al 100 questa sera provo a modificare lo scanner.

Ho provato a connettere i componenti singolarmente e provare a fare lo scanner l'unico che mi viene rilevato è il monitor è comunque solo il moniotor.
L'expander dovrebbe avere l'indrizzo 32 come esce da casa madre. Questo è il datasheet http://focus.ti.com/lit/ds/symlink/pcf8575c.pdf.

Se ho combinato qualche cosa come posso verificare che l'expander non sia danneggiato? C'è una qualche possibilità di reset o altro?
Non penso sia l'arduino dato che sia il monitor che l'RTC funzionano, ma non mi spiego come mai RTC non venga rilevato dalla scansione.

Grazie

ciao Miky
Cosa hai cambiato o modificato dall ultima volta che funzionava a dopo che non funzionava piú?
I relé come li hai collegati al expander?
I cavi sono tutti a loro posto o si é sfilato qualcosa?
Manda qualche foto dettagliata.
Ciao Uwe

Che resistenze di pullup utilizzi? Come hai collegato i rele'? Il codice dello scanner i2c e' sostanzialmente funzionante, l'ho usato diverse volte.

Ancora io

L' indirizo del PCF8575 va da 32 a 39 (decimale). Sul lato inferiore della schedina sono da mettere dei ponticelli per selezionare i 3 bit inferiori A0, A1 e A2 del indirizzo.
Gli hai settati mettendo dei ponticelli di stagno verso +V o massa?

Ciao Uwe

Allora da "ignorante" ho fatt/non fatto questo:

  1. Non ho stagnato nulla sui ponticelli A0 A1 A2 interpretando che se non li stagnavo restava sul valore 32, infatti con lo scan me la rilevava sul 32. E' giusto che se non mettevo a massa nulla restava su 32.
  2. Resistenze di pull-up a dire il vero non ne ho messe. Sono partito collegando e utilizzando prima RTC ed ho visto che funzionava senza, non ricordo dove ho letto parecchio in questo periodo ma ho trovato che non servivano forse ho capito male, poi ho collegato anche il monitor e anche questo senza resistenze, i due componenti sono rispettivamente:
    SparkFun Real Time Clock Module - BOB-12708 - SparkFun Electronics
    FuturaNet: Il portale per makers ed elettronica by Futura Group ELETTRONICI&L3=DISPLAY LCD&cd=7300%2DLCD03&nVt=&d=45,00

PEr quanto riguarda la scheda relè non volendomi cimentare in cose che non avrei saputo da che parte partire le ho prese già fatte e sono queste

per entrambi prima di metterli insieme avevo provato singolarmente a provarli e mi hanno sempre funzionato senza reisistenze (giusto, culo o non dovevano proprio andare??)
Anche per quanto riguarda la expander anche quella non avevo utilizzato resistenze di pull-up devo metterle?

Per le foto non ho sotto mano l'apparecchio ma questa sera provo.

Ciao @miky
Per gli indirizzi A0 a A2 ti consiglio di mettere su ciascuno un ponticello di stagno a massa (cosí hai l' indirizzo 32). È possibile che ti funziona o non funziona perché ti tira dentro disturbi avendo dei indirizzi variabili e non definiti.
L' Arduino usando la libreria wire mette delle resistenze interne di Pull Up sui collegamenti I2C. A seconda della lunghezza dei cavi di collegamneto ( e percui della loro capacitá) questo non basta ed é necessario diminuire il valore. Basta che aggiungi delle resistenze di 4,7kOhm verso i +5V.
La scheda relé non dovrebbe darti problemi. Sono montati dei transistor che pilotano i relé.
Ciao Uwe

Ok ponticelli stagnati e questa sera provo con le resistenze.
Grazie

Allora questa sera ho rifatto le prove ma niente da fare. Non trovo la scheda ed all'indrizzo che dovrebbe essere manco l'ombra.
Ho inserito sia su SCL che su SDA due resistenze 4.7 (giallo viola rossa) di pull up (collegandole al +V).
Non ho fatto foto ma sostanzialmente ho fatto così:
sono uscito con due cavi dalla analogica 4 e 5 li ho messi sulla board in g3 e g4 in f3 e f4 ho messo i cavi per la scheda di espansione e i3 e i4 ho messo le due resistenze collegate al + ... certo una foto facevo prima ... mi sembra tanto na partita a scacchi..

poi per vedere se i cavi erano correti ho testato direttamente sui piedini del 8575 se c'era segnale e sia sda che ScL che GND che Vcc era tutto ok.
LAnciato lo scan e nulla fatto qualche prova di lettura e scrittura e nulla. Tutti e tre i ponticelli A0 A1 A2 sono a massa anche quello verificato sui piedini .....
mi sembra che il collegamento sia ok e lo skech dello scanner pare funzionare ... qualche altra idea? altrimenti domani sera provo a fare delle foto.

Grazie

le resistenze sono 4.7K spero... è probabile che si sia rotto il pcf? le foto sono meglio di qualsiasi spiegazione :smiley:

Confermo, giallo viola rosso (oro) sono 4,7KOhm.
In bocca al lupo!!
Uwe

Mi sa che per qualche motivo è morto quindi penso che ne prenderò un altro ma questa volta parto solo dal PCF se lo trovo facilemtne visto che non mi sembra compessa la realizzazione.
no ghen vegno fora!!!

E' possibile capire se è morto il pcf oppure lo devo dare per assodato dato che non funziona?

mmm oggi ho imparato cosa vuol direi SOIC e DIP ..... col piffero che riesco a farmelo :slight_smile: ...

Per fare una prova comunque sostanzialmente dovresti attaccare solo il pcf all'i2c, attraverso due resistenze di pullup (io di solito le uso da 3.3k) e collegare i pin che servono per indicare l'indirizzo i2c, tutti a gnd o tutti a +5 (per semplicita'). Poi lanci lo scanner e vedi se lo vede.
Buona fortuna! F