I2C Port Expander Geschwindigkeit

  • Hallo zusammen,
    ich kenne mich mit I2C noch nicht aus.
    Ich möchte gerne mehrere Sensoren auslesen.
    Im Web habe ich schönes Tutorial für einen Raspberry I2C Port Expander gefunden.

    http://tutorials-raspberrypi.de/gpio/gpios-mit…nder-erweitern/

    Jetzt habe ich eine Frage an die Profis hier.
    Kann man ausrechnen wie viele Daten man annähernd gleichzeitig übertragen kann.
    Gibt es so etwas wie eine Bits oder Byte's pro Sekunde Angabe?

    Ich würde gerne min. 9720 - max 32000. Byte/s auslesen.
    Ist das mit dem Raspberry Pi 2 machbar?


    Danke Berrie

  • Hallo Berrie,

    ich weiß nicht was Du vor hast und ob Du den MCP23017 nutzen willst.
    Der MCP23017 ist aber ein Portexpander für Digitale-I/Os und nicht besonders für Sensoren (außer welche die nur digitale Signale abgeben) geeignet. Er kann mit 400 KHz oder 1,7 MHz betrieben werden.

    Die Baudrate des I2C Bus am RasPI kannst du einstellen vgl.
    https://www.raspberrypi.org/forums/viewtopic.php?f=71&t=18852&p=188106&hilit=i2c%2bspeed#p188106 .

    Damit sollte theoretisch Deine geforderte Bandbreite erreichbar sein. Fraglich ist nur, ob Deine Datenverarbeitung des RasPI's diese Mengen noch verarbeiten kann und ob Deine Sensoren mit so einer Frequenz Daten liefern können.

    Es wäre hilfreich hier ein paar weitere Infos zu bekommen was Du vor hast.
    VG
    Golmic

    Gruß

    Golmic:)

  • Der I2C-(Quasi)Standard liegt bei 400kbs und im fastmode (auch sowas wie ein Standard) bei 1Mbps. Da es kein wirklicher Standard ist, gibt es die Möglichkeit die Geschwindigkeit beim Raspberry Pi zumindest bei Raspbian anzupassen. Allerdings ist das die Baudrate, also die Zeichen (nicht Bits oder Bytes) die pro Sekunde übertragen werden.

    Edit: Mann, bin ich langsam, hatte wieder vergessen "Absenden" zu drücken.

  • Danke für die Antwort.

    Ich habe gerade noch etwas anders gefunden.
    Auf einer Webseite habe ich gelesen das man GPIO frei programmieren kann.
    http://jankarres.de/2015/02/raspbe…telle-erklaert/

    Dort steht

    Zitat

    Damit sind wir dabei, dass es Pins gibt, die vorkonfigurierte Funktionen erfüllen. Alle Pins sind jedoch frei programmierbar, auch solche, die eigentlich spezielle Eigenschaften haben.

    Bedeutet das, dass ich nicht unbedingt Port Expander benötige?
    Kann ich 10 I2C Anschlüsse programmieren?

    Danke Berrie

  • Hallo Jörg,

    als altem Fernmelder sei mir diese Anmerkung erlaubt:


    Allerdings ist das die Baudrate, also die Zeichen (nicht Bits oder Bytes) die pro Sekunde übertragen werden.

    Baudrate ist die Übertragungsrate in Bit/s. Bei Y-Tours hatten wir diese edle Technik des Fernschreibens nutzen dürfen. Die 50 Baud-Teile waren deutlich langsamer als wir schreiben konnten. Und bei 5 Bits/Zeichen und Deiner Definition wären das 50 Zeichen / sec., 3000 Zeichen pro Minute. Na, wer schafft das wohl? Niemand...

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (23. November 2015 um 16:50)

  • Es ist fuer Diskussion zu I2C voellig irrelevant weil es mit Bit/s arbeitet, und keinerlei abgefahrene Modulation betreibt - aber Baudrate ist allgmein != Bitrate. Ein Zeichen ist aber nicht - wie du in deiner Kalkulation annimmst - ein Ascii/Alphabet-Zeichen. Sondern bezieht sich auf ein 'Symbol' auf dem physikalischen Layer. Wenn du zB mit Amplitude und Frequenz gleichzeitig modulierst, und jeweils zwei Zustaende (leise, laut, niederfrequent, hochfrequent) kennst, dann hast du 2 Bit pro Zeichen. Eine Baudrate von 1000 ist dann also 2000 Bits/s.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!