Im Forum und im Wiki
-
Thread
MCP23017 - Abfrage Taster
Hallo Zur Abfrage eines Tasters am MCP23017 habe ich folgenden Code: [c] // einlesen der Port / Taster i2c_start(MCP23017_ADDR); // Adresse i2c_write(MCP23017_GPIOB); Data = i2c_read(0xff); // liest Ausgänge
// steuert die Pull-UP-Widerstände für Port-Pins #define MCP23017_GPPUB 0x0D #define MCP23017_INTFA 0x0E // spiegelt die Interupt-Bedingungen auf den Port-Pins wieder #define MCP23017_INTFB 0x0F #define MCP23017_INTCAPA 0x10 // erfassen
-
Thread
MCP23017 ESP 8266 Interrupt?
0x08 #define MCP23017_IOCONA 0x0A #define MCP23017_GPPUA 0x0C #define MCP23017_INTFA 0x0E #define MCP23017_INTCAPA 0x10 #define MCP23017_GPIOA 0x04 #define MCP23017_OLATA 0x14 #define MCP23017_IODIRB 0x01 #define MCP23017_IPOLB 0x03 #define MCP23017_GPINTENB 0x05//vorher05 #define MCP23017_DEFVALB 0x07 #define MCP23017_INTCONB 0x09 #define MCP23017_IOCONB 0x0B #define MCP23017_GPPUB 0x0D #define MCP23017_INTFB
-
Thread
kennt jemand sich aus mit MC23017 IO-Board
Soo viele Boards von Adafruit mit MCP23017 gibt es auch wieder nicht: https://learn.adafruit.com/adafruit-mcp23017-i2c-gpio-expander/arduino https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library https://github.com/adafruit/Adafruit-MCP23017
/w/upload/5/54/MCP23017-IO-Expansion-Board-Schematic.pdf Bei Eckstein finde ich aber den Demo-Code von Waveshare nicht. Aber direkt von Waveshare, hier unter Resources/Code: https://www.waveshare.com/wiki/MCP23017_IO_Expansion_Board
-
Thread
MCP23017 - gemischter Betrieb von LEDs und Taster
aus je 4 LEDs und 4 Taster angesteuert werden können. [c] // Abfrage der Taster i2c_start(MCP23017_ADDR); // Adresse i2c_write(MCP23017_GPIOB); i2c_stop(); i2c_start(MCP23017_ADDR +1); // Read-Adresse, mit Fehlerüberprüfung, falls das die Lib so macht! Data = i2c_readNak
Programm, z.B. setzt es Port 4 und 5 o.ä. contentOLATA |= 0x02; <- setzt nur bit 2 i2c_start(MCP23017_ADDR); i2c_write(MCP23017_OLATA); i2c_write(contentOLATA);
-
Thread
I2C funktioniert (aber nur mit Oszilloskop)
Hallo, ich treibe einen MCP23017 (IO Expander mit I2C) bei 100kHz I2C-Takt mit einem XMC4500 (Relax Kit Light). Die Settings im µC sind ok, denn die Verbindung zum MCP23017 klappt mit angeschlossenem Oszilloskop. Ich kann eine am
>Kondensator an der RESET-Leitung des MCP23017? Ich dachte eher an den zwischen VCC und GND.
-
Thread
"Kettenreaktion" von Relais zu Atmega644 löst Reset aus
sind alle 8 Ausgänge in Verwendung. Ich habe auch weggelassen, dass auf dem zweiten Board zwei MCP23017 insgesamt 4 ULN2803 ansteuern, so dass der Controller letztlich 32 Ausgänge via I2C pro MCP-Board schaltet. Die gleiche Beschaltung setze ich auch ein, wenn ich Taster abfrage (der MCP23017 dient
µC hängt sich - wenn es zu einem Fehler kommt - beim Schreiben der aktuellen Portwerte für den MCP23017 auf. Anscheinend wartet er ewig auf ein ACK des MCP23017 und löst den Watchdog aus -> deshalb meine Vermutung, dass der MCP23017 sich aus der laufenden Kommunikation ausgeklinkt hat (selbst einen
-
Thread
MCP23017 - Einzelne Pins auf High schalten
wiresend(0xFF); // all inputs on port A Wire.endTransmission(); Wire.beginTransmission(MCP23017_ADDRESS | i2caddr); wiresend(MCP23017_IODIRB); wiresend(0xFF); // all inputs on port B Wire.endTransmission(); } void Adafruit_MCP23017::begin(void) { begin(0); } void Adafruit_MCP23017
= MCP23017_GPIOA; } else { olataddr = MCP23017_OLATB; gpioaddr = MCP23017_GPIOB; p -= 8; } // read the current GPIO output latches Wire.beginTransmission(MCP23017_ADDRESS | i2caddr
-
Thread
LCD ansteuerung mit einem ATMega16 und I2C
, aber bei der Pinzuordnung stimmt was nicht. E und RS liegen lt. Schaltplan auch auf PortB des MCP23017. [c] // LCD DB4-DB7 <--> PORTB an MCP23017 Bit GPB1-GPB4 #define LCD_PORT 0x13 //GPIOB Register Addresse des MCP23017 #define LCD_DDR 0x01 // IODIRB Register addresse des MCP23017
bei der Pinzuordnung stimmt > was > nicht. E und RS liegen lt. Schaltplan auch auf PortB des MCP23017. > // LCD DB4-DB7 <--> PORTB an MCP23017 Bit GPB1-GPB4 > #define LCD_PORT 0x13 //GPIOB Register Addresse des MCP23017 > #define LCD_DDR 0x01 // IODIRB Register addresse des MCP23017