Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
  • Seite:
  • 1

THEMA: I2C... welche Ports sind noch frei?

I2C... welche Ports sind noch frei? 1 Jahr 6 Monate her #14800

  • micserver
  • micservers Avatar Autor
  • Offline
  • Benutzer
  • Benutzer
  • Beiträge: 74
  • Dank erhalten: 2
Hallo, auf dem 1.3er Board sind ja eine Menge I2C Schnittstellen. Die sind sicher nicht alle für Erweiterungen reserviert... ich würde gerne eine nutzten aber nicht's für die Zukunft blockieren, welche sind noch nicht verplant?
Zusatzfrage: wie spreche ich einen bestimmten I2C Port an (muss zugeben, dass ich noch nicht im Code gesucht habe).
Gruss Michael

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

I2C... welche Ports sind noch frei? 1 Jahr 6 Monate her #14806

  • Roland
  • Rolands Avatar
  • Abwesend
  • Benutzer
  • Benutzer
  • Beiträge: 727
  • Dank erhalten: 244
Grundsätzlich ist doch nur die Adresse des I2C Devices erheblich. Den Port kann man doch später beliebig switchen.
Funktionen sind in: I2C.h/cpp

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

"There’s a way to do it better - find it" ― Thomas A. Edison

I2C... welche Ports sind noch frei? 1 Jahr 6 Monate her #14808

  • micserver
  • micservers Avatar Autor
  • Offline
  • Benutzer
  • Benutzer
  • Beiträge: 74
  • Dank erhalten: 2
Ich verfolge das Konzept von al_ohr3: 2 Nanos bekommen über I2C die Geschwindigkeitsinformation für die Schrittmotoransteuerung. Im Moment greife ich den I2C Port am RTC Modul ab (also SDA1..), möchte aber direkt auf z.B. den 7. PORT schreiben...da bin ich noch etwas verloren wie ich jetzt PC7 direkt ansteuerte...
Gruss Michael

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

I2C... welche Ports sind noch frei? 1 Jahr 6 Monate her #14809

  • Roland
  • Rolands Avatar
  • Abwesend
  • Benutzer
  • Benutzer
  • Beiträge: 727
  • Dank erhalten: 244
Ich weiss aktuell nicht was du mit 7. PORT meinst. Vermutlich PC7?
Wenn du 2 devices hast mit unterschiedlichen Adressen würde ich auch zwei Ports verwenden.
I2C ist ein Bussystem. Du musst das Device an den Bus hängen und über die Adresse ansprechen.
Um die einzelnen Anschlüsse auf dem PCB1.3 zu aktivieren, muss glaube ich ein Jumper für den entsprechenden Anschluss gesteckt werden.
Hier in dem Schaltbild nachschauen.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

"There’s a way to do it better - find it" ― Thomas A. Edison
Letzte Änderung: von Roland.

I2C... welche Ports sind noch frei? 1 Jahr 6 Monate her #14810

  • micserver
  • micservers Avatar Autor
  • Offline
  • Benutzer
  • Benutzer
  • Beiträge: 74
  • Dank erhalten: 2
Ja, ich meine z.B. PC 7 ... mir fehlt im Moment nur der Faden wie ich den in der Software anspreche... an PC 1 kann ich ja schon ausgeben.
Gruss Michael

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

I2C... welche Ports sind noch frei? 1 Jahr 6 Monate her #14811

  • Roland
  • Rolands Avatar
  • Abwesend
  • Benutzer
  • Benutzer
  • Beiträge: 727
  • Dank erhalten: 244
Ich bin der Meinung du sprichst PC7 nicht in der Software an. Der ist nur physikalisch so benannt wegen den Bauteilen. Du verwendest in der Software nur die Deviceadresse. Es ist ein Bus.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

"There’s a way to do it better - find it" ― Thomas A. Edison
Letzte Änderung: von Roland.

I2C... welche Ports sind noch frei? 1 Jahr 6 Monate her #14812

  • micserver
  • micservers Avatar Autor
  • Offline
  • Benutzer
  • Benutzer
  • Beiträge: 74
  • Dank erhalten: 2
