Porterweiterung durch ATtiny Prozessor
- Details
- Zugriffe: 9729
In Mikroprozessor-Anwendungen hat man oft das Problem, dass man zu wenige Ports für die Peripherie, d.h. für das LCD, und die Sensoren usw. hat. Abhilfe kann hier ein Schieberegister mit parallelem Eingang und seriellem Ausgang bieten, wenn die Verarbeitungsgeschwindigkeit nur eine untergeordnete Rolle spielt. So lassen sich z.B. durch die Verwendung eines 8-Bit-Schieberegisters, bei acht benötigten Eingängen, bis zu fünf am Mikroprozessor einsparen, wenn man davon ausgeht, dass zur Steuerung zwei Leitungen und für die Datenübernahme eine Leitung bzw. Port benötigt werden.
Hierfür stehen TTL- und CMOS-Bausteine wie z.B. ..LS oder ..HC165 .. 166 zur Verfügung. Neben den bereits erwähnten Steuereingängen sind sie kaskadierbar und können somit, bei Bedarf, auf weitere benötigte Eingänge ausgebaut werden. Zusätzlich verfügen sie über sogenannte Inhibit-Eingänge, über die diese Schieberegister freigegeben bzw. adressiert werden können.
Typ | ...HC165 | ...HC166 |
8-Bit Schieberegister mit parallelen Eingängen und seriellem Eingang | 8-Bit Schieberegister mit parallelen Eingängen und seriellem Eingang | |
ser. Eingang | 1 Serial Data Input | 1 Serial Data Input |
par. Eingänge | 8 Parallel Data Inputs | 8 Parallel Data Inputs |
Ausgänge | 2 Serial Data Outputs | 1 Serial Data Output |
Steuerleitungen | Serial Shift /Parallel Load | Serial Shift /Parallel Load |
2 Clock Inputs | 2 Clock Inputs | |
1 /Clear |
Eine weitere Möglichkeit der Erweiterung entsteht durch die Verwendung einfacher und auch preiswerter Mikroprozessoren, wie denen aus der ATtiny-Reihe von Atmel. Am Beispiel eines ATtiny26 als Schieberegister soll dies näher erleutert werden.
Um die Beschaltung des Mikroprozessors möglichst einfach zu halten, wird der interne Oszilator des Prozessors verwendet. Für die externe Beschaltung wird das Port A0..7 als paralleler Eingang mit programmierten Pullup-Widerständen eingesetzt. Als serieller Ausgang dient das Port B6. Port B4 steuert das Laden des Schieberegisters und Port B5 schiebt die Bits zum Ausgang des Registers. | ||
Für die Programmierung des Fuse Registers werden folgende Einstellung gemacht: High: 0xF7 Low: 0x64 daraus ergibt sich u.a. Int. Osc. 8 MHz |
||
Entwickelt wurde die Software mit AVR Studio 5 von Atmel und zur Programmierung des ATtiny26 wurde der Dragon-Programer eingesetzt. | ||
ATTiny26_ShReg_c.pdf (C-File) | ||
Und so funktioniert das 8-Bit Schieberegister: Die an den Eingängen liegenden digitalen Pegel werden mit einem kurzen Low-Pegel am /LOAD-Input (PB4) übernommen. Dabei wird auch das Register in seinen Ausgangszustand gebracht und das erste Bit an den Ausgang übertragen. Durch einen kurzen Low-Pegel am /SHIFT-Input (PB5) wird der Inhalt des Register um ein Bit nach linls geschoben und somit das nächste Bit an den Ausgang (PB6) gelegt. |
||
|
||
Ein Anwendung für dieses Schieberegister wird im Beitrag Tuning für den Kaffeeautomaten, Teil II gezeigt. |