- LiFePO4 Speicher Test         
Ergebnis 1 bis 5 von 5

Thema: I2C bei unterschiedlicher Spannung

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    24.08.2009
    Beiträge
    5

    I2C bei unterschiedlicher Spannung

    Anzeige

    Praxistest und DIY Projekte
    Hallo

    Ich bin noch relativ neu in der Welt der Robotik und bastel momentan an meinem ersten Roboter einem Hexapod (wie so oft ).
    Der Bau ansich und die ersten Inbetriebnahmen der Servos etc. funktioniert alles soweit. Jedoch habe ich mir vor kurzem sehr günstig ein paar der Sharp IR Abstandssensoren wie sie auch hier in der Wiki beschrieben werden zugelegt und würde diese gerne einbauen.
    Mein momentan einziger Controller der alle 18 bzw 20 Servos (2 für den Kopf) des Hexas steuert ist ein xmega128a1 auf einer fertigen kleinen Platine ( http://alvidi.de/avr_xmodul.html ) und läuft mit 3.3 Volt.
    Die Sharp Sensoren selbst brauchen zwar 5 Volt aber haben nur einen Output bis maximal 3.2 Volt. Daher könnte ich sie zwar an den xmega anschließen, würde aber dennoch stattdessen gerne einen 2. Microcontroller hinzufügen der sowohl diese Sensoren als auch später evtl. ein Ultraschallmodul oder ähnliches verwaltet. Ein kleiner atmega32 oder derartiges. Diese arbeiten ja gewöhnlich mit den erforderlichen 5V.
    Leider weiß ich nun nicht wie ich in einem solchen Fall die Kommunikation eines 5V Microcontrollers mit meinem auf 3.3 Volt arbeitendem atxmega128a1 realisieren kann. Am besten wäre hier natürlich eine Variante bei der das I2C Bussystem sich dennoch umsetzen ließe.

    Hat jemand von euch dafür evtl. einen Tip für mich wie man das lösen könnte oder evtl. einen Link wo sowas vielleicht schon implementiert wurde?

    Vielen Dank und Grüße
    Lalarama

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Bei I2C kann man einen Pegel-wandler mit einm FET und 2 Widerständen dazwischen schalten. Es kommt auf jede Seite ein eigener Pullup Widerstand und ein kleiner n-MOSFET in die Signalleitung. Das gate des MOSFETs kommt auf 3.3 V (jedenfall bei den meisten FETs). Source auf die Seite mit der niedriegeren Spannung.

    Die Schaltung findet sich z.B. in einigen Appl. Notes, z.B. von Phillips (NXP) (z.B. I2C Specs 2.1).

    Wenn der Spannungsunterschied nicht so groß ist, und auch die Niedreigere Spannung als Logic Pegel reicht, kann man auch einefach nur einen Pullup an die Niedreigere Spannung nehmen. Hier könnte man z.B. den extra µC (dann eher Mega324) mit etwa 4 V laufen lassen und so zu beiden Seiten auf einen echten Pegelwandler verzichten.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.04.2006
    Ort
    Dresden
    Alter
    69
    Beiträge
    370
    Hi,
    für solche Zwecke gibts von Philips den Bus-Puffer P82B96, gibts im 8 pin DIL und SO 8.
    MfG Lutz
    Wir haben so viel mit so wenig solange versucht, das wir jetzt qualifiziert sind, fast alles mit fast nichts zu bewerkstelligen.

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von Crazy Harry
    Registriert seit
    15.01.2006
    Ort
    Raum Augsburg - Ulm
    Beiträge
    1.308
    da sowohl der Master als auch der Slave nur OpenCollector-Ausgänge für I²C verwenden und die Spannung durch die beiden PullUp-Widerstände bestimmt wird, häng die PullUps an 3.3V und du wirst sehn, daß das geht. Tut es bei mir bei ca. 35 Displays und sogar über 2.5m Kabel
    Ich programmiere mit AVRCo

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    24.08.2009
    Beiträge
    5
    Erstmal Muchas Gracias an alle Helfer.

    Ich glaube ich habe den Ansatz verstanden. In jedem Fall hab ich jetzt eine Faehrte der ich in den Semesterferien mal nachgehen werde.

    Vielen Dank an Euch
    Gruß
    Lalarama

Berechtigungen

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

12V Akku bauen