-
        

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

Thema: RNMEGA2560 - BASCOM - I2C problem

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    09.01.2007
    Ort
    Wuppertal
    Alter
    60
    Beiträge
    13

    RNMEGA2560 - BASCOM - I2C problem

    Anzeige

    Hallo zusammen,

    komme mir seit 2 Tagen recht blöd vor. Folgendes Problem:

    SRF02 (Ultraschall Sensor) funktioniert an RN-Minicontrol problemlos.
    Schliesse ich das Teil an RN-Mega 2560 Board (Port d0 und d1) an kommt nichts - die LED auf dem SRF02-Board blinkt nicht. PullUp-Widerstände (an SCL/SDA) sind angeschlossen, 5 Volt Stromversorgung kommen am Sensor an. Schliesse ich den Sensor wieder ans RN_Minicontrol an geht er wieder.

    Hat jemand eine IDEE?

    Danke im VORAUS.

    Gruss

    Wuppi

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,
    hast Du evtl. einen anderen Slave zum Testen (zB.PCF8574) ?

    Du kannst mal den Pegel der Leitungen messen, wenn nix übertragen wird, ob die auch wirklich high sind.

    Sonst weiss ich grad nix, 2560 hab ich (noch) keinen.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    09.01.2007
    Ort
    Wuppertal
    Alter
    60
    Beiträge
    13
    Hallo Linux_80,

    einen neuen Slave (DS1621) habe ich mir gerade besorgt - werde ich morgen mal anschließen. Auf SDA und SCL liegen 4,93 Volt (Eingangsspannung am Board 5,06 Volt - oszi leider nicht vorhanden).

    Was mich wundert ist die Angabe in BASCOM, da wird für SCL Port D7 angegeben. Habe aber im Programm Port D1 konfiguriert. In der def.dat steht auch Port D7 für SCL. Habe def.dat schon mal geändert und neu kompiliert - gleiches Verhalten.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Wenn Du die Hardware verwendest, also kein Soft-I2C, sollte es mit D0 und D1 passen, egal was man sonst angibt.
    Man muss nur die Lib einbinden, damit Bascom das TWI auch verwendet:

    Code:
    $lib "i2c_twi.lbx"          ' we do not use software emulated I2C but the TWI
    Config Twi = 100000         ' wanted clock frequency
    Config Scl usw. braucht man dann nicht angeben.

    Die Angaben in der .dat greifen normalerweise nur, wenn man im Programm nix anderes einstellt, und das Soft-I2C verwendet.
    In meiner .dat passt das mit den Pins (1.11.8.6).

    Läuft das Programm eigentlich durch (und gibts was falsches aus), oder bleibt es irgendwo hängen bei der Abfrage des SRF02 ?

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    09.01.2007
    Ort
    Wuppertal
    Alter
    60
    Beiträge
    13
    Hallo linux_80,

    ich bin ehrlich, den Unterschied zwischen Hard- und Soft-I2C kenne ich nicht.
    Also dazu erstmal ein großes Fragezeichen.

    Die "lib" habe ich nicht eingebunden (sprich im Programm nicht erwähnt).

    Ich benutze Bascom 1.11.8.7 und da stehts "falsch" drin.

    Das Programm läuft durch. Als ergebnis erhalte ich leider nur nullen.

    Das war der Versuch deine Ideen der Reihe nach zu beantworten.

    Gruss

    wuppi

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.11.2005
    Beiträge
    272
    Hallo,

    der Unterschied zwischen Hard und Sotfware ist recht einfach.

    Die hardware macht die ganze Kommuniktaion über ein festverdrahteten Port. Also beim Atmega16 über D.0 und D.1.

    Bei der Software "emuliert" der Atmega diesen port, deswegen kannst du den beliebig an dem Atmega anschließen.

    Deswegen musst du dir erstmal überlegen was du machen willst. HArd oder software.

    Dementsprechendd müssen, wie es linux_80 schon erklärt hat, ein paar zeilen programmcode rein.

    und dann sollte es auch gehen.

    cu arno
    Unser Wissen ist ein Tropfen, unser Unwissen ist wie ein Ozean.
    Sir Isaac Newton

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    09.01.2007
    Ort
    Wuppertal
    Alter
    60
    Beiträge
    13
    Hallo zusammen,

    nach dem mich mein Chef 2 Tage gequält hat nun das.

    Habe einen neuen Slave (DS1621) angeschlossen, mit SoftwareI2C, mit Hardware I2C, ohne Erfolg.

    Anschliessend dann am RNMinicontrol angeschlossen (gleiches Programm (ausser def.dat) - jetzt weiss ich wie warm es ist.

    Vermutlich also ein verdrahtungsfehler.

    Gruss

    wuppi

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    09.01.2007
    Ort
    Wuppertal
    Alter
    60
    Beiträge
    13
    Hallo zusammen,

    habe den I2C-Bus neu verdrahtet und gemessen - keine Unterbrechungen - keine Kurzschlüsse - Pullup´s gegen +5Volt.....alles OK

    hier der Program code:

    Hallo zusammen,

    habe den I2C-Bus neu verdrahtet und gemessen - keine Unterbrechungen - keine Kurzschlüsse - Pullup´s gegen +5Volt.....alles OK

    hier der Program code:

    $regfile = "m2560def.dat"
    $hwstack = 82 '80
    $framesize = 68 ' 64
    $swstack = 68 '44

    $crystal = 16000000 'Quarzfrequenz

    '$lib "i2c_twi.lbx"
    'Config Twi = 100000 ' wanted clock frequency


    ' Printbefehle An Com4
    Open "com4:" For Binary As #4

    Config Scl = Portd.0 'Ports fuer IIC-Bus
    Config Sda = Portd.1


    Dim Device As Byte
    Dim Deviceread As Byte
    Dim Lowtemp As Byte
    Dim Hightemp As Byte

    Device = &H90
    Deviceread = &H91

    I2cinit

    Print
    Print "DS1621 Temperatur"

    Do
    I2cstart
    I2cwbyte Device
    I2cwbyte &HEE
    I2cstop

    I2cstart
    I2cwbyte Device
    I2cwbyte &HAA
    I2cstop

    I2cstart
    I2cwbyte Deviceread
    I2crbyte Lowtemp , Ack
    I2crbyte Hightemp , Nack
    I2cstop

    Print Lowtemp ; ",";

    If Hightemp = &H80 Then
    Print "5";
    Else
    Print "0";
    End If

    Print " Grad Celsius"

    Waitms 3800
    Loop

    End


    wenn ich jetzt das Programm starte bekommen ich zarte 145 Grad angezeigt.
    ohne Config TWI bekomme ich 72 Grad angezeigt. den Sensor abklemmt bekomme ich 72 Grad angezeigt.

    ohne $lib i2c_twi.lbx kommt mir der frost hoch - 0 Grad werden angezeigt.

    hat jemand eine Idee??????????????????

    ich wollte nur einen Ultraschallsensor zur erkennung von Personen die einen Raum betreten einsetzen um das Licht einzuschalten. Wenn das alles nicht geht werde ich wohl oder übel einen ganz normalen TASTER nehmen.

    gruss

    wuppi

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Beim DS1621 muss man nach dem anstossen der Messung erstmal etwas warten, bis der Fertig gemessen hat (0.4 - 1s), sonst kann allesmögliche rauskommen !

    Nach einem Reset (bzw. Spannung einschalten), kommt als erstes immer -60 Grad raus, wenn man zu schnell ausliest.

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    09.01.2007
    Ort
    Wuppertal
    Alter
    60
    Beiträge
    13
    Hallo zusammen,

    da mich jetzt die Forscherwut erwischt hat stelle ich mir (als Neuling in der Technik) eine Frage.

    Wie oft läst sich so ein Chip eigentlich Programmieren?

    Fragenden Gruß

    Wuppi

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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