-
Thread
SPI mit Attiny 841 und MCP23S17
]); // MCP23S17_byteWrite(i,IODIRB, mpxdirb[i]); // MCP23S17_byteWrite(i,OLATA, statusa[i]); // MCP23S17_byteWrite(i,OLATB, statusb[i]); // } MCP23S17_byteWrite(0,IODIRA, 0 ); // PORT_a auf Ausgang
_byteWrite(0,OLATB, 0); // | MCP23S17_byteWrite(0,IOCON, SEQOP | HAEN ); // MCP23S17_byteWrite(1,IOCON, HAEN ); // MCP23S17_byteWrite(2,IOCON, HAEN ); // MCP23S17_byteWrite(2,IODIRA, mpxdira[2]); // Direction"A" // MCP23S17
-
Thread
Select MCP23S17
1 << MSTR) // Master/Slave select | (1 << SPR0); // SPI clock rate select } [/c] MCP23S17 Initialisierung: [c] #include <mcp23s17.h> #include <avr/io.h> void Mcp23s17_Initialize(Mcp23s17 *self, int * sfr_address, int sfr_pin) { self->spi.sfr_address = sfr_address; self->
main() wird Port B auf Ausgang geschaltet: [c] DDRB = 0xFF; [/c] weiters wird dann der MCP23S17 auf Pin PB2 von Port B gebunden: [c] // .. Mcp23s17_Initialize(&mcp, &PORTB, PB2); // .. void Mcp23s17_Initialize(Mcp23s17 *self, int * sfr_address, int sfr_pin) { self->spi.sfr_address
-
Thread
MCP23S17 ansteuern
EICRA |=(0<<ISC21); /* Move interrupts to Boot Flash section */ }[/c] [c]#ifndef MCP23S17_H_ #define MCP23S17_H_ //Deklaration MCP Register /* ' MCP23S17 Register RO=ReadOnly ' Adresse 00 01 IODIR Richtung Port a/b 0=Output 1=Input ' Adresse 02 03 IPOL Polarität 1=umgekehrt
response } while(by==DUMMY_WRITE); [/c] Kommt mir bekannt vor;) Nur mal zum Verständnis: Der MCP23S17 ist *keine* SD Karte!
-
Thread
MCP23S17 kaskadieren
Hallo, ich bin aus dem Datenblatt des MCP23S17 nicht so richtig schlau geworden. Bislang habe ich nur mit TLC5916/7 oder den HC595 Schieberegistern gearbeitet. Diese konnte ich problemlos kaskadieren. Nun war ich auf der Suche nach einem Schieberegister
diese haben jedoch den Nachteil, dass ich diese nur bei Großhändlern im DIP bekomme. Nun also der MCP23S17. Aus den AppNotes geht nicht heraus, wie ich mehrere ICs miteinander verbinde. Einfach CS, SCK, SI und SO alle parallel an den Schieberegistern und den Kontroller? Entscheiden, wo was passiert
-
Thread
probleme mit mcp23s17
Hallo, ich habe 9 Buttons an einen mcp23s17 angehängt, und möchte jetzt auslesen welcher button gedrückt wurde. die buttons hängen an porta[0-7] und portb[0] und werden bei drücken auf low gezogen. aus diesem Grund würde ich gerne einen
-
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
MCP23S17, wo müssen Widerstände hin
Hallo, ich möchte mehrere MCP23S17 verknüpfen. Das Internet (Google) gibt mir da nur sporadisch Infos zu. In den meisten Fällen wird A0 - A2 nur auf GND gelegt (Adresse 0). Selten bis garnicht, wie man die anderen Adressen ansteuert
-
Thread
MCP23S17 Porterweiterung SPI
Hallo Leute, wie steuere ich einen MCP23S17 von BASCOM aus an. Folgende Schaltung ATMEGA 32 mit SD-Karte (SPI-Hard). Nun will ich die vorhandenen Ports um 32 Ausgänge und 16 Eingänge erweiter, da SPI glaube ich da ganz gut für geeignet ist
Nun ich will folgendes wissen. Wie steuere ich den MCP23S17 per Bascom an? Wie lese ich die Daten aus und in den Portexpander. Wie setzte ich die Interruptausgänge? Habe erste Gehversuche gemacht, klappt aber nicht. Gruß, Stephan
-
Thread
Daisy Chain MCP23S17
Hallo, kann mir jemand sagen, ob ich von diesen Bausteinen mehrere seriell Verbinden kann? (Daisy-Chain) Habe im Datenblatt leider nix gefunden. Michi
-
Thread
MCP23S17 Welche Registerbank aktiv?
Hallo, ich habe ein kleines Problem. Der Portexpander MCP23S17 hat 2 umschaltbare Registerbänke. Je nach eingestellter Registerbank liegt das Bit (IOCON.BANK) zum umschalten an einer anderen Adresse((0x05 & 0x15) sowie (0x0A & 0x0B)). Wie bekomme ich nun raus
-
Thread
Kleine Frage zum MCP23S17
http://www.pollin.de/shop/dt/MDY4ODk4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/IC/MCP23S17_E_SP.html http://www.pollin.de/shop/downloads/D101139D.PDF Habe versucht ein wenig das Datenblatt zu lesen, wie es eben ohne engl. Kenntnisse geht. Das Teil kann ich bei entsprechender Programmierung
-
Thread
MCP23S17 Daten lesen
low, dann den Auslesebefehl Senden Werte abfragen CS auf High. Hier meine Headerdatei: [c] //MCP23S17.h #ifndef __MCP23S17_H #define __MCP23S17_H //Deklaration MCP Register /* ' MCP23S17 Register RO=ReadOnly ' Adresse 00 01 IODIR Richtung Port a/b 0=Output 1=Input ' Adresse 02 03 IPOL
while(! ( SPI_STATUS_REGISTER & (1<<SPI_STATUS_IF_BIT) ) ); } #endif [/c] und die passende MCP23S17.c Datei [c] //MCP23S17.C #include <avr/io.h> #include <stdio.h> #include <avr/interrupt.h> #include <avr/eeprom.h> #include <avr/delay.h> #include <string.h> #include "mcp23s17.h" void
-
Thread
Problem MCP23S17 und avr-gcc
data) { SPDR = data; while(!(SPSR & (1<<SPIF))); return SPDR; } [/c] [c] /* * mcp23s17.h */ #ifndef MCP23S17_H_ #define MCP23S17_H_ #include "spi.h" #define MCP_OPCODE 0x40 #define MCP_WRITE 0x00 #define MCP_READ 0x01 #define MCP_BANK 0x40 #define MCP_SEQOP
hwaddr, uint8_t reg, uint8_t data); uint8_t mcp_read(uint8_t hwaddr, uint8_t reg); #endif /* MCP23S17_H_ */ /* * mcp23s17.c */ #include "mcp23s17.h" void mcp_write(uint8_t hwaddr, uint8_t reg, uint8_t data) { SPI_PORT &= ~(1<<SPI_SS); spi_transfer(MCP_OPCODE | ((hwaddr<<1)
-
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
T6963 an MCP23S17
funktionieren. Da ich Ports am Atmega sparen möchte wollte ich versuchen das Display über SPI (mit MCP23S17) anzusteuern. Habe es auch schon aufgebaut und mit LED`s an den Portausgängen gestestet. Jetzt frage ich mich nur wie ich das mit dem Display lösen kann das die Daten am 1. port vom MCP23S17 sind
-
Thread
Verständnisproblem MCP23S17 Hardware Adresse
Ich habe vier MCP23S17 an einem Atmega32U2. MISO, MOSI SCK und !CS sind alle gemeinsam auf einem Bus. Die Adresspins sind unterschiedlich beschaltet und so lassen sich die ICs einzeln ansprechen. Mein Problem: Das
Ja, das ist die Erklärung, alle werden gemeinsam beschrieben. [c] /* MCP_0..MCP_7 --> MCP23S17 mit Hardwareadresse 0..7 */ /* nach Reset werden MCP_0..MCP_3 gemeinsam angesprochen, weil HAEN=0 ist */ mcp_write_register( MCP_0, MCP_IOCON, HAEN | MIRROR ); [/c] ist also gleichwertig mit
-
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
MCP23S17 (RPi) per Python schalten
eine fertige Python-Bibliothek: http://wiringpi.com/extensions/spi-mcp23s08-mcp23s17/
der Thread schon recht alt sein sollte. Ich habe ein Pythonmodul bei PyPi eingecheckt, das einen MCP23S17 abstrahiert: https://pypi.python.org/pypi/RPiMCP23S17/0.2.2
-
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
Falsch vermarktete MCP23S17 IO Expander Bords im Umlauf - Aufpassen
222940694980? (der Preis war für 5 Stück, $15) Wie man sich dort überzeugen kann, werden jene als MCP23S17 betitelt: "High-Speed MCP23S17 SPI Serial Interface Bidirectional 16Bit I/O Expander Module" Hier ist der Steckbrief: "Features: • 16-Bit Remote Bidirectional I/O Port: - I/O pins default
bis jetzt noch keine MCP23S17 Versionen mit dieser Bord auffinden konnte. Also ist ein Ersatz mit MCP23S17 auch nicht leicht beziehbar. https://ww1.microchip.com/downloads/en/devicedoc/20001952c.pdf https://www.ebay.com/
-
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
120 I/Os an Raspberry Pi
Hi! Mit einem externen Atmega wäre der MCP23S17 auch geeignet. 16 IOs pro IC, durch Adressen bis zu 8 Stück an einem CS. Gruss, Micha
Micha ... schrieb im Beitrag #2891048: > Mit einem externen Atmega wäre der MCP23S17 auch geeignet. > 16 IOs pro IC, durch Adressen bis zu 8 Stück an einem CS. Ich Doof habe das Chip-Select voll vergessen, danke. Der MCP23S17 gefällt mir sehr gut! Robert L. schrieb im Beitrag
-
Thread
MCP23S17 als DIL Version wird teuerer warum?
bitte von Antworten absehen. Den übrigen Antworten kann ich zumindest entnehmen, daß der MCP23S17 noch nicht abgekündigt ist, aber wohl immer seltener wird, da THT. Biliger wird er wohl nicht mehr. Am besten "Megen" bunkern! mfG
vor Jahren klug gewesen wäre NE567, XR2206, XR2209, 8038, AD584, TSA5511, PCF8574, MCP23017 und MCP23S17 zu horten oder ob man froh sein sollte, es nicht gemacht zu haben. Werde mich mal an "Supersaurus" wenden. Der paßt schon nicht mehr aufs Bild.
-
Thread
MCP23S17 SPI Reset Entstörung Welcher Wert
von REset SPI hat keine Reset-Leitung. Aber ich denke mal, du meinst den Reset-Anschluss vom MCP23S17. Peter K. schrieb im Beitrag #7394957: > welches ist der niedrigst mögliche/sinnvolle Wert? Kommt auf den Ausgang an, der diesen Eingang bedienen soll. 10k sind üblich, wenn man weniger braucht
-
Thread
Funktion mit Makro "verbiegen"
abgelegt (uint8_t mcp[16]). Diese kann über ein Makro direkt angesprochen werden [c] #define MCP23S17_PORT0 mcp[0][/c] Nun wird das ganze in der main wie folgt aufgerufen [c] MCP23S17_PORT0 = 1<<ct; [/c] Dieser Teil ist schon einmal so, ich mir das wünsche. Ich hätte aber gerne die Möglichtkeit
rausgeschiftet werden. Dann kannst du den Aufruf ja noch im Macro selbst verbergen.. [c] #define MCP23S17_PORT0(val) mcp23s17_write_hwaddr(hwaddr, outreg, (val)) #define MCP23S17_PIN0() mcp23s17_read_hwaddr(hwaddr, inreg) [/c]
-
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
g++ Makefile Raspberry PI
Debian. Das folgende funktioniert tadellos, wenn ich es direkt eingebe. g++ -o spi -l rt LIB/MCP23S17/mcp23s17.cpp LIB/SPI/spi.cpp LIB/HEIZUNG/heizung_rev05.cpp LIB/AD420/ad420.cpp main.cpp -l bcm2835 -std=c++0x Ist aber eine etwas unschöne Lösung, da sämtliche Dateien neu gebaut werden. Der Einsatz
Programmieren/INSPEKT/LIB/HEIZUNG/heizung_rev05.cpp:295: undefined reference to `__dso_handle' build/LIB/MCP23S17/mcp23s17.o: In function `__static_initialization_and_destruction_0': /home/pi/Programmieren/INSPEKT/LIB/MCP23S17/mcp23s17.cpp:344: undefined reference to `__dso_handle' collect2: ld returned 1 exit
-
Thread
MCP23S17 lesen geht nicht (AVR SPI)
moin, bei meinem Aufbau eines Atmega 328 mit dem MCP23S17 schreibe ich auf GPIOA (7-Segment-Display) und lese auf GPIOB (Taster ziehen auf GND). Das Schreiben funktioniert ohne Probleme. Lesen geht gar nicht. [c] #define SPI_PORT PORTB #define SPI_DDR
-
Thread
[S] MCP23S17 (SSOP28)
Kann mir jemand 6-10 Stück MCP23S17 (IO Expander, SPI) in der Bauform SS (= SSOP28) verkaufen? SDE_Mail@yahoo.com
-
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
AVR als SPI Slave-Peripherie
Kommunikation dazwischen. Es geht quasi um selbst gemachten Controller so etwa wie MAX7219 oder MCP23S17, nur für eigene Aufgaben bestimmt.
, die anderen beiden halten still. > > Wäre das auch mit einem SPI IO-Expander gegangen ? MCP23S17 unterstützt bis 8 IC auf einem ~SS. Das kostet aber zusätzliche Byte bei Übertragung: Adresse von IC - Adresse in IC - Daten, entweder schreiben oder lesen, aber nicht gleichzeitig. So arbeitet MCP23S17
-
Thread
Atmel Studio : C-Präprozessor-Befehle einrücken
sehr unübersichtlich aus, wenn C-Präprozessor-Befehle nicht eingerückt werden. [c] #ifdef LCD_MCP23S17_ADDR #if (LCD_MCP23S17_ADDR > 0x07) #error LCD_MCP23S17_ADDR : VALUE > 0x07 #endif #else #define LCD_MCP23S17_ADDR 0x00 #endif [/c] Gibt es hier eine Möglichkeit, dass umzustellen, dass
nach der Autoformatierung (Strg+K, Strg+D) nicht immer wieder eingerückt wird. [c] #ifdef LCD_MCP23S17_ADDR #if (LCD_MCP23S17_ADDR > 0x07) #error LCD_MCP23S17_ADDR : VALUE > 0x07 #endif #else #define LCD_MCP23S17_ADDR 0x00 #endif[/c]
-
Thread
6-CH 24V/100mA schalten
Mathias O. schrieb im Beitrag #4014396: > Kennt jemand einen MCP23S17 der auch für 24V geht? Nein, wenn der MCP23S17 nicht für 24V geht, geht der nicht dafür. Das steht sogar so im Datenblatt.
Nachdem ich ne Nacht drüber geschlafen hab, hab ich mich jetzt doch für den MCP23S17 entschieden. Und die Treiberstufen mach ich einfach diskret selber. Sind ja nur 6. Die Eingänge kann man ja über Spannungsteiler abfragen oder? Wieso hat der MCP23S17 eigentlich Adresspins? Der geht
-
Thread
Kritik zu Schaltplan mit Tiny841 + MCP23S17
Hallo, ich bräuchte mal wieder eure konstruktive Kritik zu einem Schaltplan von mir. Das ganze wird eine Schnittstelle für 24V-Ein-/Ausgänge auf Modbus RTU. Die Ausgänge sollen maximal mit 2mA belastet werden. Der Schaltregler und die Anschlüsse kommt auf eine andere Platine. Auf Grund von baulichen Vorgaben und Platz musste ich mich dafür entscheiden die Ein- und Ausgänge auszulagern und ich brauch unbedingt zwei USARTs, da kam mir dann der Tiny841 ganz recht. Danke schon mal.
-
Thread
Attiny 841 mit SPI ein Display ansteuern
Morgen Es gibt ja vom gleichen Hersteller den MCP23 S 17 und den MCP 23017. Einer ist für SPI und der andere für I2C Bus. Wenn ich die Pins vergleiche gibt es viele übereinstimmungen. Das bezieht sich ja auch auf die Register. Sehe ich das richtig? Bei
die Daten empfangen/liefern soll). A0 .. A2 = Adresseinstellung MCP - damit kann man bis zu 8 MCP23S17 mit nur einem CS haben. Die Register sind die gleichen (haste ja schon richtig erkannt).
-
Thread
Raspberry PI und Port Expander MCP23s17
Hallo Leute ich bekomme den Raspberry Pi mit dem oben genannten Port Expander nicht zum laufen. Zum konfigurieren der SPi-Schnittstelle benutze ich aus der wiringpi-Library folgende Befehle: wiringPiSPISetup (0, 10000000); Kanal 0 und 10 Mhz Laut Datenblatt muss ich folgende Werte über die SPI-Schnittselle zum Expander senden: wiringPiSPIDataRW (0x40, 0x01, 0X00); //GPIO_B als Ausgaenge Danach würde ich einen Reset senden wiringPiSPIDataRW (0x40, 0x13, 0x00); //Reset des GPIO_B danach wiringPiSPIDataRW (0x40, 0x13, 0b00001111); // 4 untersten Bits setzen Nun sollten eigentlich die 4 untersten
-
Thread
MCP23S17 an STM32F4 Problem
Hallo, ich habe folgendes Problem: Ich versuche gerade den MCP23S17 IO-Expander an meinem Discoveryboard zu betreiben. Leider tut sich garnichts. Ich möchte nur eine Ausgabe. Also die Pins an PortA des Controllers anschalten. Das Ossi sagt, dass der SCK läuft, CS
-
Thread
LED Bar am I/O Expanderbaustein MCP23S17
und Anregungen wäre ich sehr dankbar. Hier noch mal die verwendeten Bausteine: I/O Expander MCP23S17 https://docs.rs-online.com/0eb7/0900766b813214d0.pdf 10 Segment LED Bar Array https://docs.rs-online.com/bfff/A700000006787993.pdf
angegeben. Die typen leuchten so ab ca 4mA, können aber auch mit 30mA Betrieben werden was dann den MCP23S17 "Rösten" würde ;-)
-
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
Fleury LCD-Library plus mjkdz Port Expander?
cbi(PORT(db7_Port),db7_Pin); PORT(db7_Port)|=(gbi(lcdbyte,7))<<db7_Pin; #endif #if use_mcp23s17_lcd //mcp23s17A_send(0x12,lcdbyte); hwSpiA(0x12,lcdbyte); #endif #if use_twilcd64x || use_twilcd64 i2c_start_wait(64); i2c_write(lcdbyte); // i2c_stop(); #endif #if use_twilcd72x
i2c_write(lcdbyte+WERTpinE); // i2c_write(lcdbyte); // i2c_stop(); #endif #if use_mcp23s17_lcd /*mcp23s17A_send(0x12,lcdbyte); mcp23s17A_send(0x12,lcdbyte+WERTpinE); mcp23s17A_send(0x12,lcdbyte);*/ hwSpiA(0x12,lcdbyte); hwSpiA(0x12,lcdbyte+WERTpinE); hwSpiA(0x12,lcdbyte); #endif
-
Thread
Frage zu MCP23S17 mit internem PullUp-Widerstand
Worte zum Projekt falls es jemanden Interessiert. Ich versuche eine Platine zu entwerfen auf der 3 MCP23S17 4 ULN2803A steuern.(Ein MCP23S17 ist für das Vergeben der Adressen, sowie für das Reseten und Interrupten der anderen Beiden MCP23S17 gedacht. Auch bringt er ein paar LED's zum leuchten.) Da man
IC", direkt mit dem Adressport-0 des zweiten MCP23S17. Im Programm definiere ich den GPA0 als Input und setzte das Bit für den PullUp-Widerstand. Nun müsste der Adressport-0 ein definiertes High-Signal haben. Wenn ich das Bit für den PullUp-Widerstand
-
Thread
MCP23S17 als Porterweiterer nutzen, paar Fragen
Hey, ich wollte fragen, ist der MCP23S17 Als Baustein der zur I/O Porterweiterung ansteuerbar über Bascom ähnlich wie die normalen Ports des µCs? Also Portc.1 = Output? Oder gibt es sowas nicht? Gut man müsste den MCP23S17 erst einmal
-
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
[Verschenke] MCP23S17 / MCP23S18
Hallo! MCP23S17: 2*8Bit Port-Expander, SPI-Interface MCP23S18: 2*8Bit Port-Expander (Open Collector-Outputs), SPI-Interface Ich habe ein paar absolut neue MCP23S17 und MCP23S18 im DIP-Gehäuse übrig, die ich
Zu verschenken sind folgende "Pakete" möglichst an Schüler, Studenten, o.ä.: Paket A: 2 Stück MCP23S17 (beide im PDIP-Gehäuse) Paket B: 1 Stück MCP23S17 und 1 Stück MCP23S18 (beide im PDIP-Gehäuse) Schickt mir eine PM mit Eurer Adresse und der Angabe welches Paket ihr möchtet. Ich schicke Euch
-
Thread
SPI Bustreiber 74HC125
(MISO) über das Protokoll gesteuert aktiviert, ist > es kein Standard-SPI. So arbeiten z.B. MCP23S17 von Microchip. Die haben drei Adresselinien wie auch MCP23017 für I2C. Deshalb können auf einer ~SS - Linie bis acht MCP23S17 sitzen. MCP23S17 brauchen immer 3 Bytes: zuerst wird Adresse übertragen, dann Registeradresse innerhalb von MCP23S17, und danach wird Byte geschrieben oder gelesen. Microchip nennt das auch "SPI".
-
Thread
Probleme beim Auslesen zweier MCP23S17 mit ATmega2560
Ich habe zwei MCP23S17, jeweils die Eingänge 0-7 von GPIOA und die Eingänge 0-1 von GPIOB beschaltet. Die Eingänge 2-7 von GPIOB sind somit ungenutzt und liegen auf Masse. Als Mikrocontroller verwende ich einen ATmega2560
RESET, so könnte er nicht programmieren. So sollte hier alles in Ordnung sein. Wenn Reset von MCP23S17 nicht angeschlossen ist, dann arbeitet POR. Wilfried S. schrieb im Beitrag #6089005: > Ich vermute, dass entweder der SPI-Bus nicht sauber arbeitet So sieht das aus. Die Wege zu MCP23S17 sollten
-
Thread
DDR Messtechnik, Schnittstelle SI1.2/IMS1 --> USB
einsetzbar macht. Alle Pins der EFS3x13, für die ich Belegungen gefunden habe, stehen an Eingängen der MCP23S17 zur Verfügung (die MCP23S17 können auch als Ausgänge konfiguriert werden, z.B. um damit einen Drucker anzusteuern). Es gibt für alle der sechs Koax-Steckverbindungen Ein/Ausgänge am Prozessor. An
angeordnet sind. (die 2x7 Lötaugen müssen dann nur 1:1 miteinander verbunden werden) Nachdem ich die MCP23S17 im falschen Gehäuse bestellt hatte und die Bestellung der richtigen bei Mouser einen ganzen Monat bis zu mir gebraucht hat, gibt es nun Ergebnisse. Ich habe die Werte des DVM G1002.500 verfügbar
-
Thread
Frage zur Schaltzeit vom 74HC138N
jeden Eingang von HCS165 braucht man externe Pullup-Widerstand. Es gibt noch eine Möglichkeit: MCP23S17. Dann hat man 16 Eingänge mit Pullup, die auch über SPI gelesen sein können. Nachteil: ein Byte mehr bei Datenaustausch mit Mikrocontroller und Notwendigkeit, MCP23S17 initialisieren. D.h. etwas komplizierter
heißt zusätzlich und nicht unbedingt notwendige Störungsquelle. Und noch: mit HC(HCS)165 oder MCP23S17 kann man beliebige Tastenkombinationen, die zusammen gedruckt, ablesen. Analoge Umweg macht das nicht möglich. Mit HCS165 habe ich vor drei Jahren Orgelpedal gemacht. 30 Tasten mit Optocoppler
-
Thread
ESP8266 - Was macht man bei zu wenigen I/Os?
Einfach einen SPI-Portexpander wie den MCP23S17 nehmen. GPIO0 kannst Du als CS-Pin benutzen, nach dem Booten ist der frei, machst Du ja mit GPIO2 auch schon.
Hallo, Horst schrieb im Beitrag #6086707: > Einfach einen SPI-Portexpander wie den MCP23S17 nehmen. GPIO0 > kannst Du > als CS-Pin benutzen, nach dem Booten ist der frei, machst Du ja mit > GPIO2 auch schon. Das ist auch mein Favorit ist auch der MCP23S17. Prinzipiell kann man bis
-
Thread
SPI Funktion für XMega128A1 in Codevision
0; // Activate the CS pin PORTD.OUT = Bit_Reset(PORTD.OUT,4); delay_us(1); // Start MCP23S17 OpCode transmission mcpzw = SPI_SLAVE_ID | ((SPI_SLAVE_ADDR << 1) & 0x0E)| SPI_SLAVE_WRITE; spi(mcpzw); // Start MCP23S17 Register Address transmission spi(addr);
0; // Activate the CS pin PORTD.OUT = Bit_Reset(PORTD.OUT,4); delay_us(1); // Start MCP23S17 OpCode transmission mcpzw = SPI_SLAVE_ID | ((SPI_SLAVE_ADDR << 1) & 0x0E)| SPI_SLAVE_READ; spi(mcpzw); // Start MCP23S17 Register Address transmission delay_us(100); rd_data=spi(addr