-         

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 39

Thema: I2C Einstieg

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.05.2012
    Beiträge
    511

    I2C Einstieg

    Anzeige

    Hallo Leute,
    ich würde gerne mal in die I2C Technik mit Bascom einsteigen.
    Da ich aber Neuling bin, was dieses Thema angeht, habe ich mal eine Frage : Wie ist das mit der Adresseneinstellung/ wie finde ich heraus, welche Adresse ein IC hat ?? Wie stelle ich sie in Bascom ein ??

    Dann noch eine Frage : Mit welchem Baustein sollte ich anfangen und üben (welcher ist einfacher anzusprechen) ?? Zur Auswahl stehen : LM75, PCF8574 und ST 24C16 BN6 ( 24C16)

    Ich hoffe ihr könnt mir bei dem heißen Wetter helfen und seid nicht alle im Freibad...

    Der Einsteiger

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Die Adresse, die du brauchst steht im Datenblatt des jeweiligen ICs. Oft gibt es auch eine Hardwaremäßige Einstellmöglichkeit der Adresse (der PCF8574 ist so einer). Die Adresse ist im Normalfall 8Bit lang (es gibt glaube ich auch noch 10Bit). Das niedrigste Bit ist das R/W Bit, das entscheidet ob man ein IC beschreiben oder lesen will. Wie das in Bascom geht weiß ich jedoch nicht, da ich in C programmiere. Welches IC du nimmst ist eigenlich egal. Häufig wird der PCF8574, LM75, SAA1064,... verwendet. MfG Hannes

  3. #3
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9
    Hey,

    eine Adresse in Bascom wird einfach als Konstante definiert und dann bei bedarf übertragen.
    Zum Einstieg ist ein PCF8574 die leichtere Wahl, da du dort keine Register etc. einstellen musst, sondern nur das Datenbyte für die IOs....so bekommt man schon mal etwas "Feeling" für den I2C. Als nächstes würde ich dann ein EEPROM nehmen (24C....) und danach den LM75. So steigerst du die "Komplexität" Stück für Stück
    Schau mal hier:

    http://kampis-elektroecke.de/?page_id=421

    Dort habe ich ein fertiges Programm für den I2C und den PCF8574 hochgeladen.
    Da siehst du den Grundlegenden Aufbau einer I2C Kommunikation und wie du erkennen kannst habe ich einmal die Lese und einmal die Schreibadresse als Konstante definiert (geht auch einfacher, indem du einfach die Grundadresse als Konstant annimmst und dann das RW Bit bei Bedarf setzt oder nicht).
    Anschließend wird ein Datenbyte übertragen.
    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

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.05.2012
    Beiträge
    511
    Hallo und danke ihr beiden...
    Das hat mir schon mal geholfen.
    Doch noch eine Frage zur Hardware: Wie soll ich den PCF anschließen ?? Damit meine ich die A0 - A2 (an GND oder 5V ) und die Ein/Ausgänge P0 - P7 ( benötig Pullup oder down oder gar nichts ) ??

  5. #5
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9
    Hey,

    die Pins A0-A2 kannst du unbeschaltet lassen. Die brauchst du nur wenn du an einem Bus mehr als einen PCF8574 hast (damit kannst du einzelnen Bausteine anderen Adressen zuweisen).
    Die Ausgänge vom PCF8574 sind Open-Collector, sprich die schalten nach GND. Wenn du eine LED anschließen willst einfach Vcc->Widerstand->LED->Pin vom PCF
    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

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Die Adresspins würde auf definierte Pegel bringen (GND oder 5V). So kannst du ein Fehlverhalten von Anfang an ausschließen. Ich würde immer die kleinste mögliche Adresse wählen, wenn du mehrere verwendest brauchst du nur die Adresse erhöhen. MfG Hannes

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    17.02.2011
    Beiträge
    11
    Hallo Einsteiger,

    eine sehr gute Beschreibung der Hardware mit Schaltplan findest Du hier:

    http://www.horter.de/i2c/i2c-ausgabe/ausgabe_2a.html

    Gruß Christian

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.05.2012
    Beiträge
    511
    Also Leute, danke für eure Antworten.
    Doch es will noch nicht gehen...

    Hie der Code :

    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    $hwstack = 200
    $swstack = 200
    $framesize = 400
    
    'TWI konfigurieren
    Config Sda = Portc.1
    Config Scl = Portc.0
    Config Twi = 100000                                         'TWI Frequenz
    
    'Adresse des PCF
    Const Pcf8574w = &H40
    Const Pcf8574r = &H41
    
    Dim Bitmuster As Byte
    Bitmuster = 1
    
    'I²C initialisieren
    I2cinit
    
    Do
    
    I2cstart                                                    'TWI Startkondition
    I2cwbyte Pcf8574w
    I2cwbyte Bitmuster
    I2cstop
    
    Wait 1
    
    I2cstart                                                    'TWI Startkondition
    I2cwbyte Pcf8574w
    I2cwbyte 0
    I2cstop
    
    Wait 1
    
    
    Loop
    End
    Zu A0-2 hab ich es so gemacht wie empfohlen: kleinste Adresse -> daraus folgere ich A0-2 auf GND ??

    eine LED an P0 angeschlossen. Müsste die dann nicht leuchten ?? Oder habe ich mal wieder einen Denkfehler ??
    Ich hoffe ihr könnt mir helfen ...

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Welchen Typ hast du genau? Es gibt den PCF8574 und den PCF8574A. Das hier auf Seite 9.
    Die Adresse ist einmal Hex 40 (bzw 41) und einmal Hex 70 (bzw 71).

    MfG Hannes

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.05.2012
    Beiträge
    511
    Ich habe den PCF 8574 P von Reichelt.
    Muss ich INT irgendwie verbinden ??

Seite 1 von 4 123 ... LetzteLetzte

Ähnliche Themen

  1. Problem mit I2C Sensor DRMOD-I2C-RVI
    Von muerzi im Forum Sensoren / Sensorik
    Antworten: 23
    Letzter Beitrag: 22.02.2010, 19:29
  2. I2C Overview für den Einstieg
    Von Vbxler im Forum Elektronik
    Antworten: 0
    Letzter Beitrag: 19.05.2008, 19:30
  3. Problem: Zwei MEGA8 via I2C-Bus koppeln (mit I2C-slave-Lib)
    Von Ulfens im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 11.01.2006, 16:25
  4. *I2C* maximale eingänge per i2c auf 8 digitale Pins
    Von Christian Sturm im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 22.06.2004, 20:44
  5. Grundlegendes zum Einstieg mit I2C / AVR / RN-Control etc.
    Von Trabukh im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 31
    Letzter Beitrag: 20.06.2004, 10:58

Berechtigungen

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