-
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
der 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->
-
Thread
MCP23S17 ansteuern
); /* 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 mit I/Os. Hatte mir vorab auch den MCP23S08/9, 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.
-
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
0x01); // GPB0 computed against def val mcp_writeByte(mcp_adr[2], 0x06, 0xFF); // GPA0-GPA7 interrupt default val = 1 mcp_writeByte(mcp_adr[2], 0x07, 0x01); // GPB0 interrupt default val = 1 mcp_writeByte(mcp_adr[2], 0x04, 0xFF); // GPA0-GPA7
-
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
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
{ 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
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
-
Artikel
Datei:Mcp23s17.pdf
SPI I/O Expander
-
Thread
SPI mit Attiny 841 und MCP23S17
[i]); // 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
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
(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<<
-
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
, 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
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:
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
-
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
-
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
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
-
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
-
Thread
MCP23S17 (RPi) per Python schalten
/gpio-mcp23s08.c (allerdings weis ich nicht, wie man den benutzt..) [EDIT] Es gibt auch eine fertige Python-Bibliothek: http://wiringpi.com/extensions/spi-mcp23s08-mcp23s17/
wenn 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
MCP23S17 als DIL Version wird teuerer warum?
jetzt 1,30 Euro. Vor Monaten bereits durchbach das das abgekündigte PCF8574 die 2 Euro Mauer. MCP23S17 und sein I2C-Bruder MCP23017 scheinen die neuen Kandidaten zu sein. Und das vor dem Hintergrund immer billiger werdender China-Importe. Weiß darüber jemand mehr? mit freundlichem Gruß
beantworten, ob es 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
Widerstand 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
Woran denkst Du, habe ich den 23S17 angeschlossen? Meinst Du der kann 50A treiben?...
-
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
ziehen auf GND). > Das Schreiben funktioniert ohne Probleme. Lesen geht gar nicht. Sind PullUp's gesetzt (Entweder Intern oder Extern)? Und das ist ein Trifftiges Argument: Stefan ⛄ F. schrieb im Beitrag #6767609: > Der Fehler ist, dass du die Funktion SPI_Read() nirgends aufrufst. ;-)
-
Thread
MCP23S17 Bit für Bit auslesen
Hallo werte Kollegen, ich stehe mal wieder auf dem Schlauch… Ich habe mehrere MCP23S17 und möchte diese Bit für Bit auslesen und dann Integer Werte (0 bzw 1 )in einem Array ablegen um diese zu bearbeiten um sie später auf andere MCP´s zu schreiben. Hier habe ich natürlich auch
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)
-
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
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
Ich würde mir es ja eher so machen: > #define MCP23S17_OPCODE (0x40|(MCP23S17_ADDR<<1)) *ohne Gewähr*
-
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
-
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
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,
(SPI2, SPI_I2S_FLAG_TXE)); SPI_I2S_SendData(SPI2, Daten); while(!SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE)); Daten = SPI_I2S_ReceiveData(SPI2); return Daten; }
-
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
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 an den Steuer-Eingängen der beiden untergeordneten Chip's (Adresse, Reset und Interrupt) definierte Pegel braucht hatte ich überlegt dies mit den Integrierten PullUp-Widerständen der als Input definierten Ports des ersten MCP23S17 zu realisieren. Nur bin ich
-
Thread
Wago 788 Relais über MCP23S17 schalten
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
-
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
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
-
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
kein 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
-
Thread
Dimmensionierung H11L2SM an MCP23S17
Hallo Leute, ich würde gerne einen MCP23S17 (Vcc 3,3V) zur Erweiterung der Eingänge an meiner Schaltung nutzen. Eingangsseitig liegen 12V DC an. Die Eingänge würde ich gerne galvanisch voneinander trennen und zudem Hardewaremäßig (mittels
benötige oder ob der Pull-Down Widerstand ausreicht. Ich weis auch nicht wo ich im Datenblatt vom MCP23S17 die Angabe finde, wie viel Strom er bei HIGH am Input benötigt. Vielen Dank für euere Hilfe.
-
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
ich 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
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
@3 =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
-
Thread
Junkers CAN-Bus Protokoll
Noch ein kleiner Hinweis zur Verkabelung (bzw. der Software) die SPI_Pin Nr. sind nicht die Pin's des ESP_Platine bzw. zur Software. static const byte MCP2515_SCK = 18 ; // SCK input of MCP2515 static const byte MCP2515_MOSI = 23 ; // SDI input of MCP2515 static const byte MCP2515_MISO
Noch ein kleiner Hinweis zur Verkabelung (bzw. der Software) die SPI_Pin > Nr. sind nicht die Pin's des ESP_Platine bzw. zur Software. > > static const byte MCP2515_SCK = 18 ; // SCK input of MCP2515 > static const byte MCP2515_MOSI = 23 ; // SDI input of MCP2515 > static const byte MCP2515_MISO
-
Thread
I2C Unterschied einfacher LCD
gebunden. Noch eine Option: statt I2c_Porterweiterung SPI-Porterweiterung zu nehmen. So sind z.B. MCP23008 und MCP23S08, genau wie auch MCP23017 und MCP23S17, beinahe identisch, nur bei ersten (ohne S) I2C, bei den zweiten (mit S) SPI-Interface. Mit SPI geht es deutlich schneller, als mit I2C. Jörg
als 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=
-
Thread
120 I/Os an Raspberry Pi
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
Mit dem MCP23S17 als IO-expander kann man das Polling erheblich reduzieren wenn NUR seine Interruptausgänge periodisch abgefragt werden. Etwa so - Hey, der MSP23S17 hat seinen Interruptausgang auf High gesetzt,
-
Thread
MCP23S18 I/O Expander
Write_Buffer_Handle4) & DRV_SPI_BUFFER_EVENT_COMPLETE)); CS_IO_EXPANDEROn(); } uint8_t Read23s17(uint8_t reg) { SPITXbuffer[0] = 0x41; // 4 is fix, 1 is SPI address #0 with R/W=1 SPITXbuffer[1] = reg; // Select MCP23S17 CS_IO_EXPANDEROff(); Write_Buffer_Handle4
Mit einem 23S17 bin ich auf die Nase gefallen wegen Spannungen. µC BluePill mit 3V3 23S17 an 5V und an den GPIOs ein 5V LCD128x64 uralt. Ging ein paar Stunden/Tage und dann war Schluß, LCD reagierte nicht
-
Thread
Die andere Firmware für AVR-NET IO
auf jedenfall Fullduplex zu verwenden. CA Dirk P.s. Werde nachher mal eine neue Version vom OpenMCP auf das SVN packen wo man in der Config.h zusätzlich Full/Halfduplex wählen kann.
die DHCP-Anfrage meines AVR-Net und beantwortet sie mit einem Broadcast, aber trotzdem meldet OpenMCP "DHCP-Config fehlgeschalgen". Hier das Log des DHCP-Servers: [08/06/2009 17:32:45] Adapter 0 has recognized an incoming request [08/06/2009 17:32:45] DHCP message = DHCPDISCOVER [08/06/2009 17
-
Thread
Funktion mit Makro "verbiegen"
zum "verbiegen" einer Funktion mittels Makro. Was ich gerne hätte, wäre etwas wie dieses [c] MCP_PORT0 |= 1<<bit; [/c] Ich habe vorerst ein Array in der C-File der Lib abgelegt (uint8_t mcp[16]). Diese kann über ein Makro direkt angesprochen werden [c] #define MCP23S17_PORT0 mcp[0][/
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
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?
Signal vom Master an den Slave) SCK Clocksignal (fuer die Daten) CS = Chip Select (wenn mehrere MCP am SPI hängen wird per CS ausgewählt, wer 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
-
Thread
kennt jemand sich aus mit MC23017 IO-Board
der nur geringfuegig von Adafruit-examples geaenderte Code : [c] // Blinks an LED attached to a MCP23XXX pin. #include <Wire.h> // ok to include only the one needed // both included here to make things simple for example //#include <Adafruit_MCP23X08.h> #include <Adafruit_MCP23X17.h> #define LED_PIN 0 // MCP23XXX pin LED is attached to // only used for SPI //#define CS_PIN 6 // uncomment appropriate line //Adafruit_MCP23X08 mcp; Adafruit_MCP23X17 mcp; void setup() { Serial.begin(9600);
-
Thread
g++ Makefile Raspberry PI
mit 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
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
-
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
AVR als SPI Slave-Peripherie
und Kommunikation dazwischen. Es geht quasi um selbst gemachten Controller so etwa wie MAX7219 oder MCP23S17, nur für eigene Aufgaben bestimmt.
außerdem kann man einige Operationen zusammensetzen (z.B. E1=0 + DB-Schieberegister von Z zu Aktiv, wofür MCP23S17 mehrere 3-Bytes-Befehle braucht).
-
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,
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]