Forum: PC-Programmierung Problem mit Serial-Port Windows


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von SerialPort (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

habe zum ersten mal einen Microchip ARM mit USB-CDC in Betrieb genommen. 
Grundsätzlich kann ich Daten (nicht als Ascii, sondern binär) schicken 
und mit HTerm am PC empfangen.


Nun gibt es aber reproduzierbar folgendes Verhalten:
(- µC ist dauerhaft an)
- Verbindung zu COM-Port am PC wird in HTerm aktiviert
- µC wird extern zum Senden von Daten getriggert (immer 80.000 Byte 
Daten + 2x8 Byte Initialisierung)
- Es kommen 79.632 Byte an
- µC wird nochmal getriggert
- µC es kommen 80.016 Byte an
- jedes weitere mal kommen 80.016 Byte an.
- COM-Port schließen und wieder öffnen
- µC wird nochmal getriggert
- Es kommen 79.632 Byte an...
- µC wird nochmal getriggert
- µC es kommen 80.016 Byte an


Wieso fehlen immer, wenn man die Serielle Schnittstelle öffnet, beim 
ersten Datentransfer 384Byte? Habe jetzt schon alle möglichen 
Fehlerursachen am µC (USB-Buffer-Size, ...) durchgeschaut aber nichts 
gefunden.
Noch jemand einen Tipp, woran sowas liegen kann?

Viele Dank und beste Grüße!

von Jim M. (turboj)


Bewertung
0 lesenswert
nicht lesenswert
SerialPort schrieb:
> Datentransfer 384Byte?

Das sind ganz genau 6x MaxPacketSize von 64 Bytes.

Und die USB Spec sagt bei Bulk, dass die Daten erst dann ausgeliefert 
werden wenn ein Transfer != 64 Bytes (MaxPacketSize) erfolgt.

Notfalls wird ein Zero Packet gesendet - das macht aber keine mir 
bekannte USB CDC Implementation von sich aus.

Daher liegen dann die 384 Bytes erst mal im Host Buffer rum...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.