IOW SDK 1.5GM
Moderator: Guido Körber
-
- Posts: 543
- Joined: Mon Dec 01, 2003 6:09 pm
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.
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.
-
- Posts: 389
- Joined: Sun Feb 13, 2005 1:22 pm
- Location: Gerblingerode / Duderstadt
- Contact:
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
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
-
- Posts: 543
- Joined: Mon Dec 01, 2003 6:09 pm
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.
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.
-
- Posts: 389
- Joined: Sun Feb 13, 2005 1:22 pm
- Location: Gerblingerode / Duderstadt
- Contact:
-
- Posts: 543
- Joined: Mon Dec 01, 2003 6:09 pm
-
- Posts: 389
- Joined: Sun Feb 13, 2005 1:22 pm
- Location: Gerblingerode / Duderstadt
- Contact:
???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
Hallo,
Die Abfolge GenerateStart im ersten Schreibbefehl und GenerateStop nur im letzten Schreibbefehl, darf natürlich nicht irgendwie unterbrochen werden.
Eberhard
Aber vorher wurde erwähnt :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
Ist sichergestellt, dass die Schreibbefehle alle abgearbeitet sind bevor iowkitclosedevice()/iowkitopendevice() aufgerufen wird?In meinen IOW-Testprogramm,
...
wird alle 500 ms nach angeschlossenen IOW gesucht (Startseite)
Die Abfolge GenerateStart im ersten Schreibbefehl und GenerateStop nur im letzten Schreibbefehl, darf natürlich nicht irgendwie unterbrochen werden.
Eberhard
-
- Posts: 389
- Joined: Sun Feb 13, 2005 1:22 pm
- Location: Gerblingerode / Duderstadt
- Contact:
Hallo wayoa,
Die suche nach den IOW`s erfolgt in der Startsite (Übersicht)
Nach der Auswahl einer Testfunktion wird nicht mehr gesucht ...
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
Die suche nach den IOW`s erfolgt in der Startsite (Übersicht)
Nach der Auswahl einer Testfunktion wird nicht mehr gesucht ...
IOW-Suche:Ist sichergestellt, dass die Schreibbefehle alle abgearbeitet sind bevor iowkitclosedevice()/iowkitopendevice() aufgerufen wird?
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
Eine letzte Frage bevor mir auch nix mehr einfällt:
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
Also im Screenshot sehe ich einen ST24C02!Bekomme öffter die Rückmeldung ..... ACK ERROR .....
Grundlage ist meinem Testprogramm und ein ST24C03
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
-
- Posts: 389
- Joined: Sun Feb 13, 2005 1:22 pm
- Location: Gerblingerode / Duderstadt
- Contact:
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 ...
-----------------------------------------
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
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 Austesten der I2C-Funktion, habe ich festgestellt das beim 24C02 bis zu 16 Byte in einem Rutsch geschrieben werden können .....beim ST24C02 dürfen im MultiByte-und im PageWrite-Mode maximal 8 Bytes in einem Druchgang
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
-
- Posts: 543
- Joined: Mon Dec 01, 2003 6:09 pm
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.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 !!
Viel Glück
Eberhard
-
- Posts: 389
- Joined: Sun Feb 13, 2005 1:22 pm
- Location: Gerblingerode / Duderstadt
- Contact:
-
- Posts: 389
- Joined: Sun Feb 13, 2005 1:22 pm
- Location: Gerblingerode / Duderstadt
- Contact:
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
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