Hallo zusammen ...
bin gerade dabei mein Testprogramm für IOW mit der I2C-Funktion zu erweitern ...
zum probieren verwende ich ein ST24C02 (eeprom 256x8) an einem IOW40 mit dem iow-kit V1.4
für dem IOW verwende ich zwei eigene Funktionen :
IOWwrite1(RID,Flag,D,D,D,D,D,D)
IOWreadP1 Result= RID;Flag;D;D;D;D;D;D
auf die Details der beiden Funktionen gehe ich hier erstmal
nicht näher ein ...
nach dem initalisieren des I2C iowwriteP1(1,1,0,0,0,0,0,0)
sende ich ...
IIC-start
IOWwriteP1(2,128,0,0,0,0,0,0) IOWreadP1=2;255;0;0;0;0;0;0
Daten(100-115) ab adr=0 in das eeprom schreiben Devadr=160
iowwriteP1(2,6,160,0,100,101,102,103) IOWreadP1=2;6;0;0;0;0;0;0
iowwriteP1(2,6,104,105,106,107,108,109) IOWreadP1=2;6;0;0;0;0;0;0
iowwriteP1(2,6,110,111,112,113,114,115) IOWreadP1=2;6;0;0;0;0;0;0
IIC-stop
iowwriteP1(2,64,0,0,0,0,0,0) IOWreadP1=2;255;0;0;0;0;0;0
soweit funktionier es supper, probleme habe ich beim einlesen ...
adr wieder auf null setzen
iowwriteP1(2,128,0,0,0,0,0,0) IOWreadP1= 2;255;0;0;0;0;0;0
iowwriteP1(2,2,160,0,0,0,0,0) IOWreadP1= 2;2;0;0;0;0;0;0
iowwriteP1(2,64,0,0,0,0,0,0) IOWreadP1= 2;255;0;0;0;0;0;0
iowwriteP1(3,12,161,0,0,0,0,0)
IOWreadP1= 3;6;100;101;102;103;104;105
IOWreadP1= 3;6;106;107;108;109;110;111
soweit auch noch ok .... will ich aber mehr als 12 Byte einlese bekomme ich nur noch Schrott z.B.
iowwriteP1(3,20,161,0,0,0,0,0)
IOWreadP1= 3;6;100;101;102;103;104;105
IOWreadP1= 3;6;112;113;114;115;255;255
IOWreadP1= 3;2;255;255;114;115;255;255
IOWreadP1= 0;0;0;0;0;0;0;0
oder
iowwriteP1(3,24,161,0,0,0,0,0)
IOWreadP1= 3;6;100;101;102;103;104;105
IOWreadP1= 3;6;112;113;114;115;255;255
IOWreadP1= 3;6;255;255;255;255;255;255
IOWreadP1= 0;0;0;0;0;0;0;0
ich kann doch bis zu 255 Byte einlesen ???
was mache ich falsch ....
mfg
R.Greinert
Probleme mit IOW40 und I2C
Moderator: Guido Körber
-
- Posts: 389
- Joined: Sun Feb 13, 2005 1:22 pm
- Location: Gerblingerode / Duderstadt
- Contact:
-
- Site Admin
- Posts: 2879
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
-
- Posts: 389
- Joined: Sun Feb 13, 2005 1:22 pm
- Location: Gerblingerode / Duderstadt
- Contact:
hallo ....
das ging aber schnell
start I2C >> (2,128,0,0,0,0,0,0)
start I2C >> (2,64,0,0,0,0,0,0)
Ein Vermerk in den Unterlagen [SDK] währe nicht schnecht ...
gruss
R.Greinert
das ging aber schnell
was ist denn daran FalschWas soll das denn????
Das ergibt keine Start-Condition, sondern einen Fehler.
start I2C >> (2,128,0,0,0,0,0,0)
start I2C >> (2,64,0,0,0,0,0,0)
gut .... wenn es denn nur so gehtUnd was das Lesen von mehr als 12 Bytes betrifft: Windows hat da einen Fehler im USB, mehr als 2 Reports als Antwort verträgt es nicht.
Ein Vermerk in den Unterlagen [SDK] währe nicht schnecht ...
gruss
R.Greinert
-
- Site Admin
- Posts: 2879
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
Falsch daran ist, dass das keine Start-Condition ergibt, sondern einen Fehler. Wenn 0 Bytes angegeben werden macht der IO-Warrior gebau garnichts.friend-of-rq wrote:hallo ....
was ist denn daran Falsch
start I2C >> (2,128,0,0,0,0,0,0)
start I2C >> (2,64,0,0,0,0,0,0)
Abgesehen davon ist es auch wenig sinnvoll einen Report nur für Start oder Stop zu senden wenn man dafür nur ein einzelnes Bit im Report setzen muss.
Steht drin, entweder im Datenblatt oder im FAQ.friend-of-rq wrote:hallo ....gut .... wenn es denn nur so gehtUnd was das Lesen von mehr als 12 Bytes betrifft: Windows hat da einen Fehler im USB, mehr als 2 Reports als Antwort verträgt es nicht.
Ein Vermerk in den Unterlagen [SDK] währe nicht schnecht ...
gruss
R.Greinert
-
- Posts: 389
- Joined: Sun Feb 13, 2005 1:22 pm
- Location: Gerblingerode / Duderstadt
- Contact:
-
- Site Admin
- Posts: 2879
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact: