-
Thread
AVR - Hilfe bei Schematics prüfung?
möchte ich erst mal als fertige Komponente übernehmen) und besteht primär aus zwei Port Expandern (MCP23S17). Ich habe mich nun durch diverse Datenblätter gewälzt, Foren gelesen etc. und bin jetzt so weit, dass ich glaube alles beachtet zu haben. Nun bin ich aber noch recht neu in dem Bereich und bevor
noch > nicht gesehen. Nein, sehe ich nicht so, bzw. nur beim MCP23017 (I2C). Der TO verwendet MCP23S17 (SPI), da haben A0-A2 keine Bedeutung - wie auch? Der TO braucht getrennte /CS-Leitungen. leo
-
Thread
I2C Unterschied einfacher LCD
B. schrieb im Beitrag #5966790: > Lieber MCP23008, PCF8574 kann nur 100 kbit. :-)) Mein MCP23S17 steuert ein 128x64 GLCD mit 8MHz SPI clock vom BluePill aus befeuert. Bis auf das E alle LCD IOs am MCP, Updatezeit komplettes LCD < 7ms.
SPI, es sei denn, in System gibt es andere SPI-Geräte. Graphische 128x64 habe ich selber mit MCP23S17 gemacht. So schnell ist das auch nicht: bei jedem Befehl braucht MCP23S17 3 bytes, und für 1 byte Daten für 128x64 sollten mehrere Befehle kommen: 1. Daten auf Datenport. 2. Steuerung mit E=0
-
Thread
MCP23S17 Bit für Bit auslesen
Schau Dir an was SPI bedeutet und wie es im MCP23S17 realisiert ist. Stichwort: Es werden immer komplette Ports eingelesen, A, B oder A und B Auch das Schreiben erfolgt Byteweise. Falls Du Port A UND Port B als Inputs konfiguriert hast kannst
Wenn man nicht gleich alle 8 manipulieren will. Es kann auch sinnvoll sein, Variablen, byte pro MCP23S17-Register, zu deklarieren und dort aktuelle Zustand von MCP23S17-Port lagern. Dann braucht man nur in var etwas zu ändern und dann per SPI schreiben (außer wenn man Pin-Eingang zu lesen braucht). Ähnlich
-
Thread
Flag in BLOCK setzen und löschen?
kommen lange mehrbytes-Übertragungen. Z.B. wenn ich meine graphische Anzeige bediene, die über MCP23S17 geschalet wurde, wird für jeden Bytes in Display 12 bytes per SPI übertragen (d.h. ein ASCII-Zeichen kostet 72 bytes). Beim Lesen noch mehr (alles in 3-bytes-Einheiten). LCD braucht in SPI-Mode (mit
-
Thread
Ist es möglich, etwas wie EEMEM und PROGMEM für externe RAM?
Schneckentempo erfolgt. Immer noch schneller, besonders blockweise, als mit einem graphischen 128x64 über MCP23S17 ganze Bildschirm Punkt zu Punkt zu invertieren... Ich überlege nun: eine von vernünftigen Anwendungen wäre vielleicht eine Kopie von Bildschirm...
-
Thread
Mehrere Geräte von gleichem Typ steuern
angeschlossen (aber immer in 4-bit-Mode): an verschiedene Pins von Controller oder über SN74HC595 oder über MCP23S17 usw. Offensichtlich sind so gut wie alle Unterschiede zwischen LCD nur in der Weise, wie 4 bit zusammen mit RS und EN ausgegeben werden, und evtl. könnten sich auch Zeichen-pro-Zeile-Zahl und Zeilenadresse
-
Thread
Lokale Variable statt static, aber optimiert. Wie?
aber Zeit betrifft, hier habe ich alles Mögliche schon gemacht. Grafische Anzeige habe ich über MCP23S17. Das bedeutet: um ein Byte in Anzeige zu schreiben, sollten 12 bytes per SPI übertragen werden. Um einen Punkt zu lesen, verändern und wieder aufzuschreiben, sind 24 bytes notwendig. Hier muß man schon etwas überlegen beim Optimieren auch für die Zeit... Aber MCP23S17 bringt Vorteil, für die Anzeige nur eine SPI-Adresse verwenden zu dürfen...
-
Thread
24V mit MCP23S17 schalten
Hallo, mit dem MCP23S17 und einem dahinter geschalteten ULN2803 schalte ich derzeit die Masse. Gibt es auch einen Baustein (DIP18 oder SOIC18) der direkt die 24V durchschalten kann. Würde gerne einen Pegel von 24V bei AktivHigh
-
Thread
Wago 788 Relais über MCP23S17 schalten
. https://www.wago.com/de/relais-optokopplermodule/relaismodul/p/788-312 Ich nutze dazu den MCP23S17. Dieser steuert einen ULN2803 an. Nun die Frage, benötige ich noch Z-Dioden zwischen ULN Ausgang und Relais Eingang??
RND schrieb im Beitrag #5915705: > Ich nutze dazu den MCP23S17. Dieser steuert einen ULN2803 an. Nun die > Frage, benötige ich noch Z-Dioden zwischen ULN Ausgang und Relais > Eingang?? Erklärst du auch welchen Wert die Z-Dioden haben sollen...und vor allem
-
Thread
HDMI an Arduino
schrieb im Beitrag #5812577: > Der hat zu wenig I/O. Einem Pi mit ein paar SPI-Portbausteinen (mcp23s17 z.B.) mehr IOs zu verschaffen ist deutlich einfacher als einem Arduino richtige Grafik (in welcher Form auch immer) zu entlocken.
-
Thread
ATMEGA32U4, zwei Stromquellen, RX Pin
da im späteren Anwendungsbereich wirklich wenig Platz ist. Ich benutze einen ATMEGA32U4 und zwei MCP23S17 als Pin-Erweiterungen. Zusätzlich dazu möchte ich noch eine optionale(!) Schnittstelle zu einem Nextion Display anbieten sowie zu WS2812b LEDs. Da dies mit der Spannungsversorgung über USB nicht
-
Thread
Variable Zuordnung
<5; i++) { char* Ex = "Expander"; strcat(Ex,i); char* Ad = "Adresse"; strcat(Ad,i); MCP23S17 Ex = MCP23S17(spi, p20 , Ad ); } So sollte es Aussehen. Funktionieren wird es natürlich nicht, jetzt kommt Ihr ins spiel ich benötige einen Schupser zur Lösung. besten Dank im voraus
Zeichenkette sondern ein Integer. Danach deklarierst du eine neue Variable mit dem gleichen Namen (MCP23S17 Ex), das ist nicht zulässig. Variablen brauchen eindeutige Namen. Ich würde Dir empfehlen, alle Compiler Warnungen zu aktivieren (Compiler Option -Wall) und diese auch zu zeigen, wenn du dazu Fragen
-
Thread
STM32 HAL_SPI Problem: MOSI immer HIGH
Hi, ich arbeite mit CubeMX und Atollic TrueSTUDIO. Jetzt würde ich gerne per SPI einen MCP23S17 ansteuern. Leider gibt es Probleme mit dem SPI. Dieser ist über QubeMX komplett initialisiert (wenn ihr da infos benötigt reiche ich sie nach.) Meine while{1} sieht folgendermaßen aus: [c]C-Code
----------------------------*/ /* USER CODE BEGIN Includes */ #include "PCA9685.h" #include "MCP23S17.h" #include "nextion.h" #include "pwm.h" /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ /* USER CODE BEGIN PTD */ /* USER CODE
-
Thread
MSP23S17 Adresspins Verhalten
temp sbi MCP23S17_SS_PORT, MCP23S17_SS ret mcp23s17_rd: ; temp= geles.Daten, temph=slave address, temp3=IC-Reg cbi MCP23S17_SS_PORT, MCP23S17_SS lsl temph ori temph, (1<<MCP23S17_RW)|(1<<6) ;0b0100xxx1
=temp3: IC-reg-adr ldi temph, @2 ldi temp3, @3 rcall mcp23s17_regzeigen .endm MCP23S17_REGLCD 1,8, 0, MCP23S17_IOCON MCP23S17_REGLCD 1,0, 0, MCP23S17_OLATA MCP23S17_REGLCD 0,8, 0, MCP23S17_OLATB [/avrasm] Auch A2 wirkt. Nur A0 und A1 ohne Wirkung
-
Thread
Viele Kippschalter (ca. 40) auslesen / Mikrocontroller wake-up
entschieden? https://www.reichelt.de/i-o-port-expander-16bit-mit-spi-schnittstelle-s-dil-28-mcp-23s17-e-sp-p90047.html BTW: Den PCF8574 gibt es auch als Board, z.B. ebay 264030592099
-
Thread
If, elsif, else funktioniert nicht!
war nicht korrekt/sinvoll... Vielen Dank auch für alle Anderen Antworten :) Übrigens der MCP23S17 läuft mit 50MHz SPI-Takt auch wenn laut Datenblatt nur 10MHZ drin sind... Bei 60MHz macht er nicht mehr mit..
Matthias schrieb im Beitrag #5669090: > Übrigens der MCP23S17 läuft mit 50MHz SPI-Takt auch wenn laut Datenblatt > nur 10MHZ drin sind... Mach den mal anständig warm... ?
-
Thread
ESP8266 - GPIO Pins erweitern
Arduino Fanboy D. schrieb im Beitrag #5606981: > Ich mag den MCP23017 viel lieber. mir ist der MCP23S17 noch lieber, 10MHz SPI-Clock ist etwas schneller und die Adressierung für max. 8 Stück kaskadiert geht auch mit SPI ohne zusätzliche IOs. Gruß aus Berlin Michael
Michael U. schrieb im Beitrag #5607019: > mir ist der MCP23S17 noch lieber, 10MHz SPI-Clock ist etwas schneller Schneller als die anzusteuernden Relais wäre der selbst mit 1MHz SPI-Takt.
-
Thread
M5StackFire und M5Stack
da nur mehr normale I/O haben wollte, würde ich vermutlich einen MCP20S17 an I2C oder eher einen MCP23S17 per SPI ranhängen. Gruß aus Berlin Michael
-
Thread
MCP23S17 - komisches Verhalten
Hallo zusammen, ich habe ein komisches Verhalten des MCP23S17 festgestellt. Entweder übersehe ich etwas oder meine beiden MCP23S17 sind defekt! (wäre etwas komisch, da sie beide NEU sind) Ich habe einen Testaufbau mit einem Raspberry aufgebaut (um mir das
funktioniert alles problemlos! -> (B = Eingänge & A = Ausgänge) Habe das ganze mit zwei Stück MCP23S17 getestet -> das Verhalten ist identisch! Hinweis: Ich habe es auch nicht hin bekommen die Pullups auf "255" zu setzen. Wenn ich die Pullups auf 255 setze (überprüft mit Oszilloskop) und dann
-
Thread
[V] Große Sammlung von Elektronikbauteilen (300+ Teile), Stepper-Motoren, 7-Segment uvm.
Module * 4x NRF24L01 2.4GHz Antenna SPI Interface * 1x Gyro-Sensor (Lage, Bewegung) * 2x MCP-23S17-E/SP - SPI GPIO Expander * 10x Hall-Effect-Sensor * 1x STM32F103 Dev-Board * 1x Ethernet-Module for Arduino * 1x Joystick for Arduino * 2x Digital Audio Verstärker Board PAM8610 2*15W Dual
-
Thread
144 analoge Eingänge am Arduino
Joachim B. schrieb im Beitrag #5457129: > SPI 16er Sports mit MCP 2x Das wird etwas wie ein MCP23S17 sein; bzw. ein MCP3426 und MCP23017 als i2c? > oder 4x I2C 8574(a) a 8 Bit PCF8574 ist hier superschön erklärt: https://www.mikrocontroller.net/articles/Port-Expander_PCF8574 ... und der kleine
-
Thread
Code(SRAM steuern) verbessern. Arduino mega 2560
bestimmt SPI-RAM gewählt). Oder (jetzt werde ich wohl von allen Seiten gegriffen) parallele RAM mit 2x MCP23S17 oder MCP23017 als Interface. Hälfte von Adresse per Hardware und Hälfte im Programm - das ist schlechteste Idee aus allen möglichen. Wir Organisten nennen das "Werk-Prinzip". Entweder - oder,
-
Thread
[V] unterschiedliche ICs
TSSOP16) 1,50€ für alle drei zusammen > 1x FT2232D (USB-2xUART-Wandler im LQFP48) 2,50€ > 3x MCP23S17T-E/SS (16-Bit I/O Expander mit SPI) 1,50€ für alle drei > zusammen > 5x ICL7660SIBAZ (Landungspumpe, SO8) 0,50€ pro Stück sind reserviert.
TSSOP16) 1,50€ für alle drei zusammen >> 1x FT2232D (USB-2xUART-Wandler im LQFP48) 2,50€ >> 3x MCP23S17T-E/SS (16-Bit I/O Expander mit SPI) 1,50€ für alle drei >> zusammen >> 5x ICL7660SIBAZ (Landungspumpe, SO8) 0,50€ pro Stück > > sind reserviert. verkauft.
-
Thread
SPI - MCP23S17 - Adresspins
DeviceDoc/20001952C.pdf (Seite. 21) Kann man die Hardwarekodierung ausschalten.. [c] #define MCP23S17_ADDR 0 #define MCP23S17_OPCODE ( 1<<6 | ( 0x0E & ( MCP23S17_ADDR << 1 ) ) ) [/c] Bei MCP23S17_ADDR > 3 hört die Kommunikation auf. Mache Ich da irgendwas falsch? Also 0 , 1 , 2 , 3 funktionieren
Ich würde mir es ja eher so machen: > #define MCP23S17_OPCODE (0x40|(MCP23S17_ADDR<<1)) *ohne Gewähr*
-
Thread
LCD über 74*595: Busy-Flag?
Nimm doch einen MCP23S17 (SPI) oder MCP23017 (I2C). Bidirektional, 16 Bit, und Du brauchst nur 4 Pins (SPI) oder zwei Pins (I2C in Software). Bei Software-I2C kann es auch ein PCA9536 oder so sein. Ansonsten: ja, wenn
fchk schrieb im Beitrag #5310329: > Nimm doch einen MCP23S17 (SPI) Das Dings gibts übrigens gerade als Schnäppchen beim Herrn Pollin.
-
Thread
SPI-Treiber-Entwicklung: Wie macht man es richtig?
den extra SPI Treiber andere Interfaces tunneln will, z.B. UART (MAX3100), CAN (MCP2515), PIO (MCP23S17) usw. Für mich ist SPI kein eigenständiger Bus, sondern nur ein Werkzeug, um externe Peripherie anzubinden. Ansonsten müßte man ja auch fürs MMIO-Interface erstmal einen Treiber schreiben. Ich
-
Thread
Auf-/Abwärts-Zähler mit 33 Ausgängen und Zustandsspeicher.
, mit PCA9554 käme man auf bis zu 64 IOs, um nur ein paar zu nennen. Für SPI gibts den 74hc595, MCP23S17 und und und ...
-
Thread
I2C - Pull Up Widerstände
Könnten wir das aktuelle Programm sehen? Ich habe hier nur einen MCP23S17, also die SPI-Version, aber ein minimalistisches Programm mit der zweifachen Sequenz 0x40 0x00 0x00 0x40 0x14 0xFF schaltet hier GPA auf Vdd.
im Beitrag #5089830: > Könnten wir das aktuelle Programm sehen? > > Ich habe hier nur einen MCP23S17, also die SPI-Version, aber ein > minimalistisches Programm mit der zweifachen Sequenz > 0x40 0x00 0x00 > 0x40 0x14 0xFF > schaltet hier GPA auf Vdd. Bitte sehr. Sind im Anhang.
-
Thread
Matrix 200x150 ansteuern, Output-Expander
Adam Ries müssten da 30000 Ausgänge befruchtet werden. Mit 16-Bit I/O-Expander (z.B. MCP23017/MCP23S17) kommt man da nicht weit. SPI-Ansteuerung wäre sicher ausreichend. Für I2C gäbe es den CY8C9560A. Könnten man mit einem Reihen/Spalten-Konzept die Masse an Ausgängen stemmen? Oder gibt es direkt
-
Thread
Iv-6 röhre Spannungen
China-Stepup. Versorgung aus einem 5V USB-lader. Seine VFD-Uhren multiplexen, entweder 2x '595 oder ein MCP23S17 und ULN28xx als Highsidetreiber für Gitter und Segmente. Gesteuert von einem ESP8266, Uhrzeit per NTP. Ich muß ihn mal fragen, ob er mal Bilder macht, er wohl inzwischen 7 oder 8 Uhren rumstehen
-
Thread
SPI - Port-Expander (viele)
über die drei Adressleitugen A2:A0. Die Adressierung erfolgt dann analog I2C. Wenn Du dann noch MCP23S17 nimmst hast Du 2x8Bit pro IC und davon dann 8 pro CS macht 128 IOs auf einem CS.
Adressleitungen. Sorry, stimmt, ich bin im Datenblatt beim Bild vom MCP23008 hängengeblieben. Der MCP23S17 hat aber definitiv 3.
-
Thread
SPI mit Atmega32
Hallo, ich versuche schon mehrere Tage, eine Porterweiterung mit einemMCP23S17 zu machen. Die Ausgabe auf Port A klappt, nur das Einlesen bekomme ich nicht hin. Ich habe schon alle möglichen Unterlagen durchgesehen, komme aber nicht weiter. In der angehängten Datei ist oben
Peter schrieb im Beitrag #7851468: > SPI_Test_mit_MCP23S17.rtf (2 KB) Peter schrieb im Beitrag #7851468: > Ich würde mich über Hinweise sehr freuen. Sende deine Anhänge im richtigen Format. In deinem Fall wären das *.c Files.
-
Thread
mcp23s17 input mit langer Kabelverbindung
Hallo zusammen, ich habe 2 MCP23S17 Bausteinen an einen kleinen SPI-Bus an meinen Raspberry angeschlossen, im Testaufbau auf dem Steckboard funktioniert alles prima. Beim produktiven Einsatz übernimmt ein GPIO Port eines MCP23S17
läuft das System zunächst stabil, aber nach einer gewissen Zeit erfolgt ein Register-Reset auf dem MCP23S17; was einen erneuten INIT der MCP23S17 erforderlich macht. Das passiert auch, wenn der Zustand der Fenster nicht verändert wird. Ich bin mir ziemlich sicher, dass es wohl an der Leitungslänge liegt
-
Thread
LED blitzen auf, Transistor an Attiny2313
welcher beim Einschalten der Versorgungsspannung entsteht. Hatte ein solches Problem mit einem MCP23S17, wo auch über einen Transistor BC547c die LED kurz aufblitzte. Abhilfe brachte ein 100nF Kondensator von der Basis nach GND. MfG. Mandi
-
Thread
STM32 SPI im IRQ
soweit, ich wollte auch mmal mit einem LED-Cube spielen. Also gegriffen was noch rumlag, 512LEDs, 5 MCP23S17, ein STM32F303 und ne Handvoll Hühnerfutter. Nach 'nem Wochenende Löten ging es an die Programmierung. Die Ansteuerung der LEDs funktioniert, ein kompletter Durchlauf braucht 650µs. Um ein stabiles
-
Thread
Drehencoder SPI
Eventsystem/Timer auslesen. Aber sollte noch einer hinzukommen, reicht > dies nicht mehr. 1x oder 2x MCP23S17 als Portexpander auf das Frontpanel. Sind dann 16 oder 32 recht frei programmierbare I/O. Bis 8 Stück sind direkt kaskadierbar und können auch über SPI in Software adressiert werden, also nur
Encoder anschließen kann, welche man dann über SPI auslesen kann. und was genau gefällt Dir am MCP23S17 nicht? Hatte ich am 29.01.2017 10:15 vorgeschalgen. Gruß aus Berlin Michael
-
Thread
I/O Expander MCP23S17
Hallo, ich habe 2 Fragen zur I/O Expander MCP23S17. 1. warum verfügt der Expander über Adressleitungen? reicht der CS-Eingang nicht um den Schaltkreis anzusprechen? 2. kann ich in einem Block (z.B. GPA 0..7) paar Pins als Inputs und den Rest als
-
Thread
Tri-State Schieberegister - High-Z
MCP23S17
holger schrieb im Beitrag #4825006: > MCP23S17 Pullup-Transistor bei 4,5V: 0,7V/3mA => 233 Ohm. Real sicherlich weit darunter, aber viel besser als der 74HC4051 sieht das nicht aus.
-
Thread
PiFace Digital 2 - Digital Inputs 5V tolerant?
gehen. Ich kann aber keine eindeutige Antwort finden, ob ich damit den auf dem PiFace verbauten MCP23S17SP grille. Das Datenblatt zum IC habe ich gelesen, aber um ehrlich zu sein überfordert mich das etwas. Vielen Dank Christopher
-
Thread
Frage zur Länge i2c auf Platine.
zu betreiben gab es nur Probleme mit den Pins pa7 und pb7. Siehe internet¹. Ich bin dann auf den mcp23s17 umgestiegen. ¹ http://www.microchip.com/forums/m/tm.aspx?m=831656&p=2 MfG Tobi
-
Thread
Suche IC: DO mit Überwachung und Schutzfunktionen
Blödsinn, 10 MHz, also würde der MCP reichen, halt der SPI Typ: MCP-23S17
halt 4 von den MCP. Der MCP23017 ist für I2C (dürfte aber mit 1,3MHz zu langsam sein) und der MCP23S17 ist für SPI und kann 10MHz.
-
Thread
ESP8266 einbinden und ansteuern
zum syncronisieren sowieso kaum rum. irgendwas muß den Slave ja sagen, wo es losgeht. Auch beim MCP23S17... Zum I2C-Slave und ESP: das Problem mit dem Timing wurde ja im Espessif-Forum angesprochen. Gibt es eben einen I2C-Slave in Software. Gibt es genug Beispiele im Netz. PinChange-Interrupts beim
syncronisieren sowieso kaum rum. irgendwas muß den Slave ja > sagen, wo es losgeht. Auch beim MCP23S17... 256 ESP Addressen und ein /CS Pin machen 256 mögliche Devices in einem Strang ohne jeglichen Zusatz von Reseter ICs oder anderen bei nur einem /CS > > Zum I2C-Slave und ESP: das Problem
-
Thread
Schieberegister 595 hardwaremäßig löschen
richtigen Pin nimmt. GPIO4 und 5 gehen immer. Ansonsten eben keinen '595 nehmen sondern z.B. einen MCP23S17 am Hardware-SPI des ESP. Gruß aus Berlin Michael
richtigen Pin nimmt. GPIO4 und 5 gehen immer. > Ansonsten eben keinen '595 nehmen sondern z.B. einen MCP23S17 am > Hardware-SPI des ESP. Eben. Das mit OE per ESP Wäre am einfachsten geht aber wiegesagt nicht weil ich keinen Pin frei habe den ich dafür nutzen kann.
-
Thread
HW SPI und eigener GPIO als CS - zeitverschoben
sind mir ganz praktisch noch keine Ungereimtheiten aufgefallen. Ich nutze diese Kombi z.B. mit MCP23S17 bei 8MHz SPI-Clock ohne Probleme. Ich müßte jetzt allerdings in die Tiefen der Bibliothek absteigen und schauen, was spi_send() da bei mir veranstaltet, ist die Arduino-SPI-Bibliothek. Gruß aus
-
Thread
ESP8266 (Wemos D1) Analogwert schwankt stark
Hallo, rechnen kann ich auch nicht mehr, ich meinte ja 64... 2x MCP23S17 am SPI hätten 32 I/O die man Byteweise ansprechen kann. 3x 8 Ausgänge und 1x 8 um den Analog-Mux anzusprechen. Mehr als 10MHz SPI-Clock können die aber wirklich nicht, meine laufen mit 8MHz.
-
Thread
Fragen zum ESP8266 12
steht es zumindest auch in einem deiner Links. Ignorieren, sind (ohne extremen Aufwand) nitzlos. MCP23S17 am SPI ist eine netter Portexpander wenn Leitungen fehlen. > Achso nochwas, irgendwie habe ich auch teilweise gelesen die Pins müssen > mit z.B. "D1" statt "1" angegeben werden, war das mal