xmega- DeviceTreiber mit TWI

Mario
Benutzer
Avatar
Gender: n/a
Age: 50
Posts: 15
Registered: 06 / 2012
Subject:

xmega- DeviceTreiber mit TWI

 · 
Posted: 20.07.2012 - 14:50  ·  #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
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: xmega- DeviceTreiber mit TWI

 · 
Posted: 20.07.2012 - 14:55  ·  #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
Gender: n/a
Age: 50
Posts: 15
Registered: 06 / 2012
Subject:

Re: xmega- DeviceTreiber mit TWI

 · 
Posted: 20.07.2012 - 16:33  ·  #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
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: xmega- DeviceTreiber mit TWI

 · 
Posted: 20.07.2012 - 20:31  ·  #4
Hallo Mario,

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

rolf
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   81   95 · Page-Gen-Time: 0.022837s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI