www.mikrocontroller.net

Porterweiterung mit SPI

Inhaltsverzeichnis

[Bearbeiten] Porterweiterung

Mit Schieberegistern lassen sich die Ports eines Mikrocontrollers auf einfache und billige Weise erweitern. Zur Ansteuerung der Schieberegister ist ein im Controller integrierter SPI-Bus nützlich, aber nicht unbedingt notwendig, da sich die Kommunikation auch in Software realisieren lässt.

[Bearbeiten] Ausgänge

Um einen Controller mit zusätzlichen Ausgängen zu erweitern, bieten sich Schieberegister vom Typ 74xx595, am besten 74HCT595 (bessere Schwelle der Eingangsspannungen bei 5V-Versorgung des ICs aber 3,3V-Signalen vom uC), an. Die folgende Schaltung zeigt den Anschluß von theoretisch beliebig vielen 74xx595 an einen SPI-Bus:

bild:hc595-porterweiterung.png

Der SPI-Bus muss auf CPHA=CPOL=1 gestellt sein. Das auszugebende Bitmuster (z.B. 16 Bit im o.a. Beispiel) wird durch das erste Schieberegister hindurchgetaktet und über dessen Ausgangsspin in das zweite Schieberegister hineingetaktet. Dadurch wandert das Bitmuster sequentiell durch beide Bausteine. Nach 16 Taktzyklen steht es dann stabil und parallel an den Ausgängen der beiden Bausteine an.


Wenn ein höherer Strom als 6mA geschaltet werden soll, dann gibt es auch fertige Bausteine:

Low-Side-Schalter:

Die TPIC6x595-Bausteine von TI, die zwischen 100mA und über 1A dauernd "sinken" können, weil es Open-Drain-Ausgänge sind, die Lasten bis 33V/50V (je nach IC) gegen Masse schalten. MICREL bietet hier seine MIC584x-Serie, die allerdings etwas "preisempfindlicher" sind.

High-Side-Schalter:

Der MIC5891 von Micrel kann je Ausgang bis zu 500mA bei 35V liefern (aber nicht alle Ausgänge gleichzeitig).

[Bearbeiten] Eingänge

Die Anzahl der Eingänge kann z.B. mit parallel-in/serial-out Schiebregistern des Typs 4021 erhöht werden (z.B. Philips HEF4021B). Besonders verbreitet ist heutzutage der Typ 74xx165. Alternativ kann z.B. auch ein 74xx597 verwendet werden. Durch dessen zusätzlichen Eingangspuffer (Latch) ist der Schaltungsaufwand allerdings höher.

Beispielschaltung für den 74xx165:

Bild:74xx165.png


Beispielschaltplan mit 74HC595 und 74HC165 an einem SPI Bus: http://www.mikrocontroller.net/attachment.php/30856/SPI_74HC595.pdf


[Bearbeiten] Siehe auch

MCP23S09 von Microchip (bei Betrieb mit 3,3V sind die GPIO Ports 5V tolerant)

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net