Kampis Elektroecke

Mikrocontroller

13 Kommentare

  1. Hallo,
    ich finde Dein Tutorial echt klasse. Es beschreibt die notwendigen Funktionen sehr gut und ohne viel overhead.
    In einem Projekt mit einem ATXMega 128 brauch ich gerade die internen ADC’s. Leider scheint dazu das Tutorial noch nicht fertig zu sein.
    Weist Du schon ungefähr wann du dies fertig machen wirst? (je eher umso besser für mich)
    VG Tobias

    1. Danke für das Lob :)
      Sobald ich etwas Zeit über habe, wollte ich das Tutorial ergänzen.
      Falls aber dennoch Fragen da sein sollten oder Hilfe benötigt wird schreibt mir ruhig eine E-Mail :)

  2. Hallo,
    Ich schließe mich meinem Vorredner an, das Tutorial auf dieser Seite hat mir bisher wirklich sehr geholfen. Einfach super!

    Ich bin relativ neu bei der Mikrokontrollerprogrammierung und probiere gerade I2C auf einem Xmega32 zum laufen zu bekommen. Mit dem Xmega möchte ich einen Beschleunigungssensor MPU-6050 über I2C auslesen. Es gibt viele verschiedene Ansätze wie man das bewerkstelligen kann, aber alle Projekte, die ich gesehen habe, benutzen einen Arduino. Sogar die I2cdevlib-Bibliothek ist eigentlich nur für Arduino gedacht und ich bin ehrlich gesagt ein bisschen überfordert, wenn ich diese Bibliothek für das AtmelAvr Studio konvertieren soll ;)

    Kannst du mir Tipps geben, oder kennst du schon vorgefertigte Bibliotheken für I2C und den MPU-6050?
    Ich programmiere mit einem AVRICE und dem Atmelstudio 6.

    Ich freue mich über eine Antwort!
    Viele Grüße
    Matthias

    1. Hallo Matthias,

      fertige Libs habe ich leider nicht und den Sensor an sich kenne ich auch nichts.
      Den I²C vom XMega habe ich bisher auch noch nicht benutzt. Ich muss mal schauen wie der funktioniert aber ich denke mal nicht groß anders als beim Mega32.
      Wobei brauchst du den genau Hilfe?
      Geht es um die Initialisierung des Buses oder um die Datenübertragung?

      Ich wollte am Wochenende mal (vorausgesetzt ich komme dazu) die Kommunikation von einem XMega und einem PCF8574 bzw. einem EEPROM via I²C herstellen und dokumentieren.
      Vielleicht hilft dir das ja schon weiter :)

      Gruß
      Daniel

      1. Danke für die Antwort!

        Momentan stecke ich sogar noch bei der Initialisierung des Busses fest. Ich habe auf atmel.com ein Beispiel gefunden, wie man es hinbekommt, dass ein ATXmega mit sich selbst über I2C kommuniziert, aber das hilft mir nicht sonderlich weiter.

        Du kannst ja auch mal wenn du willst einen Blick auf den Code, den ich gerade zum Testen verwende, werfen. Ich habe ihn größtenteils aus dem Atmelbeispiel (www.atmel.com/Images/AVR1308.zip, http://www.atmel.com/Images/doc8054.pdf) zusammengebastelt. Der interessante Teil steht in der Main Funktion (ab Zeile 102):

        http://pastebin.com/UPZDBx9Z

        Bis jetzt funktioniert der Code noch nicht. Mein Mikrocontroller bleibt in der Schleife Zeile 141 hängen. Irgendetwas scheint da noch nicht zu passen
        Ich wollte, nachdem die Kommunkikation beendet wurde, den übermittelten Wert mit meinem Debugger auslesen.

        Doch eines verstehe ich noch nicht an dem Code: Im Atmelbeispiel wurde die Slave-Adresse 0x55 definiert (bei meinem Code in Zeile 13):

        #define SLAVE_ADDRESS 0x55 //nur Beispiel

        Aber auf was bezieht sich diese Adresse? Ist das die Adresse des ATXMega TWI Interface? Oder wurde sie einfach willkürlich gewählt? Dazu finde ich auch nichts in den Datenblättern

        Gerne können wir diese Unterhaltung auch per Email fortführen, auf dieser Seite wird es vielleicht schnell unübersichtlich. Oder ich gedulde mich einfach so lange, bis du dein I2C-Versuch dokumentiert hast ;)

        Viele Grüße
        Matthias

        1. Hey,

          ja führen wir die Unterhaltung mal per Mail weiter.
          Die Adresse 0x55 sollte ein willkürlich gewählter Wert sein.
          Da der Chip selber keine Adresspins hat (wie ein I²C Device) musst du die Adresse Softwareseitig vergeben.
          Ich weiß auch nicht ob eine Kommunikation zwischen zwei Mastern bzw. zwei µC wirklich das einfachste ist um mit dem I²C anzufangen :)
          Ich würde erstmal klein anfangen, sprich einen PCF8574 oder eine RTC bzw. ein EEPROM anquatschen und schauen das man den Bus zum laufen bekommt.
          Sobald der Bus am laufen ist kann man weiter machen aber du musst halt erstmal eine funktionierende Grundlage schaffen sonst suchst du dir einen Wolf.

          Gruß
          Daniel

  3. echt super deine sammlung. kannst du auch mal was zum usb mit atxmega128a1U reinstellen? ich such schon überall, und find nix..

    ich würde gerne meine UART schnittstelle gegen CDC eintauschen, somit entfällt der ft232rl :)

    1. Hey,

      ja kann ich gerne machen.
      Aber das dauert noch, da ich mir erstmal neue Hardware zulegen muss (mein Experimentierboard mit USB und allem ist kaputt :( ).

        1. Hey,

          ich dachte an das XMegaB3U (oder so).
          Aber vor nächstem Jahr mache ich da eh nichts dran und Anfang nächsten Jahres ist Klausurzeit, sprich es dauert wirklich noch eine Weile :)

          Gruß
          Daniel

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert