Erweiterung von digitalen IO-Ports

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Für manche Aufgaben in Microcontrollern und digitalen Bausteinen werden oftmals digitale Steuersignale oder analoge Ausgangspannungen benötigt, die nur relativ langsam geändert werden müssen. Sollen dafür keine zusätzlichen Chips oder unnötig viele Pins am Controller verwendet werden, lässt sich die Zahl der Ports erweitern indem folgende Schaltungen eingesetzt werden:

Schieberegister mit Dämpfung

Multiplex-PWM als Port-Erweiterung für FPGAs

Die Schaltung besteht aus einem Schieberegister, das mit einem schnellen Taktsignal getrieben wird. Es erzeugt am Ausgang 4 unabhängige digitale Signale, die sich infolge der Dämpfungsglieder nicht direkt auswirken können. Bei einer geringen Zeitkonstante werden so glitches vermieden und es entstehen in der Flankensteilheit einstellbare digitale Signale. Wichtig ist, dass das zeitliche Verhältnis zwischen Umschaltphasen und statischen Signalen günstig genug ist. Bei sehr hohen Zeitkonstanten werden auf diese Weise multiplexte PWM-Ausgänge geschaffen, die mit bis zu etwa einem 1/4-tel der Taktfrequenz arbeiten können. Die kurzzeitig fehlerhaften Schaltungszustände, die beim Durchtakten eines neuen Musters entstehen, werden so bereits gut gedämpft, sodass quasi analoge Signale entstehen. Ferner können die Umschalteffekte bei der PWM-Generation berücksichtigt werden. Um sie als echte digitale Ausgänge nutzen zu können, kann ein Buffer mit Schmitt-Trigger nachgeschaltet werden, der auch als Leistungstreiber agieren kann.


Schieberegister mit Latch

Stabile Zusatzports mit Latch

Werden reine digitale Ausgänge mit hoher Qualität benötigt, die nicht zittern / glitchen dürfen, sollte ein Latch eingesetzt werden, das dann sogar mit einem der künstlich erzeugten Bits getaktet werden kann. Dazu muessen aber doppelt soviele Befehlssequenzen ausgegeben werden, damit das Latch-enable eine 0/1 sehen und schalten kann. Es sollte ein Latch mit Schmitt-Trigger-Eingängen verwendet werden.

Sicherer ist natürlich die Methode, den Takt zu trennen und insgesamt 3 Pins des Controllers oder FPGAs zu verwenden.


Dafür eignen sich die Bausteine HC165 und HC595.

Links