-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: doppelte Verwendung von I²C Pins SDA und SCL

  1. #1
    Erfahrener Benutzer Roboter Experte Avatar von BurningWave
    Registriert seit
    22.12.2007
    Ort
    nahe Stuttgart
    Alter
    23
    Beiträge
    656

    doppelte Verwendung von I²C Pins SDA und SCL

    Anzeige

    Hallo,

    ich habe eine Frage bezüglich der I²C Schnittstelle: An die zwei Pins meines Mega32, die für I²C verwendet werden (SDA bzw. PC1 und SCL bzw. PC0) habe ich ein KS0108 GLCD angeschlossen (mit DB0 an PC0 und DB1 an PC1). Ich kann dieses LCD-Display aus Platzgründen nicht an einen anderen Port anschließen, möchte die I²C Schnittstelle jedoch trotzdem verwenden. Gibt es eine Möglichkeit, diese zwei Pins doppelt zu benutzen, also dass ich sowohl das GLCD, als auch die I²C Geräte an die selben Pins hänge? In diesem Fall könnte man I²C nicht zeitgleich mit dem Display ansteuern, das ist mir klar, aber würden sich die Geräte nicht evtl. trotzdem stören, wenn sie parallel angeschlossen werden würden (z.B. wenn man Befehle an das LCD-Display sendet, die zufälligerweiße ins Schema einer I²C Übertragung passen würden)? Und was ist mit den für I²C benötigten zwei Pull-Up-Widerständen? Machen die dem LCD-Display etwas aus oder ist das egal?

    Falls man die Geräte nicht einfach parallel anschließen kann, hätte ich mir überlegt, mit ein paar Transistoren einen kleinen Multiplexer zu bauen, den ich mit einer Steuerleitung umschalten kann.

    Was ist für dieses Problem die beste Lösung?

    Ich hoffe ihr könnt mir helfen.

    mfg
    _R2D2
    meine Homepage: http://www.jbtechnologies.de
    Hauptprojekte: Breakanoid 2 - Sound Maker

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.08.2007
    Ort
    Delmenhorst
    Alter
    32
    Beiträge
    731
    Hi

    Du hast zwar nicht verraten was das andere Gerät ist, aber ja sollte gehen.
    Auch die Pull-Up Widerstände sollten dir keine Probleme bereiten.
    Könnte dadurch aber auch mal zu einem ungewollten Ereignis führen, musst halt dafür sorgen das das nichts ausmacht.

    Ich selbst würde einen I2C Portexpander nehmen.
    Also ein IC das über I2C angesteuert wird, und dann mehrere IOPins hat.

  3. #3
    Erfahrener Benutzer Roboter Experte Avatar von BurningWave
    Registriert seit
    22.12.2007
    Ort
    nahe Stuttgart
    Alter
    23
    Beiträge
    656
    Gut, dann werde ich das mal probieren.

    Ich habe schon geplant eine I²C Porterweiterung einzubauen. Das ist das erste Gerät und das zweite wird vermutlich eine DS1307 Echzeituhr.
    meine Homepage: http://www.jbtechnologies.de
    Hauptprojekte: Breakanoid 2 - Sound Maker

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    Also meines Erachtens ist das sicherste der Multiplexer. Da I2C nicht so empfindlich ist, kannst Du ja einfach zwei Transistoren nehmen, die diese beiden Pins vom Display trennen, wenn Du gerade I2C nutzen möchtest. Dazu einfach die beiben Transistor-Basen mit je einem Widerstand an einen freien, anderen Pin Deines ICs.

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.08.2007
    Ort
    Delmenhorst
    Alter
    32
    Beiträge
    731
    Dann lieber das Display auf I2C umbauen.

  6. #6
    Erfahrener Benutzer Roboter Experte Avatar von BurningWave
    Registriert seit
    22.12.2007
    Ort
    nahe Stuttgart
    Alter
    23
    Beiträge
    656
    Dann lieber das Display auf I2C umbauen.
    Das geht nicht so einfach, weil die Lib für das Display, die ich benutze, nicht für I²C Ansteuerung programmiert ist (und ich kiene Lust habe alles umzuschreiben).

    Wie würde das mit dem Multiplexer genau aussehen?

    mfg
    meine Homepage: http://www.jbtechnologies.de
    Hauptprojekte: Breakanoid 2 - Sound Maker

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    10.02.2005
    Ort
    eastside, L.E.
    Alter
    46
    Beiträge
    104
    Multiplexer dürfte auch nicht ganz so einfach gehen, weil die SDA-Leitung ein "wired AND" ist, daher ja auch die Pullups auf den Leiungen. Die Leitung muß von allen Teilnehmern am TWI auf Masse gezogen werden können. 'Ein Transistor dazwischen' funktioniert nicht. Es werden sich doch noch zwei andere Ports auf einen Expander auslagern lassen, oder?

    Rajko

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.08.2007
    Ort
    Delmenhorst
    Alter
    32
    Beiträge
    731
    Noch eine Möglichkeit wäre ein zweiter µC, das läuft dann deine LCD Lib drauf, und du hast noch jede menge Pins für zusätzliche aufgaben.

  9. #9
    Erfahrener Benutzer Roboter Experte Avatar von BurningWave
    Registriert seit
    22.12.2007
    Ort
    nahe Stuttgart
    Alter
    23
    Beiträge
    656
    Noch eine Möglichkeit wäre ein zweiter µC, das läuft dann deine LCD Lib drauf, und du hast noch jede menge Pins für zusätzliche aufgaben.
    Das habe ich mir auch schon überlegt, ich bin aber zu dem Schluss gekommen, dass sich das nicht lohnt (ich habe auch nicht mehr so viel Platz auf der Platine).


    Ich denke, dass ich es mal probieren werde, ob es funktioniert, beides parallel zu schalten.
    meine Homepage: http://www.jbtechnologies.de
    Hauptprojekte: Breakanoid 2 - Sound Maker

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.571
    Betreibst du das LCD im 4 oder 8bit Modus? Wenn du den 8Bit Modus verwendest kannst du das Display in den 4bit Modus schalten und sparst dir Pins am µC. Sonnst könntest du z.B. einen kleinen µC (z.B. Attiny) wie oben beschrieben nehmen. Die sind klein und auch günstig. Wenn du auf der Hauptplatine keinen Platz für den Attiny hast kannst du eine kleine Platine zwischen dem Hauptport und dem LCD schalten (mit einem µC).

    MfG Hannes

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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