IOW SDK 1.5GM

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Robert Marquardt
Posts: 543
Joined: Mon Dec 01, 2003 6:09 pm

Post by Robert Marquardt »

Ich habe nochmals mit einem Testprogramm geprueft. Ich habe beim Simple IO Delphi-Beispiel das IowKitOpenDevice/IowKitCloseDevice in den Timer verlegt und jeweils zwei Aufrufe nacheinander gemacht. Gleiches fuer die Klickfunktion auf die LEDs.
Damit wird alle 50 Millisekunden der Thread zum Lesen des IOW 40 gestartet und gleich wieder beendet. Es kommt zu keinen Problemen.
Das Lesen der Pins mit IowKitReadNonBlocking funktioniert nur sporadisch, aber dies liegt offensichtlich an der nur sehr kurzen Laufzeit des Threads.
Ab- und Anstecken des IOWarriors funktioniert problemlos. Da laufend IowKitOpenDevice/IowKitCloseDevice aufgerufen wird, wird der IOWarrior auch jeweils neu erkannt.

15 Meter USB-Kabel? Kann das denn ohne Hubs funktionieren? Sind Hubs dazwischen, so gibt es kein Problem. Hubs sind Routern aehnlich. Sie erzeugen neue Signale auf den Bus.
friend-of-rq
Posts: 389
Joined: Sun Feb 13, 2005 1:22 pm
Location: Gerblingerode / Duderstadt
Contact:

Post by friend-of-rq »

In meinen IOW-Testprogramm,

http://greinert.hopto.org/main/fileadmi ... -2-018.zip

wird alle 500 ms nach angeschlossenen IOW gesucht (Startseite)

mit version 1.4 Fehlerfrei Erkennung ...

mit Version 1.5 werden alle angeschlossen IOW`s erkannt ....
aber ein gezogener IOW wird weiterhin angezeigt !!!!

In der Abfrage-Schleife wird sogar Sicherheitshalber vom dem öffnen
nocheinmal abgefragt ob bereit die DLL vom Programm geöffnet ist ...
um ein doppeltes öffnen zu verhindern !!

Teste doch einfach mal beide DLL`s (1.4 / 1.5) mit meinem Programm ...
Programm und DLL ins gleiche Verzeichnis ... fertig

Das Programm verwendet unter 1.5 bereits die neuen Funktionen
"Readnoblocking"
unter 1.4 werden die Abfragen der IR-Funktion noch mit timeout verwendet ...

mfg
R.Greinert
Robert Marquardt
Posts: 543
Joined: Mon Dec 01, 2003 6:09 pm

Post by Robert Marquardt »

Jetzt verstehe ich den Fehler.
Der IOWarrior wird abgezogen, IowKitCloseDevice aufgerufen und der folgende IowKitOpenDevice-Aufruf liefert tatsaechlich den abgezogenen IOWarrior als noch existent.

Na dann weiss ich ja worauf ich debuggen muss. Das sollte sich bis morgen erledigen lassen.

Nochmal aber der Hinweis das dies eigentlich jenseits der Spezifikation des APIs ist.
friend-of-rq
Posts: 389
Joined: Sun Feb 13, 2005 1:22 pm
Location: Gerblingerode / Duderstadt
Contact:

Post by friend-of-rq »

Hallo ...

habe leider noch einen Fehler in der 1.5 iowkit.dll gefunden !!
Bei der verwendung der I2C-Funktion ...
--------
Bekomme öffter die Rückmeldung ..... ACK ERROR .....
Grundlage ist meinem Testprogramm und ein ST24C03
Image

unter 1.4 ..... funktioniert es fehlerfrei !!!!
Image


mfg
R.Greinert
Robert Marquardt
Posts: 543
Joined: Mon Dec 01, 2003 6:09 pm

Post by Robert Marquardt »

Wenn ein Antwortreport mit einem Fehler vom IIC kommt, dann ist das kein Fehler der DLL. Es ist eher wahrscheinlich das der IIC Chip falsch angesteuert wird. Gib doch mal die Kommandos an den Chip in Klartext an.
friend-of-rq
Posts: 389
Joined: Sun Feb 13, 2005 1:22 pm
Location: Gerblingerode / Duderstadt
Contact:

Post by friend-of-rq »

