I2C Bus Adresse ermitteln / scannen

  • Frohe Ostern

Hero_123

Mitglied
17 Sep 2010
79
2
8
Sprachen
C
Hallo TommyB

Vielen Dank für Deine Hilfe!

Die PullUp's sind da (10k jeweils SDA/SCL => 5V); Bus unsauber - vermute ich nicht, da der Datentransfer per I2C vom ATMega8 <=> MCP23017 problemlos funktioniert (Test mit Taster & LEDs). Der /RESET ist auch mit 10k => 5V beschaltet.
Datenblatt des MCP23017 - habe ich - soweit verständlich - durchgelesen; kann aber nichts erkennen, das mir das Verhalten erklären würde.
Naja - solange der MCP23017 aber macht, was er soll ;)

mfg

Hero_123
 

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3.143
58
48
Hennigsdorf
Sprachen
BascomAVR, Assembler
Code:
I2C Scanner
Scanning mit 100k
0 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
1 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
2 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
3 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
4 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
5 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
6 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
7 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Scan Ergebnis 100k
Anzahl I2C - Teilnehmer: 1
Fehlerhaft: 0
Da die Adressen nur bis 7x gehen gehe ich von der Schreibweise >>2
hätte ich auch so interpretiert - dann wäre der gefundene Teilnehmer aber eigentlich 1|0|0|0|0|0|0|R/W...

sowohl der MCP23017 als auch der PCA9555 haben hingegen als Adresse die 0|1|0|0|A2|A1|A0|R/W

dabei wurde die Adresse 0x40 korrekt erkannt, ebenso die Adresse 0x42,
aber es wurde auch 0x43 zurückgemeldet - das ist falsch (wäre die READ Adresse des MCP23017) - wie kann das sein?
Wenn der MCP23017auf Schreibadresse 0x42 eingestellt ist (mit den A-Beinen), sollte er auf 0x42 ACKen (also mit R/W=0=Write), und auf 0x43 (also mit R/W=1=read).
Die Frage ist eher, warum der PCA9555 nicht auf seine Readadresse (0x41) ACKt...
 

Hero_123

Mitglied
17 Sep 2010
79
2
8
Sprachen
C
Hallo LotadaC

Vielen Dank für Deine Hilfe!

Ich habe es nun mehrmals getestet:
- PCA9555 alleine => Anzeige nur 40
- MCP23017 alleine => Anzeige 42 und 43
- PCA9555 und MCP23017 => Anzeige 40, 42 und 43

ich habe das Datenblatt des PCA9555 durchgelesen - keine Ahnung, warum der PCA9555 nicht mit seiner Readadresse (0x41) acknowledged ...:unknw:

bei meinen Programmen funktionieren aber beide Portexpander korrekt - der PCA9555 steuert u.a. ein LCD Display und LEDs an und liest Taster ein, der MCP23017 steuert u.a. eine 6-stellige 7-Segmentanzeige und LEDs an und liest Taster ein ...

mfg

Hero_123
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)