ELV USB-I²C-Interface Pufferüberlauf

OP (Firma: Rehrmann Elektronik) #4770259
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
#4772997
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
OP (Firma: Rehrmann Elektronik) #4774780
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
#4774828
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
#4774949
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
OP (Firma: Rehrmann Elektronik) #4797052
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.