Gib doch mal die Kommandos an den Chip in Klartext an
???

in den beiden Sreenshots ist im Daten-Monitor
unter OUT die Kommandos an den Chip zu sehen ...

z.B.
----- write-Adr(160) -----
OUT (2,134,160,0,84,101,115,116)
OUT (2,6,45,73,79,87,97,114)
OUT (2,68 ,114,105,111,114,0,0)

schreiben einen Text in ein eeprom (Adr.160) von Speicherstelle 0 an ...

unter 1.4 Fehlerfrei (Dauertest)
unter 1.5 bekomme ich Fehlerrückmeldungen ???

gleicher Aufbau, gleiches Programm

???

mfg
R.Greinert
wayoda
Posts: 362
Joined: Fri Dec 19, 2003 12:00 pm
Location: Wuppertal/Germany

Post by wayoda »

Hallo,
friend-of-rq wrote: in den beiden Sreenshots ist im Daten-Monitor
unter OUT die Kommandos an den Chip zu sehen ...
.....
unter 1.4 Fehlerfrei (Dauertest)
unter 1.5 bekomme ich Fehlerrückmeldungen ???

gleicher Aufbau, gleiches Programm
Aber vorher wurde erwähnt :
In meinen IOW-Testprogramm,
...
wird alle 500 ms nach angeschlossenen IOW gesucht (Startseite)
Ist sichergestellt, dass die Schreibbefehle alle abgearbeitet sind bevor iowkitclosedevice()/iowkitopendevice() aufgerufen wird?
Die Abfolge GenerateStart im ersten Schreibbefehl und GenerateStop nur im letzten Schreibbefehl, darf natürlich nicht irgendwie unterbrochen werden.

Eberhard
friend-of-rq
Posts: 389
Joined: Sun Feb 13, 2005 1:22 pm
Location: Gerblingerode / Duderstadt
Contact:

Post by friend-of-rq »

Hallo wayoa,

Die suche nach den IOW`s erfolgt in der Startsite (Übersicht)

Nach der Auswahl einer Testfunktion wird nicht mehr gesucht ...

Ist sichergestellt, dass die Schreibbefehle alle abgearbeitet sind bevor iowkitclosedevice()/iowkitopendevice() aufgerufen wird?
IOW-Suche:
iowkitopendevice()
.... Auswertung ... Anzeige der angeschlossenen IOW`s
iowkitclosedevice()


Nach Auswahl einer TEST-Funktion:
iowkitopendevice()
-- aktivieren der entsprechenden Funktion

* Schreibanforderungen werden nur interaktiv durchgeführ und abgearbeitet

* Automatische Abfragen, werden beim beenden (abbruch) nicht einfach abgewürgt,
sonder es wird beim dücken der Taste ABBRUCH ein Abruchflag gesetzt, welches in der Abfrageschleife getestet wird !!
Ist das Abbruchflag gesetzt wird die Schleife sauber beendet ...

--danach wird die Funktion wieder deaktiviert ..
iowkitclosedevice()

Quellcode ist auf meiner Webseite ...

mfg
R.Greinert
wayoda
Posts: 362
Joined: Fri Dec 19, 2003 12:00 pm
Location: Wuppertal/Germany

Post by wayoda »

Eine letzte Frage bevor mir auch nix mehr einfällt:
Bekomme öffter die Rückmeldung ..... ACK ERROR .....
Grundlage ist meinem Testprogramm und ein ST24C03
Also im Screenshot sehe ich einen ST24C02!
Was verwendest du denn tatsächlich? Weil:
beim ST24C02 dürfen im MultiByte-und im PageWrite-Mode maximal 8 Bytes in einem Druchgang (anders ausgedrückt zwischen einem Start/Stop-Signal auf dem Bus) geschrieben werden.

(Einen ST24C03 schein es gar nicht zu geben? Alles was ich gefunden habe ist ein FM24C03 der auch 16 byte im PageMode unterstützt.)

Zumindest das Beispiel im Screenshot (Schreiben von 16 Byte auf ST24C02) scheint also ausserhalb der Spezifikationen des EEPROM zu sein.

Tritt der Fehler also auch mit den zulässigen Max. 8 Byte auf?


Eberhard
friend-of-rq
Posts: 389
Joined: Sun Feb 13, 2005 1:22 pm
Location: Gerblingerode / Duderstadt
Contact:

