I2C Problem

  • Hi Leuts,,

    ich versuche mich so langsam mal mit dem RasPi.

    Ich habe versucht ein MCP23017 über ein Steckboard an den Pi zu bringen. Was aber schon im Softwareteil scheitert.

    Die Treiber und die Blacklist sind soweit bearbeitet.

    Wenn ich jetzt i2cdetect -y 0 ausführe kommt:

    (es ist ein Pi B rev 1 mit 256 ram, also muss ich ja die "0" verwenden)

    root@raspberrypi:~# i2cdetect -y 0

    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
    10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
    20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
    30: 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f
    40: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
    50: 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f
    60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
    70: 70 71 72 73 74 75 76 77
    root@raspberrypi:~#

    mache ich i2cdetect -y 1

    kommt das.

    root@raspberrypi:~# i2cdetect -y 1
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --
    root@raspberrypi:~#

    Der Chip wird aber nicht erkannt.

    Tschuldigung für die Frage, aber ich finde darauf nirgens eine passende Antwort.

    cu C-3po

    cu C-3po


  • Hi Leuts,,
    ...
    Ich habe versucht ein MCP23017 über ein Steckboard an den Pi zu bringen.
    ...

    Tach auch ...

    wie? Also was warum wo und wie angeschlossen? (Bitte Fritzing, Skizze, ...).



    ...
    (es ist ein Pi B rev 1 mit 256 ram, also muss ich ja die "0" verwenden)
    ...

    Wer sagt das?


    ...
    Tschuldigung für die Frage, aber ich finde darauf nirgens eine passende Antwort.

    cu C-3po

    Welche Frage? Ich finde nirgends in Deinem Post eine passende Frage.

    cu,
    -ds-

  • Hi,

    zb, in diesem How To:

    http://www.raspberrypi-spy.co.uk/2013/07/how-to…erry-pi-part-1/

    So in der Art.

    und dort steht unter anderem auch:

    in /etc/modules die beiden Module eintragen:

    i2c-bcm2708
    i2c-dev

    in der /etc/modprobe.d/raspi-blacklist.conf die beiden Zeilen mit # deaktivieren

    #blacklist spi-bcm2708
    #blacklist i2c-bcm2708

    apt-get install python-smbus i2c-tools ist installiert


    If you’ve got a Rev 2 Pi then type the following command : i2cdetect -y 1

    also der mit 512 Ram ohne jtag Bus.

    If you’ve got a Rev 1 Pi then type the following command : i2cdetect -y 0

    meine ausführung 256 Ram mit jtag port.

    also sollte das Ergebnis ja so aussehen:

    i2cdetect -y 0
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --

    aber es sieht halt so aus:

    i2cdetect -y 0
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
    10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
    20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
    30: 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f
    40: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
    50: 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f
    60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
    70: 70 71 72 73 74 75 76 77

    bzw. der andere i2c Bus

    i2cdetect -y 1
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --

    jetzt könnte man sagen der Chip wird nicht erkannt. ok -> habe erst mal noch kein anderen zum Testen da (i2c Uhr ist aber schon bestellt)

    Aber warum stehen da überall die Chip Adressen drin und nicht wie erwartet eine 00. ?

    Wie sieht das bei euch aus wenn ihr den 2ten Bus abfragt?

    PS: 1wire und Steuerung von 433 mhz Steckdosen gehen.

    cu C-3po

    cu C-3po

    Einmal editiert, zuletzt von C-3po (7. Januar 2014 um 08:17)

  • Wer sagt das?

    Bin erst seit letztem Jahr dabei und bin mit dem Modell B eingestiegen. Gab es ein Modell B mit 256MB RAM?

    Sofern ich das richtig verstanden habe, ist Modell A 265MB = Version 1 und Modell B 512MB = Version 2. Für Version 1 verwendet man sudo i2cdetect -y 0 und für Version 2 sudo i2cdetect -y 1.
    Quelle: http://learn.adafruit.com/using-the-bmp0…-the-pi-for-i2c

    Mit meinem Modell B und meinem SHT21-Sensor lief das soweit einwandfrei :)

    Einmal editiert, zuletzt von bangoperator (7. Januar 2014 um 08:28)

  • Moin moin,


    Zitat


    (es ist ein Pi B rev 1 mit 256 ram, also muss ich ja die "0" verwenden)

    Wer sagt das?

    Tut mir leid, mein Fehler :blush: ... Du hast natürlich recht. Rev.1 ist i2cdetect -y 0 ...
    Keine Ahnung wie ich auf -y 1 gekommen bin. Durchhänger, Sekundenschlaf, ;) ... ?

    Trotzdem wäre die Verschaltung sehr hilfreich ...

    ciao,
    -ds-

    • Offizieller Beitrag

    Moin, Moin C-3po,

    als erstes Willkommen im Forum ;)
    Eines kann ich dir schon zu Anfang sagen, nach der selben Anleitung habe ich auch einen MCP23017 Angeschlossen. Da du einen RPI Rev. 1 mit 256mb Ram hast ist "i2cdetect -y 0" schon korrekt. Das bei dir alle Adressen gesetzt sind schließt auf einen falschen Anschluss hin. Das "i2cdetect -y 1" bei dir nichts ausgibt ist soweit okay.

    Am besten machst du mal ein Foto deiner Schaltung oder Zeichnest einen Schaltplan. Zusätzlich kannst du mal den Befehl "lsmod" Ausführen, mit diesem kannst du sehen ob das Modul richtig geladen ist. Wenn "i2c_bcm2708" dort auftaucht ist das schon mal korrekt.
    Am besten guckst du noch mal was auf deinem Chip steht, vom MCP23017 gibt es auch noch eine SPI Ausführung, diese heißt MCP23S17. Äußerlich sehen beide identisch aus, von der Handhabung sind Sie es aber nicht.

    bangoperator:

    Es gibt:

    Revision 1: Hat 256mb Ram
    Revision 2: Hat 256mb Ram, neu sind Befestigungslöcher an der Platine und einige Verbesserungen
    Revision 2 mit 512mb Ram: identisch mit Revision 2 hat nur mehr Ram

    Ein Pi mit 512mb Ram ist immer Revision 2.


    Gruß trek_star

    Einmal editiert, zuletzt von ps915 (7. Januar 2014 um 15:22)

  • Hi,

    Der Schaltungsaufbau ist genau wie auf dem Bild im Post 3, nur habe ich die LEDs und den Taster erst mal weggelassen.(Es soll ja auch eine Ansteuerung für ein LCD werden)

    Mir ging es hierbei überhaupt erst mal darum zu sehen wie sich der Chip (ja es ist der richtige "0" nicht "S") am Raspi anmeldet.

    Das Prob. ist ja aber auch, das auch ohne Beschaltung der i2c Pins, dieses Ergebnis ausgegeben wird. Da müsset doch überall 00 drin stehen.

    cu C-3po

    cu C-3po

    Einmal editiert, zuletzt von C-3po (7. Januar 2014 um 12:11)

  • Vielleicht mal drei Dinge:

    1) interessant wäre Dein Schaltungsaufbau. Wie der in der Anleitung aussieht interessiert nicht. das hat den Vorteil, dass Du Deine schaltung noch mal genauer anschauen musst und dabei evtl. schon das Problem entdeckst. Dass die Schaltung aus dem Tut funktioniert, daran zweifelt keiner. Aber irgendwo hast du eine Abweichung, sonst würde es bei Dir ja auch gehen.

    2) Überprüf mal, ob nicht ein Problem mit den Massen vorliegt

    3) Schau mal bitte ins Datenblatt - hat der MPC, den Du einsetzt, Pullups?


    ciao,
    -ds-


  • 3) Schau mal bitte ins Datenblatt - hat der MPC, den Du einsetzt, Pullups?
    -ds-

    I2C ist normalerweise ohne pullups (Ausnahmen bestätigen die Regel)

    also entweder pullup Widerstände nachrüsten 2x 4,7k Ohm, oder die vom PI einschalten ! (ersteres finde ich sicherer.

    Dem MCP fehlt an VDD(Vcc) und VSS(GND) ein Abblockkondensator 100-470 nF gehört sich an alle Chips immer recht dicht an den Pins !

    Es gibt auch Steckbretter dort sind die roten und blauen Versorgungslinien nicht vollständig durchgezogen, also auch mal ohne Spannung ohmsch messen ! oder am Chip auf Spannung prüfen.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Einmal editiert, zuletzt von jar (7. Januar 2014 um 12:49)

  • Hi Leuts,

    ich habe mir jetzt noch ein neuen Raspi besorgt.

    Also es geht bis jetzt immer noch nicht mit dem Pi B (rev 1) der mit 256 Ram.

    Dort kommt nach wie vor :

    i2cdetect -y 0
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
    10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
    20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
    30: 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f
    40: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
    50: 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f
    60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
    70: 70 71 72 73 74 75 76 77

    i2cdetect -y 1
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --

    Diesen muss ich ja aber mit i2cdetect -y 0 ansprechen.

    mit den beiden Pi B (rev 2) dagegen ist alles io.

    Aber selbige ausgaben:

    i2cdetect -y 0
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
    10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
    20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
    30: 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f
    40: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
    50: 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f
    60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
    70: 70 71 72 73 74 75 76 77

    i2cdetect -y 1
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --

    bis auf die 20 weil ich diese ja mit i2cdetect -y 1 ansprechen muss.
    Also ist beim rev 1 warscheinlich der i2c bus defekt.

    Diese Ausgabe konnte ich auch eingrenzen:

    i2cdetect -y 0
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
    10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
    20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
    30: 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f
    40: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
    50: 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f
    60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
    70: 70 71 72 73 74 75 76 77

    Das wird bei mir durch WiringPi verursacht. habe mehrfach das System neu installiert und vor der installation von WiringPi war die Ausgabe auf allen 3 Pi's

    i2cdetect -y 0
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --

    Achja, an der Schaltung lag es nicht.

    Also bis auf die seltsame Ausgabe ist das Problem behoben

    Thx an alle.

    cu C-3po

  • Nachdem Du auch 1wire verwendest, lies mal folgenden thread, das sollte helfen:

    orca30
    16. Dezember 2013 um 09:01

    Gruß, mmi

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!