Analyzer für I2C/TWI und 1-Wire/microLAN

... und weiter

Hier sieht man den Anfang der Kommunikation mit der I2C-Adressierung mit Write, dann die Adressierung des RTC-Registers, danach der Repeated-Start und dann die I2C-Adressierung mit Read ...
TWI-Analyzer_start.png TWI-Analyzer_start_2pulse.png
Die Flanken des SDA-Signals erzeugen jeweils einen sehr kurzen Peak am Pin 3 des EXORs 7486. Das wird über das RC-Verzögerungsglied in dem einen Zweig des EXOR-Eingangs erzeugt. Mit 24MSamples/s ist der Logik-Analysator bei diesen Pulsen jedoch schon nahe am Ende der Möglichkeiten. 24MSamples/s heißt etwa 40ns Zeit zwischen den Samples. Wenn man sich das einmal im Detail ansieht ...
TWI-Analyzer_start_detail.png
... dann liegen die Puls-Zeiten hier schon bei 125ns (laut Logikanalysator bereits mit 34% Zeitfehler in der Anzeige). Die Pulse dauern also etwa 2-3 Samplezeiten. Wenn man noch kürzere Pulse mitbekommen will dann wird es wohl eher ein Glücksspiel. Auf Pin 11 des NAND 7400 sieht man nun die gefilterten Flankenpulse. Dort kommen nur noch Pulse an die bei Start- oder Stopbedingungen auf dem I2C-Bus erzeugt werden. So wie es aussieht läuft die Hardware also fehlerfrei.

Hier nun die Stop-Sequenz. ...
TWI-Analyzer_ende.png
Im Detail sieht man die Pulse wieder etwas besser. Hier liegt die Pulsbreite bei lediglich 83ns +/-50% Anzeigefehler ...
TWI-Analyzer_ende_detail.png
Die Pulse werden also mit lediglich 2 Samples erfaßt. Sie könnten also in ihrer Dauer zwischen etwa 45ns (etwas mehr als 1 Samplezeit) und etwa 120ns (knappe 3 Samples) schwanken ohne das man diese Änderung in der Anzeige sehen würde. Aus diesem Grund versuche ich Meßgeräte mit möglichst hoher Samplerate zu besitzen. Das Hameg HMO724 von mir hat zwar "nur" 70MHz Grenzfrequenz aber trotzdem 2GSamples/s. Das ist ein erheblicher Unterschied zu den günstigeren UNI-T Geräten mit zB 100MHz Grenzfrequenz aber lediglich 500MSamples/s. Man besitzt trotz niedrigerer Grenzfrequenz eine 4fach höhere Auflösung in der Zeitachse und dadurch genauere Anzeigemöglichkeit.

Aber nun das Fazit ... die Hardwarebeschleunigung funktioniert. Nun muß ich lediglich diese kurzen Pulse mit einem Interrupt des Mega168 sauber weiterverarbeiten. Also ist die weitere Arbeit und Fehlersuche hauptsächlich Programmierung.

Nun eine entscheidende Frage : Wie kurz darf ein Puls am INT-Eingang sein damit er bei 20MHz Takt noch als Interrupt erkannt wird und nicht als "Schmutz" weggefiltert wird ? Ich hab mir mal die Sync-Schaltung für den PCINT angesehen und da ist ja schon einiges an Technik drin. Eventuell müßte ich also den Systemtakt von 20MHz noch auf 25MHz in den Overclocking-Bereich erhöhen. Dann werde ich aber wohl mit nem externen Oszillator arbeiten.

Gruß
Dino
 
Hallo zusammen,

ich hab mir den ganzen Kram nun mal etwas genauer angesehen ...

Die gesamte Datenübertragung auf dem Hameg HMO724 ...
SCR21.PNG SCR20.PNG
Ich hab einfach mal die Uhrzeit abgefragt (00:03:32 27.11.2011)

und ein Impuls mal im Überblick und einmal genauer ausgemessen ...
SCR23.PNG SCR22.PNG

Die Impulszeiten liegen zwischen etwa 84ns bis 120 ns.
Die Kurvenformen und Überschwinger kommen von der suboptimalen Ankopplung des DSOs an die Schaltung. Ich mußte die Tastköpfe noch mit etwas Leitung verlängern weil die Klemmspitzen nicht wirklich IC-geeignet sind. Außerdem streuen die Signale bei den Frequenzen wunderbar zwischen den verlängerten Leitungen der Meßanschaltung. Da muß ich mir nochmal was ausdenken.

Ich habe jetzt aber auf jeden Fall schonmal belastbare Fakten über die Impulslängen.

Gruß
Dino
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)