Modelbau-Servos über I2C-Bus und Adafruit PWM

srro
2014-08-08
2014-09-02
  • srro - 2014-08-08

    Hallo,

    ich habe mir diese Woche das nicht laufzeitbegrenzte Raspberry-Image besorgt. Die meisten Demos laufen ohne Probleme. Das Demo mit dem I2C-Bus habe ich allerdings nicht zum laufen gebracht.

    Ich verwende folgende Hardware:

    http://www.adafruit.com/product/815

    Mit einem Standard-Wheezy Image wird die I2C-Komponente auf 40H erkannt (kann auch mit dem Oszi die Busaktivitäten beobachten). Wenn ich das Beispielprojekt "Soft Motion Servos-Example" in die lizenzierte Codesys-Runtime lade, kann ich das zwar starten und im Online Betrieb sehe ich unter SM_Servo_Drive Aktivitäten (geschwindigkeit ändert sich...) jedoch rührt sich weder der Servo an Channel 0, noch kann ich Aktivitäten erkennen.

    Mit dem Debugger kann ich auch beobachten dass diverse write bzw write8 befehle auf 10#40 ausgefürhrt werden, die sich aber irgendwie nicht bis zur Hardware durchsprechen.

    Bitte um Tipps was ich überprüfen kann um das zum Laufen zu bekommen.

    Gruß

    Robert

     
  • eschwellinger

    eschwellinger - 2014-08-08

    Hallo,

    das muss gehen, wir haben das explizit getestet bei der Freigabe 3.5SP5,
    kann meiner Meinung nach nur noch die Verdrahtung sein.
    Kannst du mal ein Bild von deiner Verdrahtung schicken?

    Grüße
    Edwin

     
  • srro - 2014-08-08

    Hallo,

    danke für die rasche Antwort! Ich habe ein Bild meines Testaufbaus angehängt und den Output von i2cdetect mit einem anderen Raspian (nicht das Codesys-) Image. Die zusätzliche Platine ist ein I2C AD-Wandler (Adresse 68H, 69H). Der sollte nichts anstellen, -habs auch schon ohne probiert. In meinem Fall dient er als Breakout für das Oszi.

    Gruß Robert

    PS.: habe noch was gefunden:
    Original (256MB) Raspberry Pi's use I2C bus 0, while Second Revision Pi's use I2C bus 1. The code attempts to determine the version of Pi it's running on, and will set the I2C bus automatically.
    In rare cases, the automatic detection can fail. If you see an error message telling to to "check your I2C address", you can modify the code to specify which I2C bus to use.
    If you see the "check your I2C address" error message...

    Und:

    http://martin-jones.com/2013/08/20/how- ... s-to-work/

    --> ich habe die Original- und nicht die Second-Revision. Wurde diese Änderung im Treiber berücksichtigt?

    IMG: i.jpg

    IMG: P1060595.jpg

     
  • eschwellinger

    eschwellinger - 2014-08-09

    Hallo,

    ja in der Tat hast recht, ist das momentan fix auf I2C 1 gebunden also /dev/i2c-1
    wir werden das ändern / verbessern.
    Ich versuch dir anfang Woche ne geänderte Lib zu schicken.

    Grüße
    Edwin

     
  • srro - 2014-08-09

    Hallo Edwin,

    Besten Dank! Ich bin nächste Woche ohnehin nicht am Gerät. Aus meiner Sicht hätte es Zeit bis zum nächsten Wochenende. Dann kann ich Feedback geben obs funktioniert.

    Gruss Robert

     
  • Anonymous - 2014-09-01

    Originally created by: BNZ-Brennstoffzelle

    Hallo ich habe ganz ähnliches Problem.
    Ich sehe Adafruit PWM über i2cdetect –y 1

    Habe die Id bei Codesys eingetragen.

    Und eine kleines POU geschrieben.
    7=Adafruit_PWM.alrPWM[1]

    VCC: +5 V
    V+: +5V
    SCL: SCL GPIO3
    SDA:SDA GPIO3
    OE: nicht verbunden

    Zwischen PWM[1] und V+ ist eine LED und ein 470 Ohmen widerstand.
    Auf dem Oscilloscpe ist nur ein bisschen rauschen.
    Einer ne Idee wo der Fehler liegt?

    IMG: Bild

    IMG: Bild

    IMG: Bild

    IMG: 4.jpg

    IMG: 2.jpg

    IMG: 1.jpg

     

    Related

    Talk.ru: 1

  • eschwellinger

    eschwellinger - 2014-09-02

    Hallo,

    versuch bitte mal das "c:\Users\<deinusername>\CODESYS Control for Raspberry PI\2.0.0.0\SoftMotion Servo Example.project"
    da bin ich mir ganz sicher das alles ok ist und miss mal das mit dem Oszi
    (Adressen so lassen wie im Projekt eingestellt)</deinusername>

    Grüße
    Edwin

     
  • Anonymous - 2014-09-02

    Originally created by: BNZ-Brennstoffzelle

    Danke Edwin,

    Ich sehe auf dem Oszi das pwm signal das sich in der breite ändert.
    Nur wollte ich die pwm ausgänge dazu nutzen zwei Pumpen mit pwm steuerung zu regeln.
    und das für brauch ich von 0% bis 100% alle schritte um die pumpen zu steuern.

     

Log in to post a comment.