Post by friend-of-rq »

Hallo zusammen ....

Ich habe bei der Anpassung des Testprogrammes auf die 1.5 Version einfach MIST gebaut !!!!

ich hatte die Funktion IowKitRead durch den IowKitReadNonBlocking versehentlich ersetzt ...

Nach 6 Stunden suchen und programieren habe ich den Fehler endlich gefunden.

I2C - Funktion ist auch unter 1.5 Fehlerfrei

Ich verwende die IowKitReadNonBlocking Funktion bei der RC5 Abfrage, die Funktion ist richtig schnell .... ca 100 mal schneller als mit IowKitRead und timeout=0

Ich habe das Programm nocheinmal überarbeitet die Version 2-2-021 steht dann auf meiner Webseite zum download bereit.

Es werden wie gehabt die Version 1.4 und 1.5 unterstützt.

Nochmal ... Sorry ...

-----------------------------------------
beim ST24C02 dürfen im MultiByte-und im PageWrite-Mode maximal 8 Bytes in einem Druchgang
Beim Austesten der I2C-Funktion, habe ich festgestellt das beim 24C02 bis zu 16 Byte in einem Rutsch geschrieben werden können .....
alle weiteren Bytes werden vom 24C02 über die bereits gesendeten Bytes geschrieben ... ohne Fehlermeldung !!

Ich habe bei der I2C-TEST-Funktion nur geringe Einschränkungen festgelegt ....
es können bis zu 128 Byte gesendet werden und beliebig viele Byte gelesen werden, wobei ich beim lesen 6 Byte Fragmente verwende.

Schau es die einfach mal an ....


PS. Das Problem das unter 1.5 enfernte IOWs immer noch als vorhanden erkann werden, besteht dennoch .
mfg
R.Greinert
Robert Marquardt
Posts: 543
Joined: Mon Dec 01, 2003 6:09 pm

Post by Robert Marquardt »

friend-of-rq wrote: PS. Das Problem das unter 1.5 enfernte IOWs immer noch als vorhanden erkann werden, besteht dennoch .
mfg
R.Greinert
Lad mal die neueste Version von der Webseite. :-)
wayoda
Posts: 362
Joined: Fri Dec 19, 2003 12:00 pm
Location: Wuppertal/Germany

Post by wayoda »

friend_of_long_nicknames wrote: Beim Austesten der I2C-Funktion, habe ich festgestellt das beim 24C02 bis zu 16 Byte in einem Rutsch geschrieben werden können .....
alle weiteren Bytes werden vom 24C02 über die bereits gesendeten Bytes geschrieben ... ohne Fehlermeldung !!
Beim Austesten eines PCF8582-C hatte ich mal festgestellt, das ich die Geschwindigkeit auf dem Bus auf 400kHz setzen konnte, obwohl im Datenblatt nur 100 kHz angegeben waren. Als ich den gleichen Test dann mit einem anderen Chip aus meiner Bestellung gemacht habe, wurde mir klar das man lieber erst mal dem Datenblatt vertrauen sollte.

Viel Glück
Eberhard
friend-of-rq
Posts: 389
Joined: Sun Feb 13, 2005 1:22 pm
Location: Gerblingerode / Duderstadt
Contact:

Post by friend-of-rq »

Hallo,

S U P E R ......

mit der neuen DLL 1.5 vom 09.02.2007 funktioniert alles !!!

auch das an und abstecken der IOW`s wird wieder sauber erkannt !!!


mfg
R.Greinert
friend-of-rq
Posts: 389
Joined: Sun Feb 13, 2005 1:22 pm
Location: Gerblingerode / Duderstadt
Contact:

Post by friend-of-rq »

Hallo,

ich muss mal ein LOB los werden ...

die neu 1.5 DLL vom 09.02.2007 ist einfach gut,
ich kann keinen Fehler mehr finden ...

- IOW`s werden sauber erkannt ...
- I2C read bis 255 Byts funktioniert auch ...

---------

ich habe einige Stunden den IOW56 getestet ... SUPER
- sehr schnell
- keine Port Überscheidungen
- 64 Byte in einem Rutsch
- Displayauswahl
- I2c mit 400kHz


WEITER SO ...

mfg
R.Greinert
Post Reply