Forum: Mikrocontroller und Digitale Elektronik MCP23S17 Porterweiterung SPI


von Stephan (Gast)


Lesenswert?

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 habe ich mich für die 16 BIT I/O 
Expander entschieden.

Bin jedoch ein wenig mit der englischen Doku. überfordert.
Also an die AUsgänge kommen LED'S an die Eingänge Taster. Der Atmega 
läuft mit 16MHZ, es kommt hier absolut nicht auf Timing an. Muss also 
keine Assembler Routine sein. Ich möchte gerne den CS über einen sep. 
Ausgang des Atmega setzten, damit es keine Konflikte mit der SD-KArte 
gibt.

Was ich brauche ist folgendes: Bei den Ausgängen einfach nur 2 bytes 
schreiben, vorher auf Eingang schalten.

Bei den Eingängen: Pull Up setzten / Interrupt belegen (Sobalt eine 
Taste gedrückt wird) / zwei Bytes lesen.

Danke für Eure Ideen.

Gruss,

Stephan

von Rahul D. (rahul)


Lesenswert?

Deutsche Doku:
http://www.mikrocontroller.net/articles/Porterweiterung_mit_SPI

Den Rest deines Postings verstehe ich leider nicht (da keine Frage 
gestellt wird; BASCOM ist nicht mein Ding).

von Stephan (Gast)


Lesenswert?

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

von Vitali H. (vitali77)


Lesenswert?

Schau mal hier:

http://www.roboternetz.de/wissen/index.php/Portexpander_am_AVR#BASCOM-Code

weiter unten ist auch ein Bascom-Beispiel.

von Sören (Gast)


Lesenswert?

Hallo,

ich hole lieber einen alten Beitrag raus, als einen neuen zu schreiben. 
Auf der Suche nach der Lösung meines Problems bin ich leider noch nicht 
fündig geworden. Weder im Tutorial noch in anderen Beiträgen/Foren.

Es geht im speziellen um den MCP23S17. Ich habe ihn letztes Jahr 
erfolgreich betrieben. Nun möchte ich jedoch 2 davon an meinen ATmega16 
klemmen. Soweit ja eigentlich auch kein Problem und das Tutorial zeigt 
auch, wie sie in serie verschaltet werden. Nun verstehe ich aber nicht 
ganz, wofür die Hardware-Adress-Pins bei diesem MCP23S17 sind. Ändert 
sich dadurch die Schaltung? Dies scheint eine "Spezialität" von dem 
Baustein zu sein, habe es bei anderen Porterweiterungen nicht gefunden.

Vielleicht kann mir ja jemand weiterhlefen, was es sich mit den 
Hardware-Adress-Pins auf sich hat und was sich dadruch ggf. ändert.

Vielen Dank,

Sören

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

Das ist ein toller Baustein.
Man kann sie seriell hintereinander verschalten, muß es aber nicht.

Man kann jeden Baustein auch mit einem eigenen CS ansprechen, muß man 
aber nicht.

Man kann auch die Adressierung nutzen, dazu wird alles SPI-mäßig 
parallel geschaltet und die Adress-Anschlüsse werden belegt. Dann 
schickt man als ersten Befehl die Aktivierung der Adresse an alle 
(Register $0A) und kann danach mit der Adresse in den Befehlen jeden 
Baustein einzeln ansprechen.

von Sören (Gast)


Lesenswert?

Hey danke!!! Das bringt mich echt weiter!!!!

Schönen Abend noch.
Sören

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.