Signaltap für i2c-Signale

OP #3725090
Lesenswert?

Hallo Leute,
ich möchte mit einem arm cortex m3 einen Temperatursensor auslesen.
Der chip wird über i2c angesteuert/ausgelesen.
Leider habe ich kein oszi aber dafür das de0nano board.
Ich dachte man könnte doch den pin-ausgang(i2c) vom controller zum fpga 
führen und mit signaltap so die Leitung aufzeichnen.
Ist dies möglich/sinnvoll?
Gast #3725289
Lesenswert?

Sofern der IO-Standard stimmt schon. Du musst berücksichtigen, dass I2C 
sehr langsam ist, daher solltest du auch einen sehr langsamen Systemtakt 
erzeugen (ca. 1 MHz). Sonst kannst du so gut wie gar nichts sehen, da 
der Speicher zu schnell voll läuft.

Dies ist definitiv eine "billige" Lösung für einen Logic-Analyzer ;-)
Gast #3725313
Lesenswert?

Man sollte mit etwa der 10fachen Freuqenz abtasten, wenn man was sehen 
will. Problematisch bei I2C ist, dass es asynchron ist, d.h. durch das 
Ziehen der Clockleitung hängen die Pakete immer etwas anders.

Wenn man CLK-Leitungsprobleme beobachten will, muss es nochmal etwas 
feiner sein.
Gast #3725370
Lesenswert?

Tim S.
>..
>Ist dies möglich/sinnvoll?
Möglich: ist dein I2C 5V? Falls ja, dann brauchst du noch einen
Levelshifter oÄ.
Sinnvoll: Ich selbst habe ein kleines Stratix-Board mit massig
5V-toleranten IOs, mit STP-II habe ich damit ein Billig-LA.
Und bei 2 Signalen kann man selbst bei kleinen Cyclones locker
mit 8-16KBit/Signal (evtl. wesentlich mehr) aufzeichnen, und das
ohne gross Code zu schreiben.
#3725541
Lesenswert?

Roger Steiner schrieb:
> Somit gibts nur einen Eintrag pro SCL Flanke, also massig Platz fuer I2C
> Telegramme.

Andererseits wirst Du so Probleme mit Start/Stop-Conditions nicht 
erkennen. Um das ganze I2C-Protokoll zu erfassen, müsstest Du den 
Storage Qualifier auf "Simple or" stellen und sowohl SCL als auch SDA 
auf Transitions prüfen (nicht irritieren lassen durch die optisch 
unterschiedlich langen SCL-Phasen, weil SDA ja nicht immer wechselt...).

Willst Du übers Timing auch noch was erfahren, bleibt Dir nichts anderes 
übrig, als zu überlegen, wie lange Du aufzeichnen können musst, und dann 
die Oversampling-Clockfrequenz zu bestimmen (in der Regel sollte eine 
Sequenz von [Start, Address, Write, Stop] allenfalls noch ein a 
nschliessendes [Start, Address, Read, Stop] ausreichen, um die 
gängigsten Probleme zu finden...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren