FT245 Kommunikation: Geschwindigkeitsproblem



  • Hallo miteinander

    Bei einem kleinen MCU der über einen FT245 angesprochen wird habe ich ein kleines mühseeliges Problem gefunden, bei dem ich keine halbwegs gescheite Lösung finde:

    Ich sende im Stream-Prinzip jeweils ~16ms 3000 Byte an den MCU.
    Jetzt hat der FT245 leider nur einen RX-Buffer von 128 Byte. Das heisst, dass ich die beabsichtigte Pausierung des Programmes gleich wieder vergessen kann, denn ich muss 128 Werte senden, warten bis der MCU diese gelesen hat, und dann gleich ohne unnötige Verzögerung wieder die nächsten 128 Bytes senden.
    Die Windows-Timers kann ich lediglich auf ungefähre 1ms einstellen, aber die 128 Bytes, die gesendet wurden, werden innerhalb von etwa 700us verarbeitet und ausgegeben.
    Des weiteren steht im Datenblatt, dass der FT245 eine Übertragungsgeschwindigkeit von etwa 1MByte erreichen kann. Dies ist ja dann ebenfalls nicht mehr über einen Timer lösbar.
    Oder gibts einen Timer der ein Intervall von etwa 50 bis 100us hat?

    Oder habt ihr eventuell Vorschläge für die Lösung des Problems?

    Besten Dank für die Antworten
    MFG
    P51D



  • Schau mal hier hab ich ein Codesnippet zur Takterzeugung gepostet:

    http://www.c-plusplus.net/forum/posting-var-mode-is-quote-and-p-is-1906125.html



  • Das Problem ist, ich kann nichts "nachholen". Entweder werden die Daten unmittelbar gesendet oder verzögert, was Geschwindigkeitsverlust bedeutet.

    Wie wird sonst das USB angesprochen? Da kann man ja auch nicht einfach beliebige Datenmengen senden oder?

    Idealerweise (MCU-Denkweise) müsste der Treiber ja "unendlich" Daten entgegennehemen und dann interrupt-gesteuert die Daten senden, sobald dies möglich ist, oder nicht?

    Ich sehe wirklich nicht mehr durch, da das OS irgendwie auch nebenbei seine Aktionen erledigen soll.

    Währe wirklich dankbar für Tipps.

    MFG
    und danke für den Beitrag
    P51D


Anmelden zum Antworten