-         

Ergebnis 1 bis 9 von 9

Thema: AT90S2313 und I2C Bus

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    20.04.2005
    Ort
    Bad Homburg
    Beiträge
    11

    AT90S2313 und I2C Bus

    Anzeige

    Hallo Leute,

    bin neu hier im Forum, habe aber schon langjährige Erfahrungen mit Elektronik (analog und digital, auch große Projekte).

    Zum Einstieg in die Microcontroller-Programmierung plane ich ein Testboard für den AT90S2313 aufzubauen. Habe mich schon im Forum und an anderen Stellen im Internet umgesehen und bin soweit im Bilde.
    Da ich mich perspektifisch auch mit dem I2C-Bus beschäftigen möchte, besteht nun das Problem, wie dieser mit dem AT90S2313 realisiert werden kann. Von Haus aus hat dieser Controller keinen I2C-Port.

    Gibt es spezielle Pins, die für diese Funktionalität besonders geeignet sind oder kann prinzipiell jeder Pin eines Ports dafür benutzt werden, die Signale für SDA und SCL zu generieren?

    Sind die Pull-up-Widerstände für SDA und SCL generell vorzusehen oder können diese ggf. entfallen?

    Hat schon jemand Erfahrung (Links?), wie der I2C-Bus in Assembler programmiert wird (z.B. Abfrage der Ports eines PCF8574, Auslesen Daten von einem 24C02, LCD-Display, etc.)?

    Vielen Dank für Eure Hilfe!

    Finor

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.09.2004
    Ort
    Darmstadt
    Alter
    47
    Beiträge
    166
    Hallo Finor,

    man kann im Prinzip jeden freien IO-Pin für die SDA- und SCL-Signale verwenden. Allerdings musst Du Dich dann um die Umsetzung des I2C-Protokolls selbst kümmern. Es ist m.E. besser, wenn Du einen Controller verwendest, der I2C (TWI) hardwareseitig unterstützt. Dies macht dann zwar immer noch Programmieraufwand, aber der Controller hat dann die Chance, während der Datenübertragung andere Dinge tun zu können, z.B. Timer auszuwerten.

    Die Pullups sind Pflicht, weil Teil der Spezifikation.

    Habe neulich mit einem DS1621 (Temperatursensor) gespielt. Hatte dafür auch schon ein Assembler-Programm gefunden, das ohne Hardwareunterstützung auskommt. Habe leider die Quelle nicht zur Hand, aber im Bereich mikrocontroller.net sollte sich was finden lassen.

    Gruß, Achim.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.02.2005
    Alter
    29
    Beiträge
    470
    So schwer ist das Schreiben auch nicht ( Software I²C ):
    Code:
    $regfile = "2313def.dat" .
    $crystal = 10000000
    Config Portb = Output
    $sim
    Config Sda = Portd.5
    Config Scl = Portd.6
    Config I2cdelay = 10
    
    Dim Adres As Byte
    Dim Value As Byte
    Dim Rc As Word
    Dim Rch As Byte
    Dim Rcl As Byte
    Dim Er As Byte
    Dim Pos As Word
    
    Declare Sub Write_eeprom(byval Adres As Word , Byval Value As Byte )
    
    
    Const Addressw = &HA0                                       ' Addresse WRITE
    
    
    'Deine Codes
    
    
    
    
    
    
    '--------------------------- I²C Schreiben-----------------------------------
    
    Sub Write_eeprom(byval Adres As Word , Byval Value As Byte )
        I2cstart
        I2cwbyte Addressw
        I2cwbyte Adres
        I2cwbyte Value
        I2cstop
    End Sub

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.08.2004
    Ort
    Großbardorf
    Alter
    30
    Beiträge
    674
    So schwer ist das Schreiben auch nicht ( Software I²C ):
    für den Master hast du wohl recht, aber einen I²C-Slave in Software nachzubilden ist um einiges anspruchsvoller

  5. #5
    Neuer Benutzer
    Registriert seit
    28.12.2004
    Ort
    Fürth/Nürnberg
    Alter
    49
    Beiträge
    1
    Moin,

    I2C Slave für den 2313 :

    http://www.mcselec.com/i2cslave.htm

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    20.04.2005
    Ort
    Bad Homburg
    Beiträge
    11

    DANKE!

    Hallo Alle,

    vielen Dank für die prompte Hilfe!


    Finor

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    27.04.2005
    Beiträge
    5
    Zitat Zitat von hoesslin
    Moin,

    I2C Slave für den 2313 :

    http://www.mcselec.com/i2cslave.htm

    Hallo zusammen,
    wenn ich das da im Link richtig sehe, ist es so, dass die da einen Teil des Codes zeigen und den Rest muß man dann für 4,95 euro erwerben?

    Ich bin nämlich auch auf der Suche nach einen I2C-slave üb. AVR.
    Eigentlich tun's die PCF8574 / ...A auch, aber da kommt man nur auf max. 16 adressen und damit auf 128 I/O pins.
    Für den Anfang würde es ja auch FAST für meine Modelleisenbahn reichen. Aber so richtig weit komm ich damit nicht wirklich.

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    dieser code für bascom, der gegen entgeld angeboten wird ist fehlerbehaftet und läuft nicht einwandfrei. aber irgendwo hier im forum wurde schon mal so etwas realisiert. ich weiss nur nicht mehr wo. hatte mich vor 2 monaten mit dem thema befasst. bin dann aber auf winavr-c umgestiegen. in winavr-c gibt es eine teillösung für dein problem.
    mfg pebisoft

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    27.04.2005
    Beiträge
    5
    Auch nicht schlecht. Verkaufe Datenschrott für 4,95 lol.

    Naja ich hab mich mal hier gesucht und auch in anderen Foren.
    So wie's aussieht gibt’s keine vernünftige Lösung, den 2313 als Slave anzusteuern.
    Aber das ist für mich nicht ganz so schlimm. Ich steuere ja über die COM und da mache ich einfach noch einen Bus auf der COM2 auf. Da hätte ich schon mal 256 IO Ports.

    Man könnte ja sogar mit den Bus an der COM2 zwischen verschiedenen Busse an der COM1 switchen. Vielleicht mit Relais???
    Wow, dann hat man ganz viele IO Ports.

Berechtigungen

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