Buongiorno ho un problema, ho ordinato delle schede per un circuito, solo che, ho fatto un po a caxxx, una svista, ed ho sbagliato i pin della I2C, invece che metterli nei GPIO 12 e 11, mi sono "capitati" in GIPIO 9 e 10, c'è la possibilità di rimediare? caso mai dicendo ad Arduino che la porta I2C e da'naltra parte??
grazie
Che scheda hai?
Per gli Arduini di mia conoscenza:
No, la porta I2C é implementata in Hardware e percui non cambiabile.
Puoi usare un implementazione Software.
è piú facile interrompere le piste e fare dei ponticelli.
Ciao Uwe
Credo stia parlando di un ESP8266, in Arduino normalmente non si parla di GPIO...
docdoc:
Credo stia parlando di un ESP8266, in Arduino normalmente non si parla di GPIO...
Infatti ... :
>rifly: quando si fanno le domande, si fanno dando TUTTE le indicazioni per aiutare, chi ti deve rispondere, a trovare una soluzione ... se NON dici che MCU stai usando, come pensi di avere una riposta esatta? Ogni famiglia di MCU ha le sue caratteristiche e quindi ... :
Guglielmo
Scusate, la scheda e una MKR1000, il problema è che ho un circuito stampato e mi sono capitati i pin SCL ed SDA in posizione sbagliata, perciò chiedevo se è possibile implementare via software la porta I2C, di modo che posso utilizzare i pin corrispondenti sulla scheda. Mentre scrivo mi viene un altro dubbio: posso impilare una MKR1000 su una MKR1400? Grazie
Il SAMD21 ha la possibilità di assegnare a SERCOM I2C pin differenti, ma non credo sia cosa supportata dall'IDE di Arduino, quindi ... tutto da fare a basso livello lavorando direttamente con i registri. Sul datasheet tutte le informazioni.
Montare una scheda con una MCU sopra ad un altra scheda con MCU non è normalmente possibile, poi, tagliando piedini e modificando le schede, tutto si fa ... :
Guglielmo
Grazie credo che le ordinerò anche perché il costo non è proibitivo. Per quanto riguarda l’impilazione delle schede credo che (a prima vista) sono pochi i pin da attenzionare, per esempio Tx e Rx non potrebbero lavorare in parallelo quindi questi vanno tagliati, il pin vcc dato che il potenziale e uguale non dovrebbe creare problemi, la porta I2C può lavorare, se ci sono delle cose che mi sfuggono vi prego di farmele notare, grazie
rifly:
.... la porta I2C può lavorare ...
NON esattamente ... le librerie di Arduino, se ben ricordo, NON gesticono il multimaster ed i conflitti su bus, quindi, se colleghi due schede, una deve essere I2C master e l'altra I2C salve. Occhio anche a tutti i GPIO, se dichiari due in output rischi dei bei cortocircuiti ... :
Guglielmo
Certo questo era scontato, dovrò stare attento su input ed output, in sostanza entrambi svolgono la stessa funzione, uno gestisce la comunicazione con Blynk, l’altro gestisce in locale uno schermo della 4d, ho provato a farlo fare solo all’MKR1400 ma risulta lentissimo, penso che gli input possono essere comuni ad entrambi, il problema è gestire gli output.
gpb01:
le librerie di Arduino, se ben ricordo, NON gesticono il multimaster ed i conflitti su bus, quindi, se colleghi due schede, una deve essere I2C master e l'altra I2C salve.
Non esattamente, ho letto che la libreria Wire supporta il bus I2C multi master, e c'è anche un articolo interessante nel Project Hub, dove mi sembra di capire che i due master semplicemente si "sincronizzano" tramite un pin "write".
Se qualcuno l'ha provato magari ci può dire se funziona.
docdoc:
Non esattamente, ho letto che la libreria Wire supporta il bus I2C multi master ...
Insomma ... li viene mostrato un "trucco" per riuscire (forse, da provare) a farla andare senza conflitti ... non è però che "di base supporta il multi-master", tanto è vero che "di base" NON ha la gestione e che NON è neanche quello il vero modo con cui si fa un "vero multi-master" si I2C ... diciamo che, sempre se funziona, è un bel trucchetto per far andare la cosa ;D
Guglielmo