Im Forum und im Wiki
-
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