Ja, da hast du wohl recht, ich muss mir das über Ostern noch mal in Ruhe ansehen ....

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

I2C... welche Ports sind noch frei? 1 Jahr 6 Monate her #14813

  • elektronikjogi
  • elektronikjogis Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 285
  • Dank erhalten: 267
Hallo Michael,
damit Du an Ostern nicht unnötig Zeit opfern musst, ein paar kleine Erklärungen zu Deiner Frage.



Alle freien I2C Anschlüsse die Du auf jeden Fall nehmen kannst sind mit "Res." (Reserve) gekennzeichnet.
Die Anschlüsse für den I2C sind alle gleichberechtigt, dass bedeutet theoretisch kannst jeden nehmen.
Praktisch stimmt das nicht so ganz. Ich habe Dir mit einem grünen Pfeil die Jumper markiert die es für jeden I2C Anschluss gibt.
Über diese Jumper kann man festlegen mit welcher Bus-Spannung der Slave (in deinem Fall der Nano) arbeitet.
Bei einem Nano sind das dann normalerweise 5V.
Das bedeutet du musst die Bus-Spannung über den Jumper für den jeweiligen Anschluss setzen!
Wichtig ist auch zu beachten, dass alle "I2C-Res." Anschlüsse mit Pullup-Widerständen für SDA und SCL ausgestattet sind.
Damit darfst Du auf deinen Slave's (bei dir NANO's) keine weiteren I2C PullUp-Widerstände haben.
Das ist auch genau der Grund warum es so viele I2C-Anschlüsse gibt. Die meisten fertigen Platinen (IMU, RTC, etc.) besitzen bereits solche
Widerstände. Hätte man alle möglichen fertigen Slave's (IMU, RTC, etc.) an dem Bus wäre dieser völlig überfordert. Zumal jeder Slave auch noch
unterschiedliche Bus-Spannungen haben kann (3,3V-5V) was der Gesundheit der meisten IC's sehr schaden kann wenn man es falsch macht.

Selektiert wird ein Slave im I2C-Bus immer über seine Slave-Adresse. Du brauchst also für den verwendeten Anschluss nichts spezielles
programmieren, Du musst nur die oben beschriebenen Dinge beachten.

Gruß
Jürgen
Anhang:
Folgende Benutzer bedankten sich: Kurzschuss, Bernard

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

I2C... welche Ports sind noch frei? 1 Jahr 6 Monate her #14814

  • Bernard
  • Bernards Avatar
  • Offline
  • Benutzer
  • Benutzer
  • Beiträge: 1073
  • Dank erhalten: 210
Hi
Very important and clear answer maybe good if you can put it into the wiki in german and english.
Thanks.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Letzte Änderung: von Bernard.

I2C... welche Ports sind noch frei? 1 Jahr 6 Monate her #14816

  • micserver
  • micservers Avatar Autor
  • Offline
  • Benutzer
  • Benutzer
  • Beiträge: 74
  • Dank erhalten: 2
Danke, das hilft auf jeden Fall. Ich werde vom Erfolg berichten, bei Unklarheiten melde ich mich sicher auch :)
Gruss Michael

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

I2C... welche Ports sind noch frei? 1 Jahr 6 Monate her #14818

  • Kurzschuss
  • Kurzschusss Avatar
  • Offline
  • Moderator
  • Moderator
  • Beiträge: 803
  • Dank erhalten: 259
Bei den IC2 Anschlüssen auf der Platine ist noch folgendes zu wissen
Der 1 Anschluss ist für die RTC Uhr. Da die RTC Uhr bereits 2 10K Pullup Widerstände auf der Platine hat sind auf der 1.3 Mainboard keine vorgesehen.
Bei den Anschlüssen 2 und 3 sind ebenso keine Pullup vorgesehen . Die Widerstände auf der Platine sind vorgesehen aber nicht bestückt und können bei Bedarf bestückt werden. Das IMU Modul hat z.B 2 Pullups auf dem Modul sitzen.

