- Akku Tests und Balkonkraftwerk Speicher         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 24

Thema: Problem mit I2C Sensor DRMOD-I2C-RVI

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    06.02.2010
    Ort
    Leoben
    Alter
    35
    Beiträge
    14

    Problem mit I2C Sensor DRMOD-I2C-RVI

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo Liebe Community

    Habe einen Drucksensor DRMOD-I2C-RV1 von der Firma Hygrosens und bekomme keine Daten

    Datenleitung und Clockleitung sind jeweils über 1,9kOhm an +5V

    Hier mein Code:

    Code:
    $programmer = 1 
    $regfile = "M32def.dat" 
    $crystal = 16000000 ' frequency used 
    $baud = 9600 
    $lib "i2c_twi.lbx" ' Für Hardware TWI 
    
    Config Twi = 400000 ' Init TWBR und TWSR 
    
    ' TWI gleich einschalten, das macht Bascom ansonsten erst beim I2CStart ! Twcr = &B00000100 ' nur TWEN setzen 
    
    Dim Druck As Word 
    Dim Msb_druck As Byte 
    Dim Lsb_druck As Byte 
    
    ' Startausgabe 
    
    Do 
    
      I2cinit 
      I2cstart 
      I2cwbyte &HF1 
      I2crbyte Msb_druck 
      I2crbyte Lsb_druck
      I2cstop 
      Print Msb_druck 
      Print Lsb_druck 
      Waitms 2000
    
     Loop 
    End
    Datenblatt ist hier .

    Spezifikationen zur Übertragung sind hier

    Wenn ich Msb_Druck und Lsb_Druck ausgebe steht nur "30 0D 0A" also "0" in dez.

    Wenn ich unterdruck am anschluß des Sensors anlege ändern sich die werte nicht. (MSB_Druck und LSB_Druck)

    Enthält der Code einen Fehler?

    Ich hoffe ihr könnt mir helfen!

    mfg [/url]

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.070
    Versuche einmal als Adresse 0x78 (&h7
    Im DB steht
    Die Standard-Adresse des Bausteins ist 0x78,
    unter dieser Adresse ist der Baustein immer anzusprechen.
    Die Adresse ist als 7 bit Adresse zu
    verstehen, linksbündig und mit maskiertem R/WBit
    lautet die Read-Adresse 0xF1.
    Zusätzlich kann bei der Konfiguration im Werk eine
    zweite Adresse programmiert werden, unter
    welcher der Drucksensor angesprochen werden
    kann.
    Ab der Adresse 0x78 (7 bit Adresse), können 2
    Bytes gelesen werden.
    MfG Hannes

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    06.02.2010
    Ort
    Leoben
    Alter
    35
    Beiträge
    14
    Hallo

    Das hab ich auch schon probiert.

    Was bedeutet aber nun 0xF1 ???

    0x78 ist ja 7Bit

    Eine Adresse besteht meines Wissen aber aus 8 Bit.
    Im Db steht mit 1 kan gelesen und mit 0 geschrieben werden.

    0x78 = 1111000
    0xF1 = 11110001

    In der Spezifikation zur Übertragung ist auch der genau ablauf zu finden.
    Da versteh ich nicht wie ich nach dem ich die Slaveadresse geschrieben habe das "Ack" vom Slave abfangen soll. Hab gedacht das geht nur bei "I2Crbyte" !?!

    Fragen über Fragen

    mfg

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    09.05.2007
    Beiträge
    202
    Hallo,

    klar, du brauchst eine 8-Bit-Adresse. Probier mal als Adresse 0xF0. Damit sollte es bei Bascom eigentlich gehen.
    Du kannst nach dem
    Code:
    I2cstart
    I2cwbyte &HF0
    ja abprüfen, ob ein ACK vom Slave gekommen ist. Hierzu einfach die Variable Err auswerten:
    Code:
    If Err = 0 Then...
    Gruß, Stefan

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    06.02.2010
    Ort
    Leoben
    Alter
    35
    Beiträge
    14
    Danke.

    Werds am Abend probieren.

    Meldet sich der Slave immer mit "ACK" bevor er die ersten Daten sendet (und alles funktioniert), oder ist das eine Sonderheit dieses Sensors?

    thx für deine Hilfe!

    mfG

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    09.05.2007
    Beiträge
    202
    Hallo,

    die Slaves "lauschen" ja auf dem Bus. Wenn nach der Startsequenz die Adresse des Slaves gesendet bestätigt der "ich bin hier". Eventuell muss man das Auslesen der Werte noch anpassen, aber zuerst solltest du die richtige Adresse haben.

    Du kannst den Bus auch mit dem Scanprogramm aus den Bascom-Samples überprüfen. Da wird auch die ERR-Variable ausgewertet:
    Code:
    '------------------------------------------------------------------
    '                    (c) 1995-2007 MCS
    '                      i2cscan.bas
    'purpose : scan all I2C addresses to find slave chips
    'use this sample in combination with  twi-slave.bas
    'Micro: Mega88
    '------------------------------------------------------------------
    $regfile = "M88def.dat"       ' the used chip
    $crystal = 8000000            ' frequency used
    $baud = 19200                 ' baud rate
    
    Dim B As Byte
    
    Config Scl = Portc.5          ' we need to provide the SCL pin name
    Config Sda = Portc.4          ' we need to provide the SDA pin name
    
    'we use the TWI pins of the Mega88
    $lib "i2c_twi.lbx"            ' we do not use software emulated I2C but the TWI
    
    Print "Scan start"
    For B = 0 To 254 Step 2       'for all odd addresses
      I2cstart                    'send start
      I2cwbyte B                  'send address
      If Err = 0 Then             'we got an ack
         Print "Slave at : " ; B ; " hex : " ; Hex(b) ; " bin : " ; Bin(b)
      End If
      I2cstop                     'free bus
    Next
    Print "End Scan"
    End
    Gruß, Stefan

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    30.12.2008
    Ort
    Essen
    Alter
    65
    Beiträge
    358
    @StievieL
    Finde deine Beiträge speziell zu I2C schon ziemlich professionell !!
    Habe meine I2C Kommunikation auch aus deinen Beiträgen abgeleitet.
    Weiter so.
    Besten Dank für deine Erklärungen !!

    Roland

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    09.05.2007
    Beiträge
    202
    Hallo Roland,

    danke für die Blumen. Jetzt muss ich nur noch den Sensor von muerzi zum Laufen bekommen
    Gruß, Stefan

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    09.05.2007
    Beiträge
    202
    ...da keine Antwort mehr kommt, scheint es jetzt zu funktionieren. Oder er hat die Lösung in einem der anderen Foren bekommen, in denen er das Problem auch gepostet hat...
    Gruß, Stefan

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    06.02.2010
    Ort
    Leoben
    Alter
    35
    Beiträge
    14
    Hallo an alle und DANKE für eure Hilfe.

    Besonderen dank an StevieL.

    Da ich in den letzten Tagen sehr beschäfftigt war hatte ich leider keine Zeit eine Rückmeldung zu geben.

    Hab den Sensor und die mikrocontroller nicht bei mir zuhause sondern in der Bastelwerkstatt bei einem Freund, deshalb konnte ich nocht nichts ausprobieren!

    Werde aber Dienstag oder spätestens Donnerstag probieren und sofort bericht erstatten!

    Köpft, Hängt oder Steinigt mich (wie auch immer) das ich das selbe Problem ZUVOR schon in anderen Foren gepostet habe!

    Wird es hier nicht gerne gesehen?

    mfg und nochmals VIELEN VIELEN DANK!

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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

12V Akku bauen