- 3D-Druck Einstieg und Tipps         
Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 34

Thema: Pullups, I2C und das RNBFRA_1.2 Board

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    21.05.2004
    Alter
    41
    Beiträge
    50
    Anzeige

    Praxistest und DIY Projekte
    ok, soeben kontrolliert laut rnbfra doku seite 19. alle jumper stimmen. aum bus is nix angeschlossen, geht trotzdem nicht. ich verstehs nicht.....

  2. #12
    Administrator Robotik Visionär Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    5.116
    Blog-Einträge
    1
    Hmm, da fällt mir momentan auch nix mehr ein. Notfalls musst du dir kleines Testprogramm schreiben das die Ports mal im Sekundentakt auf Low / High schaltet und Leitungen ausmessen. Am besten alle PCF´s rausziehen und erts mit dem Controller den Test machen und dann Stück für Stück den nächsten PCF dazu. Ich weiss ja nicht was du gemacht hast, vielleicht hast du irgendwann mal irgendwelche Stecker verwechselt und tatsächlich mehrer I2C-Bausteine gehimmelt.
    Kommt aber selten vor! Es hilft nix, du musst systematisch suchen.
    Außer Software und Jumpern kann es ja sonst nix sein.

  3. #13
    Benutzer Stammmitglied
    Registriert seit
    21.05.2004
    Alter
    41
    Beiträge
    50
    Hallo!

    Ich hab mal drüber geschlafen, hat leider nix gebracht

    Basic kann ich leider nicht wirklich. Ich hab mir was zusammengestoppelt, von dem ich dachte es könnte richtig sein:

    Code:
    $regfile = "m32def.dat"
    
    $crystal = 8000000
    $baud = 9600
    
    Config Scl = Portc.0
    Config Sda = Portc.1
    
    I2cinit
    
    I2cstart
    
    Portc.0 = 1
    Portc.1 = 1
    
    Waitms 1000
    
    Portc.0 = 0
    Portc.1 = 0
    
    Waitms 1000
    
    return
    Erst mal: stimmt das überhaupt?

    Ich hab das dann in den Controller geladen und zw. Gnd und Pin 23 (SDA) Spannung (DC) gemessen. Im sekundentakt wecheslte die Spannung zw. 1,00V und 1,87V.
    Klingt doch schon mal ganz gut würd ich sagen. Das Lichtspiel mit den Leds geht aber natürlich noch lang nicht aufgrund dieser weisheit

    Wie soll ich weiter vorgehen? Bausteine tauschen - welche?

    mfg, Dave

  4. #14
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Hi, Dave !
    Da ist doch noch der CoProcessor mit seinem I2C. Ist der mit der Servo-Ware überhaupt richtig als Slave definiert ? Sonst spuckt uns der in die Suppe. (War der beim ersten LED Test, der ja gefunzt hat vielleicht gar nicht drin oder noch nicht geladen ?)
    Möglicher Versuch: CoProcessor raus
    Möglicher Versuch: Mega32 raus und das Ganze Testen mit dem CoProcessor, (umstecken, Test laden) mußt ja eigentlich auch gehen.

    BASIC: is soweit o.k. ABER !!!
    für 0 u. 1 sind 1 V <> 1.87 V allerdings unbrauchbar. da hats was mit den Pullups
    ich bin auch dran robert mfg

    EDIT: Noch was: Es gibt eine vordefinierte Variable "Err". (=Fehler)
    Nach jedem I2C Befehl abfragen (print)

  5. #15
    Benutzer Stammmitglied
    Registriert seit
    21.05.2004
    Alter
    41
    Beiträge
    50
    Den CoProcessor hab ich gelöscht. Der pfuscht nicht rein. war aber beim ersten Test auch drin.
    Möglicher Versuch: CoProcessor raus
    Gleiches Phänomän: springt zw. 1V und 1,87V herum

    Möglicher Versuch: Mega32 raus und das Ganze Testen mit dem CoProcessor, (umstecken, Test laden) musst ja eigentlich auch gehen.
    Laden geht, aber beim messen hab ich auf der SDA fix: 1,93V und auf er SCL fix 4,97V. Herumspringen tut da nix mehr.

    Die Pullups sollten doch schon auf dem Board sein....

    code sieht jetzt so aus:
    Code:
    $regfile = "m32def.dat"
    
    $crystal = 8000000
    $baud = 9600
    
    Config Scl = Portc.0
    Config Sda = Portc.1
    
    I2cinit
    
    I2cstart
    
    Portc.0 = 1
    Print Err
    Portc.1 = 1
    Print Err
    
    Waitms 1000
    
    Portc.0 = 0
    Print Err
    Portc.1 = 0
    Print Err
    
    Waitms 1000
    
    return
    Wenn ich das in den CoCOntroller lade tut sich nix im Terminal (eh klar, dürfte keine direkte Verbindung zum MAX32 haben. Wenn ich es in den M32 lade, kommt im Terminal die 0
    sieht so aus:
    0
    0
    0
    0
    usw.

    was kann ich noch machen?
    mfg

  6. #16
    Benutzer Stammmitglied
    Registriert seit
    21.05.2004
    Alter
    41
    Beiträge
    50
    ok, weiter gehts mit der fehlersuche...
    Ich hab jetzt zw. +5V und SDA bzw. zw. +5V und SCL 10k Pullups gehängt. Das ganze einfach am I2C Bus am board (an dieser einen Schwarzen Buchse) angeschlossen.
    Alle Controller rein, und Spannung angelegt.

    Programm geladen, folgendes Passiert:

    Die Lampen blinken natürlich nicht, aber dafür hab ich jetzt andere werte:
    Die SCl bleibt weiterhin Stur auf ihren 4,97V und die SDA springt jetzt im sekundentakt zw. 1,55V und 2,22V hin und her.
    Ist das besser?

  7. #17
    Administrator Robotik Visionär Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    5.116
    Blog-Einträge
    1
    Poste dein Testprogramm! Nimm erst mal alle PCF´s raus! Und teste dann den Pegel. Pullups brauchst du wie gesagt nicht, solange nicht noch mehrere externe I2C Bausteine dran hängen.
    Wenn du Ports richtig ein und ausschaltest dann ist das natürlich nix mit dem Pegel den du da beschreibst, deutet dann auf defekten Baustein hin. Daher erst mal aus IC-Fassung ziehen und dann Stück für Stück vorgehen.

  8. #18
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Hi, für digital sind diese alle Werte unisant, die müssen < 1 / > 4 sein.
    Die eingebauten Pullups werden gesetzt durch: (nach i2cinit)
    PORTC.0 = 1
    PORTC.1 = 1
    Dann gibts noch einen generellen Pullup Mörder, der MUSS Null sein
    SFIOR.2 = 0

    mögliche Messung: Alle I2C Brüder raus (ausser MEGA)
    Wenn NUR der Mega drin ist, (geladen, nur i2cInit und s.o) müssen SCL u. SDA wenigstens ~4 V zeigen (High)
    Ist das nicht, hat's schon was.

    Wenn ja-->
    einmal NUR den LED pcf wieder rein / Messen ?

    VERGISS beim Testen nicht:
    CONFIG I2CDELAY = 5 oder sowas
    (laut Datasheet erforderlicht, und wir wissen nicht, was der Basic treibt)

    nun ? mfg robert

    PS: Bei Print eine Text vor die Zahle dazuschreiben

  9. #19
    Benutzer Stammmitglied
    Registriert seit
    21.05.2004
    Alter
    41
    Beiträge
    50
    das Testprogramm mit dem ich die SDA und SCL leitungen auf high und low schalte is ja etwas weiter oben gepostet.
    und das Testprogramm mit dem ich die Leds zum leuchten bringen will ist dieses hier: (ist direkt von der Roboterboard CD)

    Code:
    '###################################################
    'Testprogramm 1
    'für
    'RoboterNetz Standard-Roboter Board RBNFRA 1.2
    '
    'Aufgabe:
    'Ausgabe über PowerPort per I2C testen indem
    'die vier Led´s im lauflichtartig leuchten
    '
    'Autor: Frank
    'Weitere Beispiele und Beschreibung der Hardware
    'unter http://www.Roboternetz.de
    '###################################################
    
    $regfile = "m32def.dat"
    
    
    Const Writepowerport_adr = &H72                             'I2C Adr PCF 2
    Const Readpowerport_adr = &H73                              'I2C Adr PCF 2
    
    Dim I2cdaten As Byte                                        'Datenbyte aus PCF8574
    Dim I As Byte
    
    $crystal = 8000000                                          'Quarzfrequenz
    $baud = 9600
    
    Config Scl = Portc.0                                        'Ports fuer IIC-Bus
    Config Sda = Portc.1
    
    
    I2cinit
    
    '******** Diese 4 Befehle sind nur ab RNBFRA Version 1.2 (nicht in V 1.1)
    ' notwendig und bzw. möglich (erweiterte Energiesparfunktion und LED´s)
    ' Bei Board 1.1 bitte auskommentieren oder löschen
    
    config  I2CDELAY = 5
    
    I2cstart
    I2cwbyte &H74                                               'Schreibbefehl an PCF3 schicken
    ' Led´s ein ,Motorendstufen ein, Port-Peripherie ein, RBN-Bus Sleep Modus aus (also PeripherieAktiv)
    I2cwbyte &B00000010                                         'Datenbyte an PCF3
    I2cstop
    '*********
    
    I = 0
    I2cdaten = 1
    
    Do
       I2cdaten = I2cdaten * 2
          If I2cdaten > 16 Then I2cdaten = 1
       I2cstart
       I2cwbyte Writepowerport_adr                              'Schreibbefehl an PCF schicken
       I2cwbyte I2cdaten                                        'Datenbyte an PCF
       I2cstop
       Incr I
    
    Waitms 100
    
    Print "hallo"
    
    Loop
    
    End
    Pullups raus, alle PCFs raus, Testprogramm (für die Pegel - nicht das für die Leds) ist noch im M32:
    Keine der 4 Leds leuchtet (logisch)
    SCL: 4,97V
    SDA: 1,25V bzw. 2,41V - im Sekundentakt

    Wenn du Ports richtig ein und ausschaltest dann ist das natürlich nix mit dem Pegel den du da beschreibst, deutet dann auf defekten Baustein hin.
    Schalte ich denn mit diesem Programm die Ports richtig ein und aus, oder mach ich da was falsch?

  10. #20
    Benutzer Stammmitglied
    Registriert seit
    21.05.2004
    Alter
    41
    Beiträge
    50
    mögliche Messung: Alle I2C Brüder raus (ausser MEGA)
    Wenn NUR der Mega drin ist, (geladen, nur i2cInit und s.o) müssen SCL u. SDA wenigstens ~4 V zeigen (High)
    Ist das nicht, hat's schon was.
    gut:
    alle pcf raus, cocontroller raus, das geladen:
    Code:
    $regfile = "m32def.dat"
    
    $crystal = 8000000
    $baud = 9600
    
    Config Scl = Portc.0
    Config Sda = Portc.1
    
    I2cinit
    SCL: 4,97V
    SDA: 2,41V

    was nun?

Seite 2 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress