- LiFePO4 Speicher Test         
Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 49

Thema: TWI-slave ohne lib

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    29.12.2004
    Ort
    Bayern
    Alter
    44
    Beiträge
    90
    Anzeige

    Praxistest und DIY Projekte
    Hallo zusammen,
    ich kann mich oberen Meinungen nur anschließen...
    Hab auch keine Slave lib. etc. und geht bei mir auch mit allem drum und dran...
    Und unter "Bastlern": Wenn ich einen TWI-Slave brauche, spielen dann die 1,50 € eine Rolle die zwischen einem AT90s, einem Tiny oder einem AVR mit Hardware-Twi liegen?
    Und interessierte finden (fast) immer was, für dieses (fast) dachte ich eigentlich sei dieses Forum.

    MFG RP

  2. #12
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Nö,die Kosten sind eher untertgeordnet solange man keine Massenproduktion anstrebt.
    Was aber manchmal ne Rolle spielt ist die Größe.

    90er und Tinys bekommt man auch als 8 Polige,die Megas fangen erst bei 28 Poligen Gehäusen an was auch als SMD manchmal schon zuviel platz kosten kann.
    Da wünsch ich mir noch nen 8 oder 14 Poligen Mega.
    Mal sehen,kommt vieleicht doch noch.
    Gruß
    Ratber

  3. #13
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.04.2005
    Ort
    Bayern
    Alter
    37
    Beiträge
    336
    @linux_80
    wie kann ich denn mit deinem Programm etwas über die RS232 Schnittstelle senden, damit ich sehe ob ich was empfangen kann?
    Der Master sendet über die RS232 immer Error : 1

    PS: also hab ich mir die Lib umsonst gekauft so wie ich das verstehe

  4. #14
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Der Testaufbau für die oberen Programm ist dieser:

    PC -> RS232 -> 1.Mega -> TWI -> 2.Mega -> anzeige auf LEDs

    Wenn ich dem 1.Mega zahlen über RS232 eingebe, sendet dieser den Wert über TWI an den 2.Mega, dieser zeigt den Wert dann über PortD an den LEDs an, 8 Bit.
    Beim Master wird noch ein Errorcode über RS232 ausgegeben, damit man sieht ob er den Wert senden konnte. 0 - OK, 1 - Fehler.

    Was willst Du genau bauen, evtl. bekommen wir da was zusammen ?

    schaumamoi

  5. #15
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.04.2005
    Ort
    Bayern
    Alter
    37
    Beiträge
    336
    ich möchte später mal einen LCD und eine Tastatur an dem 2. atmega dran hängen und dies dann an den 1. atmega senden oder auch von diesem empfangen.
    Jetzt will ich nur einmal eine Verbindung zwischen den wei atmega32 herstellen und dies irgendwie sichtbar machen.
    Also wenn er mir error 1 sendet dann ist ein fehler aufgetreten.
    Ich weis aber nicht was ich noch falsch mache.
    Ich habe die zwei Atmega32 nach der Grundbeschaltung miteinander verbunden. http://www.robotikhardware.de/bilder...stepmega16.gif
    Außerdem hab ich dein Programm auf atmega32 umgeschrieben und den PortD auf PortA
    Das Byte B hab ich einfach mal auf 200 gesetzt damit ich nichts über die RS232 eingabe falsch machen kann. Das müsste doch so funktionieren oder?

    Master:
    Code:
    ' TWI Testprogramm aus der Hilfe (abgespeckt)
    ' mit PCF8574
    
    'The chip will work in TWI/I2C master mode
    'Connected is a PCF8574 8-bits port extender
    
    $regfile = "M32def.dat"                                     ' the used chip
    $crystal = 16000000                                         ' frequency used
    $baud = 9600                                                ' baud rate
    
    $lib "i2c_twi.lbx"                                          ' we do not use software emulated I2C but the TWI
    
    I2cinit                                                     ' we need to set the pins in the proper state
    
    Config Twi = 100000                                         ' wanted clock frequency
    
    Dim B As Byte
    Print "TWI master"
    Do
      B = 200
      I2csend &H40 , B                                          ' send the value
      Print B ;
      Print " Error : " ;
      Print Err                                                 ' show error status
    Loop
    End
    Slave:
    Code:
    ' TWI-slave test
    ' zum simulieren eines PCF8574
    
    $regfile = "m32def.dat"                                      ' the used chip
    $crystal = 16000000                               ' frequency used
    $baud = 9600
    
    Config Porta = Output                             ' kopletter PortD als Ausgang
    
    Dim Twi_status As Byte
    Dim Twi_data As Byte
    
    Declare Sub Twi_init_slave
    Declare Function Twi_wait() As Byte
    
    Twi_data = 0
    Call Twi_init_slave                                         ' TWI aktivieren
    
    ' Hauptschleife
    Do
        Twi_status = Twi_wait()
        If Twi_status = &H80 Then
            Porta = Twi_data                          ' Daten auf PortD ausgeben
    
        End If
    
    Loop
    
    End
    
    ' Unterprogramme
    
    ' TWI als slave aktivieren
    Sub Twi_init_slave
        Twsr = 0                                                ' status und Prescaler auf 0
        Twdr = &HFF                                             ' default
        Twcr = &B00000100                                       ' erstmal nur TWI aktivieren
        Twar = &H40                                             ' Slaveadresse setzen
        Twcr = &B01000100                                       ' dann ACK einschalten
    End Sub
    
    ' schauen ob was gekommen ist, Status zurückgeben, Daten in globale variable
    Function Twi_wait() As Byte
        Local Twcr_local As Byte
        Twi_wait = &HF8
        ' warten bis TWINT gesetzt ist
        Twcr_local = Twcr And &H80
        If Twcr_local = &H80 Then
            Twi_data = Twdr                                     ' Daten sichern
            Twi_wait = Twsr And &HF8                            ' status zurückgeben
            Twcr = Twcr Or &B10000000                           ' TWINT löschen, erzeugt ACK
        End If
    
    End Function

  6. #16
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.04.2005
    Ort
    Bayern
    Alter
    37
    Beiträge
    336
    jetzt funktionierts ich hab im compiler die I2C SLC und SDA Port eingestellt. Jetzt müsste ich halt nur noch vom Slave aus senden können. brauch ich die zwei Pullups an SDA und SCL auch?

  7. #17
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Die Pullups insgesamt einmal pro Leitung, egal wo.

    Funktionierts mit der Lib oder mit dem Testprogramm ?

    Wenn der Slave senden soll, muss man in Twi_wait() nur den richtigen Status abfragen und darauf reagieren, dH. mind. ein Byte zurücksenden.
    Jetzt wird nur das angekomme Byte gesichert.

  8. #18
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.04.2005
    Ort
    Bayern
    Alter
    37
    Beiträge
    336
    Ich habe dein Programm hergenommen und das funktioniert.
    Wie geb ich da den Status in Twi_wait ein?
    Was muss ich da im Master eingeben damit der empfangen kann?
    Gibt es da auch gute Bücher oder im Internet Hilfethemen wo man das etwas nachlesen kann, denn ich steige in dieses Gebiet erst ein.

  9. #19
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Du kanst Dir die Datenblätter von Atmel angucken, zuerst die des Mega32, dann gibts ein paar AppNotes und zwar u.a. AVR311.

    guckst Du hier:
    http://www.atmel.com/dyn/products/ap...?family_id=607
    dann nach TWI suchen, und PDF und Zip runterladen und aufsaugen
    Für Bascom dann etwas umbauen, denn die Beispiele sind in C und ASM, das sollte aber nicht das Problem sein.

  10. #20
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.04.2005
    Ort
    Bayern
    Alter
    37
    Beiträge
    336
    ob mir diese datenblätter von atmel etwas helfen weis ich noch nicht. C sieht ja wieder ganz anderst als Bascom aus. Findest du dass das AVR Lehrbuch von Roland Walter einige Informationen enthält, die mir weiter helfen können? ich hab ja schon das AVR Risk Mikrokontroller, doch da steht nicht viel über TWI drin.

Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test