hi ich habe leider lange gebraucht um auf den fehler aufmerksam zu werden, daher erstmal hier gleich der hinweis, der ähnliches problem hat. der mcp23s17 (spi) genauso wie der mcp017 (i²c) wenn er ab device 4 adressiert wird, muss separat explizit angesprochen werden - allerdings gilt das angeblcih für neuere chips nicht mehr und der fehler wurde hw mässig auch behoben.. wer kann sagen, wie man das erkennt auf dem chip, wann sich der neue chip mit A2=1 A1=0 A0=0 auch anfangs mit der im datenblatt genannten 0 adresse erstmal ansprechen lässt, solange man ihn nicht expizit mitteilt, dass IOCON.HAEN=1 gilt. bei den alten chips muss man das über seine >= A2=1 adresse mitteilen, denn auf 0 reagieren die alten serien im gegensatz nicht darauf. attached hinweis mc ( alt ich weiss - aber anscheinend macht keiner >= A2=1 zumindest konnte ich keinen hinweis im forum finden. meine frage: wie unterscheide ich neue und alte chips? was sagt 14252AP jahrgang 2014 25 kw ? ab wann ist der fehler nicht mehr? oder ist der fehler hw mässig noch nicht behoben, jedenfalls die im bild genannten habe ich explizit mit der adresse >=4 ansprechen müssen, um ihn mitzuteilen, dass IOCON.HAEN=1 gilt.. lg rudi ;-)
Na super, entwickle gerade eine Platine damit... Alles unklar ? Ich nehme also ID=3...
Bernd Rüter schrieb:
> ..Ich nehme also ID=3...
A2: 0 (GND )
A1: 1 ( pull up )
A0: 1 ( pull up )
-------
hw: 3
lässt sich der mcp23 erst mal ansprechen,
standard ist IOCON.HAEN = 0
heist, alles was unter 4 ist wird angesprochen.
wäre er
A2: 1 ( pull up )
A1: 0 ( GND )
A0: 0 ( GND )
-------
hw: 4
wäre es - im gegensatz zum datenblatt bei IOCON.HAEN = 0 nicht
ansprechbar obwohl es das beschreibt! -> errata
wenn man ihn ansprechen wollte, müsste man da das device benennen
0x40 + 4 = 0x44
spi_write(opcode+hw,register,data)
spi_write(0x44,GPIOA,0x00)
..
wenn man ihn dann sagen wollte im verbund mit anderen(0,1,2,3) , dass
ICON.HAEN = 1 zutrifft
dann
erst alle ansprechbaren wie gewohnt
spi_write(ox4o,IOCON,0x08)
es reagieren 0,1,2,3
und jetzt den extra lauf für alle anderen ab 4
hw: 4 spi_write(0x44,ICON,0x08)
hw: 5 spi_write(0x45,ICON,0x08)
hw: 6 spi_write(0x46,ICON,0x08)
hw: 7 spi_write(0x47,ICON,0x08)
i²c das gleiche.
lg rudi ;-)
ICON muss lauten IOCON sorry ging ein O verloren. #define IOCON 0x0A HAEN ist Bit 3 0 disabled 00000000 =0x0 1 enabled 00001000 = 0x08 lg rudi ;-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.