Anzeige:
Ergebnis 1 bis 11 von 11

Thema: USB Übertragung / Timing (MCP2221 und I²C)

  1. #1
    Registrierter Benutzer
    Registriert seit
    Oct 2016
    Beiträge
    7

    USB Übertragung / Timing (MCP2221 und I²C)

    Ich habe Konverter USB to I²C (MCP2221) welcher ich für Datenübertragung mit einem ADS1115 (Analog->Digital Wandler) brauche.
    Nur das Problem, die Datenübertragung ist sehr langsam, im Vergleich der VGA-Anschluss hat auch I²C eingebaut und dort läuft es über 10x schneller.

    Kann man irgendwo das Timing des USB-Portes einstellen ?

    Unter Win7 gibt es für die COM-Ports unter "Systemsteuerung/System/Hardware/Geräte-Manager/Anschlüsse/USB-Serial/Anschlusseinstellungen/Erweitert/Delay" ein Delay, das sehr hoch eingestellt ist. Wen ich dieses auf 1 stelle, wird der COM-Port sehr viel schneller.

    Ich denke, vielleicht gibt unter Linux eine Einstellung, wo man da eingreifen kann.

    Ich verwende Mint Cinamon 18 64Bit.

  2. #2
    Banned
    Registriert seit
    Feb 2005
    Beiträge
    1.151
    Code:
    stty -F /dev/ttyDEINDINGENSHIER 115200
    Und dann halt die gewünschte Baudrate angeben.

  3. #3
    Registrierter Benutzer
    Registriert seit
    Oct 2016
    Beiträge
    7
    Das ist nicht das was ich suche, es geht da nicht um die Baudrate des COM-Ports, sondern um das Timing des USB.
    Mit der Einstellung in der Systemsteuerung habe ich nur als Beispiel genommen, da es diese Einstellung nur bei USB-COM-Ports gibt. Bei den echten COM-Ports, welche fest am Mainboard verbaut sind, gibt es diese Einstellung nicht.

  4. #4
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.814
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  5. #5
    Elefantenversteher Avatar von florian0285
    Registriert seit
    Jun 2016
    Beiträge
    1.054
    man setserial

    ich tippe auf close_delay?
    Matthäus 7:3 Was siehst du aber den Splitter in deines Bruders Auge, und wirst nicht gewahr des Balkens in deinem Auge?

  6. #6
    Registrierter Benutzer
    Registriert seit
    Oct 2016
    Beiträge
    7
    Das einzige was ich da erkennen kann, ist das jemand das gleiche Problem wie ich habe, aber eine Lösung kann ich nicht finden.
    Die Python.Script laufen bei mir nicht, aber so wie ich es sehe, sind die nur für einen Test-Laufe.

    Oder übersehe ich da etwas ?

    man setserial

    ich tippe auf close_delay?
    Code:
    tux@tux-To-be-filled-by-O-E-M ~ $ man setserial
    Kein Handbucheintrag für setserial vorhanden

  7. #7
    Elefantenversteher Avatar von florian0285
    Registriert seit
    Jun 2016
    Beiträge
    1.054
    apt-get install setserial -y
    Matthäus 7:3 Was siehst du aber den Splitter in deines Bruders Auge, und wirst nicht gewahr des Balkens in deinem Auge?

  8. #8
    Registrierter Benutzer
    Registriert seit
    Oct 2016
    Beiträge
    7
    Zitat Zitat von florian0285 Beitrag anzeigen
    apt-get install setserial -y
    Nützt aber nicht viel, das dies nur für den COM-Port und nicht für I²C ist.

  9. #9
    Elefantenversteher Avatar von florian0285
    Registriert seit
    Jun 2016
    Beiträge
    1.054
    Wo steht das?

    setserial -g /dev/ttyACMx

    Davon abgesehen möchtest du diese Einstellung für USB (to serial) so wie du das da oben beschreibst. Den I2C Bus musst du dann schon selbst beschreiben. Entweder mit einer Programmiersprache und der passenden Bibliothek oder mit den i2c-tools (i2cset).

    Wie dein Chip arbeitet weiß ich nicht, aber wenn du den Takt von deinem ADC selbst ansprechen musst, musst du den selbst von low auf high ziehen. Das sollte aber eigentlich über deinen USB-Adapter mit I2C gehen oder hat das unter Win ggf die Anwendung übernommen?

    Wie dein MCP2221 funktioniert ist in der technischen Spezifikation beschrieben.
    Geändert von florian0285 (30.10.16 um 23:28 Uhr)
    Matthäus 7:3 Was siehst du aber den Splitter in deines Bruders Auge, und wirst nicht gewahr des Balkens in deinem Auge?

  10. #10
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.814
    Zitat Zitat von Mathias Beitrag anzeigen
    Das einzige was ich da erkennen kann, ist das jemand das gleiche Problem wie ich habe, aber eine Lösung kann ich nicht finden.
    Die Python.Script laufen bei mir nicht, aber so wie ich es sehe, sind die nur für einen Test-Laufe.

    Oder übersehe ich da etwas ?


    Code:
    tux@tux-To-be-filled-by-O-E-M ~ $ man setserial
    Kein Handbucheintrag für setserial vorhanden
    Jein, kurz Fassung: Schrottiges Design, besser auf was ordentliches wechseln, aus dem Artikel die wesentlichen Stellen dazu:
    I spoke to the Alan Stern and Greg KH, the Linux kernel USB maintainers, who were not surprised by this 8ms delay at all, and told me:
    Why are we seeing such a large latency?
    I don’t see anything wrong here, USB isn’t guaranteed to have any specific latency, what you are doing here is the worst-possible-case for a USB system (i.e. send a packet, wait for it to complete, send another one, etc.) There are lots of ways to get much better throughput if that is what you are wanting to do.

    Can we make this faster?

    For a horrid protocol like this, no, there isn’t any way to make it go faster, sorry. That is designed in such a way to make it the worst possible thing for a USB system, go kick the person who designed such a thing (hint, they have no idea how USB works…)

    I strongly suggest going and getting a different sensor chip, don’t encourage such behaviour by actually buying their hardware.

    Where is the delay coming from?

    Multiple places: time to submit the request, time to reserve bandwidth for the previously unused interrupt endpoint, time to complete the transfer, all multiplied by 2.

    You can get more information from usbmon (see Documentation/usb/usbmon.txt in the kernel source). But Greg is right; the protocol you described is terrible. There’s no need for a multiple ping-pong interchange like that; all you should need to do is wait for the device to send the next bit (or whatever) of data as soon as it becomes available.
    Sorry vermutlich nicht gerade das was du hören wolltest. Jedenfalls ist MCP2221 wohl nicht so prall, also mal mit einem anderen probieren (There’s no need for a multiple ping-pong interchange like that; all you should need to do is wait for the device to send the next bit (or whatever) of data as soon as it becomes available.), ob es da was gibt kann ich gerade nicht sagen...
    Geändert von nopes (30.10.16 um 23:47 Uhr)
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  11. #11
    Registrierter Benutzer
    Registriert seit
    Oct 2016
    Beiträge
    7
    also mal mit einem anderen probieren
    Kennst du zufällig gerade einen, welcher auch in einem DIP-Gehäuse erhältlich ist ?

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 09.02.06, 00:59
  2. Samba + Timing-Problem mit Windoof XP-SP2?
    Von Blade im Forum Linux in heterogenen Netzen
    Antworten: 2
    Letzter Beitrag: 12.12.04, 21:44
  3. Palladium: Timing-Attacke (hahahaha)
    Von Haase im Forum Meldungen und Mitglieder
    Antworten: 2
    Letzter Beitrag: 07.05.03, 16:06
  4. Timing buffered disk reads: read() failed: Input/output error
    Von Susu im Forum System installieren und konfigurieren
    Antworten: 3
    Letzter Beitrag: 20.12.02, 12:05
  5. ip-up.local Timing Problem
    Von Sandal im Forum Anbindung an die Aussenwelt
    Antworten: 0
    Letzter Beitrag: 03.08.02, 01:47

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •