-
        

Ergebnis 1 bis 5 von 5

Thema: I2C zu langsam

  1. #1

    I2C zu langsam

    Anzeige

    Hallo,

    ich hab ein Problem mit meiner C-Control.

    Ich steuere einen autonomen Roboter über Visual Basic.
    Die Befehle werden per Funk an die C-Control übertragen.

    Die Servos meines Roboters werden über den SD20 angesteuert. D.h. auch über einen generierten I2C-Bus.

    Das Problem , dass ich nun habe, ist, dass ich lediglich bis zu 2 Servopositionen pro sec. übermitteln kann, sonst kommt es zu fehlern bei der Steuerung & div. Servos nehmen falsche Stellungen an.

    Ich vermute das Liegt daran, das der generierte I2C-Bus sehr langsam ist. Kann mir jemand dies bestetigen, oder liegt das Problem wo anders? Wie kann ich die Geschwindigkeit erhöhen??

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.01.2004
    Ort
    Erlangen, Bayern
    Alter
    35
    Beiträge
    253
    Soweit ich das mit dem SD20 verstanden habe, benötigt der doch nur einmal einen Stellwert und hält dann die Position oder?! Warum sollte dann der I2C Bus mit 100Khz zu langsam sein? Mit welcher Baudrate überträgst du denn per Funk? Welche Entfernung? Hindernisse? Welche Funkmodule?

    Gruss
    Michael

  3. #3
    Lieber Michael,

    ich denke, dass es nicht am Funkmodul liegt, da ich mit einem seriellen Kabel in etwa die gleichen Probleme habe. Zur Sicherheit trotzdem hier die Daten der Funkeinheit. Ich benutze zur Datenübertragen die Gigaset M101 Data von Siemens. Mit einer Geschwindigkeit von 9600Bits/sec.

    Ich vermute, das es eher daran liegt, das ich den I2C-Bus ja bloß über 2 Digitalports generiere und das hierdrin die Spassbremse liegt. Hast du Erfahrung mit dem I2C über C-control.

    Meine C-control verwendet dabei eine modifizierte Version folgenden Programmes:

    http://www.the-starbearer.de/Roboter...20CCSource.bas


    Schau`s dir mal an!

    Vielen Dank im Voraus
    Grüße Markus

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    10.09.2004
    Beiträge
    42
    Die C-Control ist ja deutlich langsamer als z.B. ein AVR. Wenn man dann noch I2C über Digitalports simulieren muss, dann kann das die Ursache für das Problem sein. Du könntest mal ein Testprogramm schreiben, das z.B. 100000 mal die Funktion I2C_Write aus dem Beispielprogarmm aufruft. Messe die Zeit, die das Programm dazu braucht. Daraus kannst du die maximale Datenrate von dieser I2C Implementierung errechnen.

    Ich kann mich dunkel daran erinnern, dass im Conrad Katalog stand, dass man die C-Control auch mit Assembler programmieren kann. Wenn die I2C Implementierung in Basic zu langsam ist, dann könntest du das versuchen.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    die c-control-I kann in asm programmiert werden, hat dafür aber nur "255 byte" frei. nimm einen avr, den kannst du dann in asm proggen. die c-rontrol läuft ja nur mit dem c-basic und das ist die bremse.
    mfg pebisoft

Berechtigungen

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