Hallo Leute, ich hoffe, jemand kennt das Problem und vor allem eine Lösung dazu. Von ELV gibt es ein USB-I2C-Interface. Mit HTerm lassen sich Daten zwischen PC und I2C-Bus austauschen. Wenn man nun komplette Datensätze auf den I2C-Bus ausgeben will, kann man mit HTerm auch Dateien an das Interface senden. Leider überflutet HTerm den winzigen Puffer des I2C-Interfaces sofort, sodass dieses seinen Dienst einstellt. Ich habe noch keine Möglichkeit gefunden, das zu verhindern. Kennt jemand eine Möglichkeit, wie man die Daten mit HTerm oder einer anderen Software kontrolliert an das Interface übermitteln kann ? Jörg
Jim M. schrieb: > Haken bei "CTS Flow control" gesetzt? habe ich auch schon probiert. Das hat nur den Effekt, das überhaupt keine Daten mehr übertragen werden. Anscheinend wird CTS nicht an I2C adaptiert. Jörg
Falls du Linux benutzt, kannst du alternativ cutecom verwenden. Da kannst du ganz rechts unten eine Verzögerung zwischen den Zeichen einstellen.
Jörg R. schrieb: > Leider überflutet HTerm den winzigen Puffer des > I2C-Interfaces sofort, sodass dieses seinen Dienst einstellt. In der Anleitung steht das der Puffer 400Byte groß ist - da frage ich mich was du da sendest. Die paar Byte die du in der Ansicht der Systemsteuerung siehst beziehen sich nur auf RS232 Interface Hardware die im PC fest verbaut ist. Sascha
und statt HTERM ein eigenens Programm schreiben welches kleinere Blöcke überträgt? COM ist ja nicht so schwer, LCC32 gibts gratis
Danke Euch für die Bemühungen. @Stefan: Geht leider nicht, da alles unter Windows läuft. Wäre allerdings auch keine saubere Lösung, da man entweder die Verzögerung unnötig groß einstellen müsste oder das Risiko eingehen müsste, das die Daten schneller gesendet werden als sie verarbeitet werden können. @Sascha: Für kleinere Spielereien ist der Puffer sicher gross genug. Es gibt aber durchaus Anwendungen, bei denen auch mal mehrere kB übertragen werden müssen, z.B. wenn Speicherinhalte kopiert werden sollen. @Joachim: Das kostet Zeit und Geld. Ich wollte eigentlich vermeiden, das Rad nochmal zu erfinden. Ich hatte gehofft, dass ein so grundlegendes Problem schon umfassend gelöst wurde. Da habe ich mich wohl getäuscht. Selbst beim ELV-Support gibt es keine Lösungsansätze oder nähere Informationen dazu. Wahrscheinlich muss man tatsächlich ein Programm schreiben, dass jedes Byte einzeln überträgt und jeweils die Acknowledge-Rückmeldung abwartet. Jörg
Jörg R. schrieb: > Wahrscheinlich muss man tatsächlich ein Programm schreiben, dass jedes > Byte einzeln überträgt und jeweils die Acknowledge-Rückmeldung abwartet. alternativ könntest du auch einen µC auf der I2C Seite mit größerem Buffer zwischensetzen, es ist ja egal wo der Puffer sitzt ob in win oder im I2C
Hallo unter Windows gibt es das Programm ZOC, das kann für jeden Char, für jedes LF/CR getrennt die Verzögerung einstellen (weiss jetzt nicht ob mit den aktuellen Win Versionen auch noch so ist ...) Es gibt auch Demo-Versionen, kannst ja mal testen. Dieter
Hallo nochmal und vielen Dank an alle Helfer. ZOC habe ich irgendwie nicht zum Laufen bekommen. Ich konnte das Problem wie folgt vorerst "lösen": Ich habe die Commport-Baudrate auf Minimum gesetzt (4800 Baud) und noch viele Leerzeichen in die Datei eingefügt. Offensichtlich wird da zwischen USB und I²C eine klassische RS232 emuliert. Dadurch wurde die Übertragung der Datei in den I²C-Puffer so langsam, dass die Daten rechtzeitig abgearbeitet werden konnten. Keine schöne Lösung, aber es funktioniert erstmal. Jörg
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.