- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 9 von 9

Thema: ATmega8 gleichzeitig I²C Master und Slave?

  1. #1

    ATmega8 gleichzeitig I²C Master und Slave?

    Anzeige

    Powerstation Test
    Hallo an alle,
    wir haben einen I2C Sensor, der mit der von uns verwendeten I2C Library nicht kompatibel ist (anscheinend aber mit der Library von Peter Fleury), deshalb müssen wir, da wir ohne weiteres jetzt keine neue I2C Library auf unserem Master verwenden können, irgendwie die beiden Librarys zusammenfügen - über einen extra Mikrocontroller.
    Dazu muss der Mikrocontroller aber gleichzeitig I2C Master und I2C Slave sein (Master, um den Sensor auszulesen, Slave, um von unserem Roboter (dem Master), der den Sensor so nicht ,,versteht", ausgelesen werden zu können).
    Wie macht man sowas? Man würde ja zwei verschiedene Librarys brauchen, eine, die das Hardware I2C des ATmegas ansteuert und eine Library, die I2C emuliert... Oder sehe ich das komplett falsch?
    Wäre es eventuell einfacher, den Sensor via I2C auszulesen (den neuen ATmega8 also als I2C Master zu konfigurieren) und den ATmega8 wiederum als SPI Slave zu konfigurieren, der dann von unserem Roboter (RP6 M32 Platine, also mit ATmega32) auch via SPI ausgelesen werden kann? Dann bräuchten wir aber eine fertige SPI Slave Library, da wir bis jetzt nur wenig Erfahrung mit SPI haben...
    Vielen Dank für Eure Hilfe und
    Viele Grüße
    teamohnename

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Also Master und Slave in einem Chip ist recht kompliziert. Du musst die Master Operation implementieren um den Sensor auszulesen und dann musst du einen Buffer anlegen den der Slave auslesen kann.
    Wäre es da nicht einfach den Roboter zum Slave zu machen und der Chip zwischen Sensor und Roboter ist Master und ließt erst den Sensor aus und schickt es dann zum Robi?
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  3. #3
    Wenn wir den Roboter zum Slave machen würden, müssten wir auch wieder extrem viel umschreiben. Dann könnten wir außerdem auch den momentanen Master weglassen, da dieser überflüssig wäre...
    Trotzdem erstmal danke.

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Das klingt alles nach Murks. Entweder ihr macht korrektes I2C und dann solltet ihr auch mit besagtem Sensor "reden" können, oder ihr habt irgendwo Fehler drinne die besagten Sensor stören. Wie dem auch sei, wenn eure Lib mit mehreren Mastern am Bus zurecht kommt, ist das überhaupt kein Problem (vorausgesetzt die Fleury-Lib ist Multi-Master-fähig). Es kann halt immer nur genau einen Master am Bus geben, konkurrierende Zugriffe kann man aber entsprechend der Protokollspezifikation erkennen.

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  5. #5
    Hi markusj,
    die Idee kommt daher, weil das hier alles nicht geklappt hat...
    Vielleicht kannst Du Dir das ja auch nochmal kurz durchlesen, vielleicht hast Du ja noch eine Idee, warum das Auslesen dort nicht funktioniert...
    Sonst ist das auch egal. Vielleicht kommen wir an einen Logic Analyzer, dann gucken wir uns das darüber nochmal an.
    Danke und
    Viele Grüße
    teamohnename

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Naja, offenbar wickelt die RP6-Lib das I²C-Protokoll nicht so ab wie vom Sensor gewünscht. Habt ihr Mal versucht rauszukriegen, welche Schritte genau die RP6-Lib durchführt, auf diesem Weg müsstet ihr eigentlich rauskriegen können, wo noch was fehlt. Vorraussetzung dafür ist natürlich, dass ihr euch in das TWI-Modul des verbauten AVRs und das I²C-Protokoll einarbeitet.

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  7. #7
    Erfahrener Benutzer Begeisterter Techniker Avatar von Chypsylon
    Registriert seit
    02.02.2011
    Ort
    Graz/Österreich
    Beiträge
    256
    Alternativ wäre auch möglich das ihr mit dem Slave-Prozessor über den UART (also einfach serielle schnittstelle) bzw. über SPI kommuniziert...

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    30.12.2008
    Ort
    Essen
    Alter
    65
    Beiträge
    358
    Hallo !

    Ich habe da noch im Hinterkopf, dass es so etwas wie Multi - Master Betrieb bei I2C gibt.
    Damit müsste Euer Problem zu lösen sein.

    Roland
    Robotik & Arduino Homepage
    http://www.ardumega.de

  9. #9
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Zitat Zitat von rolber Beitrag anzeigen
    Hallo !

    Ich habe da noch im Hinterkopf, dass es so etwas wie Multi - Master Betrieb bei I2C gibt.
    Jap gibt es
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

Ähnliche Themen

  1. TWI I²C ATmega8 als Master/Slave
    Von Geimel im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 16.05.2007, 23:12
  2. I²C Master und Slave, Problem bei Master Reset
    Von ACU im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 01.03.2007, 12:07
  3. Atmega8 als I2c Master, und Slave
    Von ChRiZ im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 5
    Letzter Beitrag: 11.07.2006, 12:31
  4. SPI MASTER SLAVE BEISPIEL (Assembler) ATmega8
    Von Bernhard.Erfurt im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 2
    Letzter Beitrag: 30.03.2006, 20:07
  5. TWI / I2C einf. MASTER SLAVE Beispiel(Assembler) ATmega8
    Von Bernhard.Erfurt im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 0
    Letzter Beitrag: 24.03.2006, 11:45

Berechtigungen

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

Labornetzteil AliExpress