I2C rtc+lcd funzionano solo da soli

Buon VENERDI a tutti 8)

in attesa che finisca la giornata lavorativa e nelle speranza di trovare una soluzione per smanettare stasera, vi posto il mio ultimo problemino.....come da topic non riesco a fa funzionare entrambe le cose, con i2cScanner trovo gli indirizzi

-RTC 0x68 e LCD 0x50 (se collegati insieme) -RTC 0x68 (da solo) -LCD 0x20 (da solo)

maledizione.....

Grazie a tutti

Credo sia utile avere lo schema di come li colleghi con Arduino tutti insieme.

RTC dispone di ingressi/uscite SCL SDA VCC GND quindi collegoda arduino all rtc A4 A5 e Vcc quindi riparto dalle solite uscite dell rtc di sda scl verso lcd

hai messo le r di pull-up sulle due linee?

[quote author=Michele Menniti link=topic=170769.msg1269775#msg1269775 date=1370613293] hai messo le r di pull-up sulle due linee? [/quote]

Si due da 4k7......

Ho usato la prima parte di questo schema https://docs.google.com/file/d/0ByoKd_e1bIw5ZzJKUnJ0WDBUZmc/edit?usp=docslist_api Gia riutilizzato in un altro progetto

in quello schema le linee sono senza pull-up, a cosa ti riferisci? comunque riducile a 2k2.

Ma i due dispositivi hanno dell'HW on board I2C o tu li colleghi tramite 2 PCF8574 ?

[quote author=Michele Menniti link=topic=170769.msg1269822#msg1269822 date=1370615925] in quello schema le linee sono senza pull-up, a cosa ti riferisci? comunque riducile a 2k2. [/quote]

Si nello schema non sono riportate ma le ho aggiunte dopo su consiglio.........perche dopo circa 10-15 min che girava il tutto (arduino+rtc+8 rele+ lcd+sd shield) l' lcd si bloccava su una schermata oppure rimaneva acceso senza stampare nulla.....mentre "sotto" tutto continuava a funzionare

quindi provo ad abbassarle a 2k2

nid69ita: Ma i due dispositivi hanno dell'HW on board I2C o tu li colleghi tramite 2 PCF8574 ?

solo l'lcd piloto con PCF 8574, sapevo che l' RTC ce l'aveva .....grazie

Usi stringe? Quelli dopo un quarto ora avranno riempito la RAM e percui il LCD non verrá piú aggiornato. usa la macro F() nei LCD.print() Ciao Uwe

UweFederer: Usi stringe? Quelli dopo un quarto ora avranno riempito la RAM e percui il LCD non verrá piú aggiornato. usa la macro F() nei LCD.print() Ciao Uwe

si si grazie Uwe......ho provato anche quello ma niente....continuava a bloccarsi......quindi ho provato ad aggiungere le resistenze di pullup da 4k7 nel circuito che ho linkato prima (io uso solo una parte di questo schema), ed ora mi hamnno suggerito di abbassarle a 2k2

grazieeeeeee

tronicman: solo l'lcd piloto con PCF 8574, sapevo che l' RTC ce l'aveva .....grazie

E ti capita: -RTC 0x68 e LCD 0x50 (se collegati insieme) -RTC 0x68 (da solo) -LCD 0x20 (da solo)

ma che PFC esattamente hai? dai datasheet, i primi 4 bit dell'indirizzo dovrebbe essere fissa (PFC857=2 e PCF8574a=3) mentre i secondi 4 bit dipendono dai pin A0-A1-A2. Se tutto a GND indirizzo dovrebbe essere 0x20 o 0x38 http://www.nxp.com/documents/data_sheet/PCF8574_PCF8574A.pdf pagina 5

EDIT: corretto valori indirizzi, grazie @leo, nel address mettevo erroneamente anche r/w

Con A0..A2 a gnd, il PCF8574 ha indirizzo 0x20, il PCF8574 ha indirizzo 0x38.

Tornando all'RTC, se sono RTC in formato DIP8 come il DS1307 o il PCF8563 non hanno i pin esterni per modificare l'ID per cui il loro indirizzo è fisso ed è recuperabile dal datasheet.

Ma @leo, se non ho capito male il suo problema è che lo I2CScanner gli trova un indirizzo diverso per il PCF collegato al LCD quando ha anche il rtc oppure quando non o ha.
Ma la cosa strana è che l’indirizzo passa da 0x20 (da solo con A0-A2 a GND) a 0x50 ?!?

Allora ci vuole il datasheet dei componenti.

per l' lcd uso il PCF 8574P http://pdf.datasheetcatalog.com/datasheet/philips/PCF8574P.pdf l' RTC è un DS1302Z http://datasheets.maximintegrated.com/en/ds/DS1302.pdf in una shield di quelle che si vedono su ebay AMTEL 131 24C32 http://www.futurlec.com/Memory/24C32.shtml

......ho sostituito le resistenze con quelle da 2k2 ma continuano a funzionare singolarmente

tacci sua

Ma i pin A0-A1-A2 come li hai collegati? L'indirizzo che ottieni, almeno in uno dei due casi, è proprio quello che hai impostato?

A0 A1 e A2 sono a GND

collegato senza rtc: -se imposto 0x20 lo vedo -se imposto 0x50 no!!!

l' rtc su 0x68 funziona in entrambi i modi

Ma hai provato a dargli un indirizzo diverso, sempre agendo su A0÷A2?

[quote author=Michele Menniti link=topic=170769.msg1271260#msg1271260 date=1370726039] Ma hai provato a dargli un indirizzo diverso, sempre agendo su A0÷A2? [/quote] no purtroppo ho solo seguito uno schema e non sono in grado....

Magari passa inosservato lo ricordo, prima di aggiungere le resistenze di pullup funzionava......le pullup le ho messe dopo su consiglio perche dopo 10-15min lcd si bloccava mentre sotto tutto continuava a funzionare.

Dai sintomi sembra che il problema sia di cattiva gestione della RAM, specialmente considerando tutto il codice presunto che è stato installato nel micro, ovviamente se nel micro hai poco codice sicuramente si può escludere il problema RAM a meno che non ci sia un problema con un puntatore che punta a caso, no perchè mi successo di recente e stavo impazzendo e non sono un programmatore novello.

Facciamo un quadro chiaro della situazione.

Prima dell'inserimento delle resistenze funzionava: Questo potrebbe tradursi in apparentemente funzionava. Quale arduino usi? Quanti device ci sono sul bus i2c, e quali sono? mi auto rispondo.

PCF 8574P http://pdf.datasheetcatalog.com/datasheet/philips/PCF8574P.pdf l' RTC è un DS1302Z http://datasheets.maximintegrated.com/en/ds/DS1302.pdf in una shield di quelle che si vedono su ebay EEprom AMTEL 131 24C32 http://www.futurlec.com/Memory/24C32.shtml

Quindi 3 device sul bus i2c, riesci almeno a combinare almeno 2 device insieme e farli funzionare, es prova PCF+24C32, RTC+24C32, ecc prova tutte le combinazioni.

Ciao.