Bei den Anschlüssen 4-7 sind bereits jeweils auf der Platine 2 10K Pullup vorhanden.
Wenn schon an den anzuschließenden Modul Pullup Widerstände vorhanden sind müssen diese an den Modul oder an der Platine 1mal entfernt werden( 2 Widerstände) damit diese nicht 2mal vorhanden sind.
Alternativ kann das Modul auf den Anschlüssen 2 oder 3 verwendet werden wo auf dem Mainboard die Pullups nicht bestückt sind.

Die Bezeichnung der Module dient nur zur Unterschreitung auf der Platine. Die Module werden ausschließlich über ihre Adresse erkannt und angesprochen.

Gruß
Uwe
Folgende Benutzer bedankten sich: Bernard

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

aktuelle Dokumentation / latest documentation
-> github.com/Ardumower/ardumower/tree/master/Dokumentation

KIcad Anleitung: www.ardumower.de/index.php/de/forum/ardu...nen/1082-kicad#10828

English language (translation) with the help of Google Translate

I2C... welche Ports sind noch frei? 1 Jahr 6 Monate her #14822

  • Bernard
  • Bernards Avatar
  • Offline
  • Benutzer
  • Benutzer
  • Beiträge: 1073
  • Dank erhalten: 210
Also Very important is to never use 2 modules with same I2C Adress.
For example the IMU GY87 Can't work on PCB1.3 because it use the same adress as the RTC.
@Uwe Why you use PCA9517D instead of TCA9548A ? (No jumper and no adress issue).
By.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

I2C... welche Ports sind noch frei? 1 Jahr 6 Monate her #14823

  • elektronikjogi
  • elektronikjogis Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 285
  • Dank erhalten: 267
Hy Bernard,
With this chip you must first select the desired channel by software. That was exactly what we did not want.

Regards
Jürgen
Folgende Benutzer bedankten sich: Kurzschuss, Bernard

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

I2C... welche Ports sind noch frei? 1 Jahr 6 Monate her #14827

  • Bernard
  • Bernards Avatar
  • Offline
  • Benutzer
  • Benutzer
  • Beiträge: 1073
  • Dank erhalten: 210
Yes i understand that but it's very easy and can solve a lot of issue into I2C.
It work with 3.3 and 5V and can access to multiple IMU for example .
I use it with PCB1.2 and here the code :
into driver.cpp:
void tca9548PortSelect(uint8_t i) {  //select the port for i2c multiplexer
  if (i > 7) return;
  Wire.beginTransmission(TCA9548_ADDRESS);
  Wire.write(1 << i);
  Wire.endTransmission();  
}
and to read the imu for example:
if (millis() >= nextTimeImuLoop) {
    if (imuUse) {
      if (i2cTca9548Use) { //GY801 on port 3 /  RTC on port 2  / GY87 on port 1  / CompassGps on port 0
        if (i2cPortInUse != 3) {
          i2cPortInUse = 3;   //we want to read the GY801
          tca9548PortSelect(i2cPortInUse);
        }
      }
      imu.update();
    }
    nextTimeImuLoop = millis() + 10;
  }

By.
Folgende Benutzer bedankten sich: elektronikjogi, Roland

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

I2C... welche Ports sind noch frei? 1 Jahr 6 Monate her #14837

  • elektronikjogi
  • elektronikjogis Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 285
  • Dank erhalten: 267
A nice solution.
With the 1.3 and a DUE you have two independent I2C bus systems available. The second I2C connection is led out and only waiting for such great solutions.

By
Anhang:
Folgende Benutzer bedankten sich: Roland, Bernard

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

I2C... welche Ports sind noch frei? 1 Jahr 6 Monate her #14838

  • Bernard
  • Bernards Avatar
  • Offline
  • Benutzer
  • Benutzer
  • Beiträge: 1073
  • Dank erhalten: 210
Yes very Cool.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Seite:
  • 1
Moderatoren: runtimeterror
Ladezeit der Seite: 1.202 Sekunden