Go Down

Topic: problema lettura secondi RTC (Read 8 times) previous topic - next topic

leouz

il problema è che io non ho la possibilità ne le capacità di crearmi a casa il pcb,
Qualcuno mi consiglia un buon servizio estrerno?magari economico?  :D

PaoloP

C'è un utente del forum che ha avvitato un servizio per PCB --> http://arduino.cc/forum/index.php/topic,91656.0.html
Mandagli un MP chiedendo un preventivo.
Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

leo72


E come si fa?

è sufficiente in setup() un

digitalWrite(A4,LOW);
digitalWrite(A5,LOW);

ho è più corretto

digitalWrite(18,LOW);
digitalWrite(19,LOW);

Non basta perché quando inizializzi la Wire questi attivano le pull-up. Devi modificare la libreria. Apri il file /arduino-1.0.3/libraries/Wire/utility/twi.c  e commenta le righe 76 e 77:
Code: [Select]
  digitalWrite(SDA, 1);
  digitalWrite(SCL, 1);


Quote

Se decidiamo di portare avanti insieme il controller, dovremo essere ben sincronizzati sul lato HW come ho già scritto, e sciccome io uso ancora arduino rev 1.0 mi chiedevo voi cosa avete, è importante per l'assegnazione dei pin, infatti se su rev 1.0 e 2.0 SDA eSCL (I2C) corrispondo ad A4 e A5, su rev 3.0 questi ultimi sono separati.
Avevo già una mezza intenzione di comprare la rev. 3.0, ma prima sarebbe bene sapere voi  cosa avete.

Riccardo.


I pin SDA e SCL sono collegati ai pin A4 e A5, non sono linee differenti ma le stesse.

riciweb

Leo72,
sei sempre preziosissimo, ed io altrettanto pessimissimo, scusa, ma non riesco ad interpretare il tuo suggerimento:


Non basta perché quando inizializzi la Wire questi attivano le pull-up. Devi modificare la libreria. Apri il file /arduino-1.0.3/libraries/Wire/utility/twi.c  e commenta le righe 76 e 77:
Code: [Select]
  digitalWrite(SDA, 1);
  digitalWrite(SCL, 1);



Mi viene il dubbio sul "Non basta" nel senso che non ho capito se i comandi per cui ho chiesto se andavano messi in setup() li devo mettere comunque (se si quali sono quelli corretti?) o se devo solo commentare le due righe nella libreria.
Scusa se chiedo invece di smanettare direttamente, ma prima di lunedì non riesco  :(


I pin SDA e SCL sono collegati ai pin A4 e A5, non sono linee differenti ma le stesse.


Ok, ma il senso di averli separati come pin allora mi sfugge, io ero completamente tratto in inganno   :~
a meno che non sia possibile usarli contemporaneamente come bus I2C e come pin analogici ma mi sembra strano se non impossibile, mi sai dire di più?


Grazie Riccardo
Riccardo

leo72


Mi viene il dubbio sul "Non basta" nel senso che non ho capito se i comandi per cui ho chiesto se andavano messi in setup() li devo mettere comunque (se si quali sono quelli corretti?) o se devo solo commentare le due righe nella libreria.

Mi sono spiegato male. Quando ho scritto "non basta" intendevo "non è sufficiente".
Se tu metti quei 2 digitalWrite, come vedi dal codice postato la Wire riattiva le pullup sui pin.
Quindi, non mettere nulla nel setup ma commenta solo quelle 2 righe che ti ho detto (metti una coppia di barre // avanti ad ogni riga).

Quote


I pin SDA e SCL sono collegati ai pin A4 e A5, non sono linee differenti ma le stesse.


Ok, ma il senso di averli separati come pin allora mi sfugge, io ero completamente tratto in inganno   :~
a meno che non sia possibile usarli contemporaneamente come bus I2C e come pin analogici ma mi sembra strano se non impossibile, mi sai dire di più?


Grazie Riccardo


Ogni pin ha più funzioni. Ovviamente se i pin A4 e A5 li usi come ingressi analogici non puoi usarli per l'I2C e viceversa perché una modalità interferirebbe con l'altra. Il fatto di averli riportati separatamente fa parte delle scelte progettuali del layout R3 che è stato adottato per tutte le ultime schede prodotte, a partire dalla UNO R3 in poi (quindi MEGA, LEONARDO, DUE). Siccome alcuni micro non hanno l'I2C sugli stessi pin dell'Atmega, l'averli messi in un posto uguale per tutte le schede permette ai costruttori di shield di non impazzire a realizzare diverse versioni dei propri prodotti. Se devono usare l'I2C, basta che utilizzino i pin SDA e SCL e gli shield andranno su tutte le Arduino

Go Up