xmega- DeviceTreiber mit TWI

Mario
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 51
Beiträge: 15
Dabei seit: 06 / 2012
Betreff:

xmega- DeviceTreiber mit TWI

 · 
Gepostet: 20.07.2012 - 14:50 Uhr  ·  #1
Hallo,
in meinem neuen Projekt verwende ich nun zum ersten Mal den xMega256A3U. Bisher läuft auch alles wunderbar.
In diesem Projekt und auch schon früher benutze ich für das Verwalten eines externen I2C-Eeproms den Device-Treiber UserDevice mit seinen Funktionen UsrDevOut,UsrDevInp etc. .
Ich lege meine Variablen mit {$UData} in den externen Bereich und spreche sie dann direkt mit den Namen an. In meiner UsrDevOut Prozedur wird dann nur die TWIOut Funktion aufgerufen und die Werte damit ins I2C-EEprom geschrieben. Bei größeren Datenmengen verwenden wir inzwischen einen Cache zum Schreiben. Das hat bisher immer ohne Probleme funktioniert.
Nun ist es so, dass wenn der angesprochene Typ größer als ein Byte(z.B. word, longword, etc.) ist, d.h. der DeviceTreiber die UsrDevOut Routine mehrmals aufruft, entsteht zwischen den Schreibvorgängen im UsrDevOut ein TimeOut von ca. 100ms, indem die TWIClock auf GND liegt. Erst dann wird das nächste Byte geschrieben. Wenn ich in der UsrDevOut Prozedur anstatt des TWI den I2CPort nehme, funktioniert alles prächtig.
Gibt es im Falle des DeviceTreibers noch ein Problem mit der TWI? Oder muß ich noch etwas beachten?

Gruß Mario
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: xmega- DeviceTreiber mit TWI

 · 
Gepostet: 20.07.2012 - 14:55 Uhr  ·  #2
Hallo Marion,

das I2C Device macht Clock-stretching? Es könnte sein dass der XMega TWI Treiber das clock stretch nicht beachtet. Kann ich aber nicht nachvollziehen mangels geeigneter Hardware...
Und 100msec ?? Das ist ja gigantisch. Normal sind da 1..5msec

rolf
Mario
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 51
Beiträge: 15
Dabei seit: 06 / 2012
Betreff:

Re: xmega- DeviceTreiber mit TWI

 · 
Gepostet: 20.07.2012 - 16:33 Uhr  ·  #3
Hallo Rolf,
am xmega TWI-Treiber kanns eigentlich nicht liegen. Wenn ich nämlich außerhalb des Device-Treibers words oder longwords oder größere Datenmengen übertrage, funktionierts ohne Probleme. Nur innerhalb der UsrDevOut-Prozedur nicht.

Gruß Mario
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: xmega- DeviceTreiber mit TWI

 · 
Gepostet: 20.07.2012 - 20:31 Uhr  ·  #4
Hallo Mario,

dann schicken Sie mir bitte ein möglichst kleines Programm so dass ich das nachvollziehen kann.

rolf
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   81   95 · Page-Gen-Time: 0.03101s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI