-
Thread
8x Relais-Karte über I2C mit dem MCP23008 Gesperrt
zusätzliche 8 Freilaufdioden? Die sind doch im ULN vorhanden. Wo ist der Abblockkondensator für den MCP23008?
der MCP23008 eben nicht auf High wie der > PCF8574, das ist der Hauptgrund, warum ich überhaupt nach einer > Alternative gesucht habe. Der MCP23008 steht nach dem Reset hochohmig > auf Input und muss per
-
Thread
MCP23008 unterbricht I2C Verbindung zu ESP8266
Anfängerproblem. Ich nutze ein D1 Mini Board mit ESP8266 Chipsatz und würde gerne den Portextender MCP23008 via I2C einsetzen. Ich habe dazu schon in der Arduino IDE einen Testsketch erstellt, der die interne LED des D1 Mini im Wechsel mit einer an den MCP23008 angeschlossenen LED blinken lässt. Das
Pullup-Widerstände an SDA und SCL? Wo ist der Entkopplungskondensator an der Betriebsspannung vom MCP23008?
-
Thread
I2C Kommunikation Fehlerhaft
i2c_start(TASTER_I2C_DEVICE+I2C_WRITE); i2c_write(MCP23008_GPIO); i2c_write(0b11011111); i2c_stop(); i2c_start(TASTER_I2C_DEVICE+I2C_READ); i2c_write(MCP23008_OLAT); uint8_t regvalue = i2c_readAck(); i2c_stop(); [/c]
while(1) { _delay_ms(100); lcd_command(LCD_CLEAR); uint8_t regvalue = mcp23008_reg_read(TASTER_I2C_DEVICE,MCP23008_GPIO); i2c_stop(); show_value(regvalue); } [/c] Das ist wohl die bescheurteste Zustandsabfrage der IO Pins am MCP23008 wenn diese
-
Thread
MCP23017 - Ansteuerungsproblem
opcode for read data = i2c_receive_byte(false) i2c_stop() end procedure -- setup mcp23008 as required procedure mcp23008_initialize(byte in opcode) is mcp23008_register_write(opcode,0x0A,0b0000_0000) -- OLAT O/P (0000_0000 no latching on all pins) mcp23008_register_write(opcode
-- b2 int pin open end procedure -- setup mcp23008 as required all ouputs procedure mcp23008_lcd2_init(byte in opcode) is mcp23008_register_write(opcode,0x0A,0b0000_0000) -- OLAT O/P (0000_0000 no latching on all pins) mcp23008_register_write
-
Thread
STM32 HAL I2C Daten im Startbyte
Es ist nicht verboten, einfach mal das Datenblatt des MCP23008 zu lesen. In "FIGURE 1-1: MCP23008 I2C DEVICE PROTOCOL" ist doch alles zu sehen, was auf dem I2C passiert.
Man koennte auch gucken, wie andere es gemacht haben. Z.B. https://github.com/m1geo/MCP23008_STM32
-
Thread
MCP23008 Taster entprellen
Hallo, ich habe folgendes Problem: Ich habe einen MCP23008 über I2C an einen Atmega128 angeschlossen. Zudem nutze ich die library von Peter Danegger zum Entprellen. Die Ansteuerung des MCP23008 funktioniert. Nun möchte ich gerne die Entprell-routinen nutzen, um die Taster vom MCP23008 abzufragen. Hat hier schonmal jemand was gemacht? Ich möchte keinen vollständigen Quelltext, ein paar Denkanstöße würden mir reichen. Ich habe schon ein wenig rum probiert. Zum Beispiel habe ich
-
Thread
mcp23008 funktioniert nicht
Hallo Forum, ich hab ein Problem mit dem MCP23008. Ich würde gerne LEDs zum Leuchten bringen, was jedoch nicht klappt. Hier ist der Code: [c] TWI_M_init(F_CPU, 100, TWIE_DISABLE); TWI_M_start(MCP_ADDRESS, WRITE, MCP23008_OPTION); // MCP23008_OPTION 0x40 TWI_M_write(0x00); // IODIR register TWI_M_write(0x00); // all output
-
Thread
Display mit HD44780 am MCP23008
Der MCP23008 kann 3,3V und 5V. Das Display W204 Oled von EA kann auch 3,3V und 5V. Passt das?
Hi >Der MCP23008 kann 3,3V und 5V. Das Display W204 Oled von EA kann auch >3,3V und 5V. Passt das? Passt genau so gut wie der PCF8574 mit seiner Versorgungsspannung von 2.5 - 6.0 V. MfG Spess
-
Thread
I2C Unterschied einfacher LCD
R. schrieb im Beitrag #5966787: > Nimm einen PCF8574 zur Ansteuerung. Lieber MCP23008, PCF8574 kann nur 100 kbit.
schicken. PCF8574 kann nur 100 kHz. D.h. für 6 bytes wird ca. 550 us gebraucht. Deshalb habe ich MCP23008 empfohlen: hier sind 1,7 MHz möglich. Somit dauern 6 bytes nur ca. 33 us. So wird LCD nicht noch zusätzlich abgebremst.
-
Thread
I²C-Expander MCP23008 verliert ständig seine ID
Moin moin! Ich möchte mehrere Displays über je einen MCP23008 per I²C von meinem Raspberry Pi aus ansteuern. Ich habe eine Platine gebaut, auf der die Expander sitzen und gleich Buchsenleisten angebracht, in die ich die Displays (HD44780 20x4) einstecken kann
5V arbeite Bevor du dich in weitere Basteleien stürtzt, solltest vielleicht die Erratas des MCP23008 lesen. http://ww1.microchip.com/downloads/en/DeviceDoc/80251A.pdf
-
Thread
MCP23008 Problem
Hallo, ich habe ein Problem mit dem MCP23008. Hier der Code: [c] // Hauptschleife while(1) { //LED blinken lassne i2c_start_wait(MCP23008_ADDR+I2C_WRITE); // set device address and write mode
Danke! Das war's :-) Ein i2c_start_wait(MCP23008_ADDR+I2C_WRITE); i2c_write(0x00); i2c_write(0x00); i2c_stop(); vorher hilft :-)
-
Thread
Spannungsausfall erkennen
überwachen, bin ich auf diese Schaltung gestoßen. Der Ausgang geht auf einen I2C IO Expander (MCP23008) der einen 100k internen Pullup hat. In der Zeichnung ist noch der externer 1k Pullup drinnen, den ich dann eigentlich nicht mehr brauche. Sollte so schon funktionieren, oder? Oder gibts noch
GPI beliebige, für den Betrieb nicht zulässige Spannungen, auftreten können. Für die GPIOs des MCP23008 ist lt. Datenblatt der Spannungsbereich 0.2 bis 0.8 VDD nicht zulässig (Datenblatt Kap. 2.1 DC Characteristics)
-
Thread
Porterweiterung
MCP23008 (I2C,SPI) gibt es bei www.mouser.com fuer 83cent (12$ Versand + paar Cent Zoll)
@Schoaschi: Wo bekomme ich in Deutschland den MCP23008 bzw. MCP23016/17? mfg AVRWalli
-
Thread
Übliche Beschaltungsregel: Welche Richtung?
die Wahl hat, oder ist das je nach Mondphase anders? PS: Wen es interessiert, der "IC" ist der MCP23008 PortExpander. Es geht hier aber eher um eine allgemeine Frage.
In diesem Fall musst du den Common an Masse anschließen, da der MCP23008 lediglich über Pull-Ups und nicht über Pull-Downs verfügt.
-
Thread
Arduino Framework Klassen
(Assembler, C, C++, Basic, ..). Beim betrachten einer Arduino Lib für einen SPI Port Expander (MCP23008) kamen mir ein paar Fragen bezüglich der Klassen. Ich habe mal fein gelernt das man Variablen in einer private Klasse durch Setter (setzten) und Getter (lesen) Funktionen schützt (vor un-plausiblen
beenden! Es gibt aber ein ganz anderes Problem: Die Datei definiert ein Makro namens "_ADAFRUIT_MCP23008_H". Bezeichner, die mit Unterstrich+Großbuchstabe oder 2 Unterstrichen beginnen, sind aber der Umgebung, d.h. Compiler+C++ Standard Bibliothek, vorenthalten. Auch wenn dies in diesem Fall wahrscheinlich
-
Thread
MCP23008 Problem
weiter gekommen! Also habe ich ein neues begonnen! Kann mir bitte jemand helfen! Ich habe einen MCP23008 Baustein und steuere ihn mit dem ATmega644 über I2C an! Leider geschieht nichts am Ausgang des Bausteins! Ich möchte einfach nur LEDs ansteuern! Könnte mir jemand einen Beispielcode schicken oder
Delay_ms(500); sendMCP(0x40, 0xff); Delay_ms(500); } } //MCP23008 initialisieren als Output: void initMCP(char addresse){ TWI_Init(100000); TWI_Start(); TWI_Write(addresse); TWI_Write(0x00); TWI_Write(0x00); TWI_Stop(); } //MCP23008
-
Thread
Mit A/D Wandler PCF 8574 LEDs ansteuern - zu wenig Strom?
open-collector schaltet nach GND, damit können bis 25mA gegen Vcc geschaltet werden. Flexibler ist ein MCP23008 / MCP23017, der kann Eingang / Ausgang, mit high / low, mit Pull-up oder ohne. Allerdings auch ein wenig aufwendiger in der Ansteuerung.
Karl K. schrieb im Beitrag #6389821: > Flexibler ist ein MCP23008 / MCP23017, der kann Eingang / Ausgang, mit > high / low, mit Pull-up oder ohne. Allerdings auch ein wenig aufwendiger > in der Ansteuerung. Der MCP23017 hat dann sogar gleich 16 Ausgänge. Wenn
-
Thread
I2C IOExpander macht mich wahnsinnig
vom PCF8574 auf diesen umgestiegen weil ich die Versorgung schalten muss. Hatte das auch mit dem MCP23008 am Steckbrett getestet und dachte dass der MCP23009 das auch kann. Danke für den Hinweis. Jetzt werde ich doch den 08er im kleinen QFN Package nehmen müssen. Damit sollte das erste Problem schon
So, update ... aber noch immer nicht geschafft. Ich bin jetzt auf den MCP23008 (aus oben erwähnten Gründen) umgestiegen. Am Steckbrett funktioniert alles soweit, nur in meiner eigenen Schaltung, bleibt das ACK nach dem senden der I2C Adresse aus. Anbei zwei Oszi Screenshots
-
Thread
Lib für hd44780 am MCP23008
Hallo zusammen, ich habe hier ein HD44780 LCD welches am MCP23008 Expander hängt. Leider habe ich im Internet nur Libs für dieses komische Arduino (C++) gefunden. Kennt jemand evtl. eine Bezugsquelle für eine C lib? Viele Grüße, Uwe
Ja der Beitrag ist sehr alt, aber da ich gerade nur den MCP23008 hier liegen habe und nachher im Produktiveinsatz den https://www.mikrocontroller.net/articles/Port-Expander_PCF8574 Frage ich mich, wieso man nicht einfach diese Lib dort nimmt: http://www.mikrocontroller.net
-
Thread
I2C: verschiedene Geschwindigkeit
Reichelt) war für mich gerade der Grund, diesen Baustein auszuwählen. Ursprünglich wollte ich den MCP23008 nehmen. Der hätte mir auch sonst besser gefallen, weil ich für den PCF8574 noch zusätzliche Pull-Ups brauche (der soll einen ULN2803 steuern). Aber RS, Fanell & Co sind leider nicht meine Stammdealer
Detlev T. schrieb im Beitrag #1738885: > diesen Baustein auszuwählen. Ursprünglich wollte ich den MCP23008 > nehmen. Der hätte mir auch sonst besser gefallen, Gibts bei TME (verfügbar) und versandkostensparend auch bei modtronix (leider grad nicht verfügbar).
-
Thread
ram mit pcf8574 vom display hd44870 lesen
jojo, ich bins wieder, scheint nicht zu gehen, hole mir daher den MCP23008, damit gehts **************************
>hole mir daher den MCP23008, damit gehts Das geht auch mit dem pcf8574. Du bekommst es nur nicht gebacken DB4..7 auf 1 zu setzen bevor du liest. Dann wirken nur noch die Weak Pullups und das Display kommt dann auch durch
-
Thread
MCP23008 Interrupt Flags nicht wie im Datenblatt?
Hat jemand erfahrung mit einem MCP23008? Ich nutze den Chip ausschließlich mit Pullups um Taster per interrupt ab zu fragen. Sobald der Chip einen Interrupt meldet und der µController Zeit hat werden die Register INTF und INTCAP abgefragt
Ich habe jetzt eine Stellungnahme von Microchip erhalten: "Your inquiry regarding the MCP23008 only storing the first interrupt in the INTF register has been asked in our support que by several different customers in the past. This is the response provided from the business unit in charge of
-
Thread
Display am Attiny 841
Hardware) hängt. Wie kommt es dann eigentlich zu den grossen Unterschieden zwischen Slave z.B. MCP23008 und Slave Attiny 841. Ist ein Prozessor, klar. Beim Betrieb des Attiny 841 als Slave am Bus sieht die SW ganz anders aus. c-hater schrieb im Beitrag #7026702: > Wenn das der Fall ist (du hast
Beitrag #7026946: > Wie kommt es dann eigentlich zu den grossen Unterschieden zwischen Slave > z.B. MCP23008 und Slave Attiny 841. Ich verstehe die Frage nicht. Der eine Chip ist ein nicht programmierbarer Port-Expander, der andere ein programmierbarer Mikrocontroller. Der Unterschied ist in etwa wie
-
Thread
MCP23008: 3,3V LED und 1,2V Motoren schalten
Ich möchte über einen MCP23008 zwei LEDs und zwei kleine Motoren steuern. Der MCP23008 wird mit 3,3V versorgt. Die LEDs können ebenfalls mit 3,3V laufen (2,8-4,0V sind im DB angegeben). Hier ergibt sich für mich schon die Frage
-
Thread
Verständnisfrage Open Collector
festgelet, für den PCF sprach die einfache Ansteuerung, der Preis und die Verfügbarkeit. Der MCP23008 ist ebenfalls lieferbar und weit verbreitet, aber ich werde aus dem Datenblatt nicht schlau. Ist der jetzt PushPull oder OpenDrain? Eine Zeichnung wie beim PCF fehlt da leider. Wenn er PushPull
Transistor schrieb im Beitrag #7023351: > Der MCP23008 ist ebenfalls lieferbar und weit verbreitet, aber ich werde > aus dem Datenblatt nicht schlau. Ist der jetzt PushPull oder OpenDrain? > Eine Zeichnung wie beim PCF fehlt da leider. Sind auch
-
Thread
-MCP23017 - INPUT_PULLUP mit INPUT verbinden
Pins definiere der Master/Slave-Linien. Die Grundidee war, dass ich über einen MCP23017 und MCP23008 die Masterlinien mit INPUT_PULLUP und die Slavelinien mit INPUT definiere (Das input floating zwischen Hi/lo war mir jetzt anfangs egal, da ich sonst einfach einen PullDown Wiederstand hinzugefügt
Thomas M. schrieb im Beitrag #6865448: > Die Grundidee war, dass ich über einen MCP23017 und MCP23008 die > Masterlinien mit INPUT_PULLUP und die Slavelinien mit INPUT definiere Was soll das bringen? Um eine Verbindung zu erkennen, wird genau eine Reihe auf Output-Low gesetzt und alles andere
-
Thread
PIC: I2C mit MCP23008
Hallo Elektroniker, bastel seit ein paar Tagen mit einem PIC4550 und dem I/O-Expander MCP23008 von Microchip rum. Ich verwende den I2C-Bus zum ersten Mal und habe prompt ein Problem: Wenn ich einen Output-Pin setzen möchte und dazu in das OLAT-Register schreibe, so schreibt er zwar ins OLAT
PIR1bits.SSPIF = 0; //SSPIF zurücksetzen SSPBUF = (addressModule&0xFE); //Adresse des MCP23008 while(SSPCON2bits.ACKSTAT); //Wait for ACK PIR1bits.SSPIF = 0; //SSPIF Bit löschen SSPBUF = addressReg; //Adresse des Registers while(SSPCON2bits.ACKSTAT
-
Thread
ATMega I2C Slave - 16-Bit antwort?
define IODIR 0x00 #define GPIO 0x09 #define OLAT 0x0A unsigned char regaddr; // Store the MCP23008 Requested Register Address unsigned char regdata; // Store the MCP23008 Register Address Data unsigned char index; uint16_t current_values[40] = {0}; uint16_t old_values[40] = {0}; void
-
Thread
MCP23008 Exposed Pad
Weiß jemand bei dem MCP23008 QFN package, ob das exposed Pad mit Masse verbunden werden kann oder muss? Ich finde dazu im Datenblatt keinerlei Informationen.
-
Thread
I2CLCD Library für HD44780 LCDs
Was müsste man anpassen, wenn man anstelle dem PCF8574 einen mcp23008 als PORT Expander verwendet?
den MCP23008 angepasst. Wenn Du die haben willst, dann schick mir einfach ne PN.
-
Thread
AVR Beeinflussung der Nachbarpins
Kann es sein, daß es darum geht den MCP23008 in Highspeed I2C anzubinden? Wegen der 1μs pro Bit. Ich denke das geht nicht, denn die TWI Hardware des AVR kann max den 400kBit Mode und BitBanging mit 1MBit ist falls überhaupt möglich, nicht trivial
Bastler schrieb im Beitrag #4210993: > Kann es sein, daß es darum geht den MCP23008 in Highspeed I2C > anzubinden? Wegen der 1μs pro Bit. Ich denke das geht nicht, denn die > TWI Hardware des AVR kann max den 400kBit Mode und BitBanging mit 1MBit > ist falls überhaupt möglich
-
Thread
MCP23008 Adress Pins
Moin! Mal eine kurze Frage bezüglich der I2C Portexpander IC´s MCP23008. Muss ich unbedingt einen Pullupwiderstand verwenden um die Adresspins auf logisch 1 zu setzen, oder kann ich diese auch getrost weglassen ? Gruß
-
Thread
MCP23008 / ULN2803 in einem?
Kurze Frage: gibt es eine Kombination aus MCP23008 und ULN2803 in einem Gehäuse. Wobei es nicht exakt diese Kombination sein muss, sondern: * I2C-Schnittstelle * 8 oder 16 Kanäle * OC / OD-Ausgänge, ca. je max. 100mA Gibt so etwas?
-
Thread
Anschluss & Beschaltung 74hc595 für definierten Ausgangszustand beim Start
sich die Ausgangszustände beim HC 595 nicht zurücklesen lassen. Ein IO-Expander wie PCA9554 oder MCP23008 ist da günstiger weil man elektrisch aktiv, die augenblicklichen Pin-Zustände jederzeit abfragen kann. Besser noch wäre, den Schaltzustand von der Last her durch Optocoupler zurückzuführen. Wie
Ausgangszustände beim > HC 595 nicht zurücklesen lassen. Ein IO-Expander wie PCA9554 oder > MCP23008 ist da günstiger weil man elektrisch aktiv, die > augenblicklichen Pin-Zustände jederzeit abfragen kann. Habe ich bei meinen bisherigen Überlegungen noch nicht vermisst. Da es sich (des Stromsparens
-
Thread
MCP23017 ESP 8266 Interrupt?
Nur um das ganze zum Ende zu bringen : Ich habe die Lib gewechselt. Und zwar auf :adafruit_MCP23008.h Auch hier hatte ich anfangs ein ähnliches Problem. Nur diesmal an einem anderem Relais. Nachdem ich in der .h das define geändert habe, läuft es wie gewünscht. #define MCP23008_GPIO
-
Thread
MCP23008-E/ML Gibt nur 1.5V aus
Ich habe ein Problem mit dem MCP23008-E/ML. Ich initialisiere das IODIR Register mit 0 und will allle ausgänge auf Ausgang schalten. Wenn ich dann OLAT ensprechend setze gibt mir der Pin aber nur 1.5V aus. Weiß jemand woran das liegen
-
Thread
Projekt: Digitale Steuerung der Gehäuseelektronik im PC
der nach Aussagen einiger Leute ziemlich langsam sein soll. Daher habe ich mir kurzerhand vier MCP23008 bestellt und werde hoffentlich noch diese Woche das Platinenlayout (alle 4 Displays auf eine Platine) ätzen. Da ich auch neue und hochwertig wirkendere Displays verwende (wobei der Hitachi-Controller
aber wahrscheinlich eh kein Thema mehr sein, hoffe ich. Seit kurzem ist die nämlich auch mit dem MCP23008 kompatibel. Aber das mit der PWM-Steuerung würde mich mal wirklich interessieren, da steh ich ein bisschen auf dem Schlauch. Falls das mit dem Transistor doch gehen sollte, wär das natürlich super
-
Thread
PCF8574 I2C-Port-Expander Preisentwicklung
Nimmt doch den MCP23008. Bei Mouser ist der sogar günstiger als der PCF8574 und leistet mehr (umfangreiches Interrupt handling, pull-up's etc)!
-
Thread
Benötige "Portbausteine" (8255)
Inzwischen gibt es auch "intelligente" Schieberegister von Microchip: MCP23008 (18Pin, 8Bit) und MCP23017 (28Pin, 16Bit) mit I2C Anschluss und MCP23S008 bzw MCP23S017 mit SPI Anschluss.
-
Thread
PCF8574 nachfolger
MCP23008 MCP23017
-
Thread
Suche Schieberegister mit 6 Ausgängen und 2 Eingängen, ähnlich 74HCxxx
Sowas: http://de.farnell.com/microchip/mcp23008-e-p/io-expander-8bit-i2c-pdip18/dp/1439387 ?
-
Thread
LCD Display
Ich würde einen IO-Expander empfehlen. zb: MCP23008 oder PCF8571(oder so.. weis die bezeichnung niocht genau.. sorry) Das LCD wird dann sie wie bei einem µC an den IO-Expander angeschlossen.
-
Thread
Kann PCF8574 auch highside treiben?
MCP23008
-
Thread
PCF 8574 mit 3.3V?
Evtl. eine Option: MCP23008 MCP23017
-
Thread
I2C Analog Mux/Demux im DIP gesucht
I²C-Ansteuerung lohnen würde. Um die Muxe anzusteuern, kannst du I²C-I/O-Expander benutzen, also PCF8574/MCP23008/MCP23016. Bernd B. schrieb im Beitrag #5907402: > 64 Eingänge Ein 16-Kanal-Mux wäre der MAX396, aber der ist dann doch ein bisschen teurer als 2x 74xx4051.
-
Thread
5V LCD an 3,3V mit StepUp
Ich habe ein 44780 kompatibles Display über einen MCP23008 (8-port expander, ähnlich pfc8574) so angeschlossen, dass ich das Display über i2c mit nur 2 Leitungen plus Stromversorgung ansprechen kann.
-
Thread
Layout SD-Karte einseitig?
kommt eine I2C Karte, die ist schon fertig und damit steuere ich ein LC-Display (240x128) über MCP23008 an. Ist zwar etwas langsam, aber es geht ;-) Das ist alles auf 5V ausgelegt.