Analizzare segnale i2c con oscilloscopio...

Ciao a tutti, sto facendo un po' di esperimenti con I2C e nello specifico sto provando questo esempio: https://www.arduino.cc/en/Tutorial/MasterWriter

Volevo provare anche ad analizzare i segnali con l'oscilloscopio, però tutto quello che riesco a vedere è quello che vedete sull'immagine allegata rigol.jpg.
(la traccia gialla è SDA e quella azzurra è SCL).

SCL non dovrebbe essere un segnale di clock costante?
Perchè non riesco a vederlo correttamente?

Sto provando su arduino uno con resistenze di pullup da 4k7 sia su SDA che su SCL.
L'oscilloscopio è un Rigol DS1052E.

Grazie.

Stefano

rigol.jpg

... intendevi una cosa del genere ? ... :wink:

credo che con 500msec di base tempi tu non possa vedere altro.
prova con valori molto più bassi......, ogni uno di quei righi verticali se allargato nasconde molta roba
:o

@Etemenanki: Grazie del link, me lo guarderò con calma, sembra interessante :slight_smile:
@realmeteo: Avevo provato anche ad abbassare i tempi ma vedevo una linea piatta.
Poi ho scoperto che era il cavetto che portava la massa che rompeva le scatole.
Cambiato quello e adesso mi sto gustando un bel po' di denti di sega in diretta TV :smiley:

Grazie dell'interessamento.

Stefano

stefanoxjx:
.....
e adesso mi sto gustando un bel po' di denti di sega in diretta TV :smiley:

vacci piano sennò diventi cieco :smiley:

Pelletta:
vacci piano sennò diventi cieco :smiley:

Ormai il danno è fatto :smiley:

non devi avere denti di sega ma un segnale rettangolare.
Ciao Uwe

uwefed:
non devi avere denti di sega ma un segnale rettangolare.
Ciao Uwe

Eh, lo so, ma oltre alle pullup non saprei come migliorare il segnale.

I segnali I2C "devono" essere all'incirca così,

ovvero, quando si muove il clock, i dati sono stabili, altimenti ti troverai prima o poi qualche errore.

Quindi assicurati che l'inclinazione dei fronti, non rientri nella zona utile del clock.

Ok, i miei sono a dente di sega :frowning:
Come posso migliorarli?
Magari cambiando il valore delle pullup?

Un po' lo saranno sempre perché le Rpull devono "caricare" la linea come se fosse un piccolo condensatore.

Riducendole la "ricarica" avviene più velocemente.

Riducendole troppo però si supera la corrente gestibile dalle porte delle periferiche.

Non so quanto valgono adesso, ma con un kΩ dovrebbe migliorare.

SCL non è un clock costante, viene generato solo durante la comunicazione, e la durata può variare se la periferica ricevente lo rallenta (clock stretching).