Erweiterungsport Belegung
Aus c't-Bot Wiki
Inhaltsverzeichnis |
Einführung
Die Porterweiterung wird beim c't-Bot durch drei Schieberegister realisiert. Ein Schieberegister ist im Prinzip ein Seriell zu Parallel Wandler. Synchron zu einem Taktsignal werden die Daten seriell über einen Port vom Prozessor in das Schieberegister geschoben. Nach Übertragung von 8 Bits liegt das Signal am 8-Bit Parallel Ausgangsport an. Während der Übertragung bleiben die Ausgangssiganle durch den Ausgangs Datenlatch des 74HC595 stabil. Jeweils 1 Prozessor Pin wird für die Selektierung (Enable) des entsprechenden Schiebregisters benötigt.
Zur Ansteuerung der Schieberegister werden insgesamt 6 Prozessor Pins benötigt.
| Port | Funktion |
| PC0 | serielle Daten |
| PC1 | serieller Takt |
| PC2 | Enable LCD Port |
| PC3 | Enable Enable Port |
| PC4 | Enable LED Port |
| PC5 | Busy Flag LCD Port |
LED Port
Auf dem c't-Bot befinden sich insgesamt 8 LEDs, die sich für Statusanzeigen benutzen lassen. Über Port PC4 wird der LED Port enabled/disabled. Über Port PC0 werden die Daten seriell übertragen und synchron zum Takt von PC1 in dass Schieberegister geschoben.
Port Belegung
| Port | Funktion | Anmerkung |
| P0 | LED1 | links, blau |
| P1 | LED2 | rechts, blau |
| P2 | LED3 | rot |
| P3 | LED4 | orange |
| P4 | LED5 | gelb |
| P5 | LED6 | grün |
| P6 | LED7 | blau |
| P7 | LED8 | weiß |
Schaltplan
Enable Port
Über den Enable Port können einzelne Baugruppen (Sensoren) des c't-Bots enabled/disabled werden. Das spart Strom. Über Port PC3 wird der Enable Port enabled/disabled. Über Port PC0 werden die Daten seriell übertragen und synchron zum Takt von PC1 in dass Schieberegister geschoben.
Portbelegung
| Port | Funktion | Anmerkung |
| P0 | ENA_ABSTAND | Enable Distanzsensoren (GP2D12) |
| P1 | ENA_RADLED | Enable Radencoder (Odometrie) LEDs (CNY70) |
| P2 | ENA_SCHRANKE | Enable Lichtschranke (IS471F) |
| P3 | ENA_KANTLED | Enable Absturzdetektor LEDs (CNY70) |
| P4 | ENA_KLAPPLED | Enable Klappensensor LED (CNY70) |
| P5 | ENA_MAUS | Enable Liniensensor LEDs (CNY70) |
| P6 | ENA_ERW1 | Enable Erweiterung 1 |
| P7 | ENA_ERW2 | Enable Erweiterung 2 |
Schaltplan
LCD Port
Der c't-Bot läßt sich mit einem LCD-Modul erweitern. Über Port PC2 wird der LCD Port enabled/disabled. Über Port PC0 werden die Daten seriell übertragen und synchron zum Takt von PC1 in dass Schieberegister geschoben. Über PC5 wird das Busy Flag des LCD Moduls angeschlossen. Leider ist dieser Pin am falschen Datenbit angeschlossen, und wird derzeit von der Software nicht ausgewertet. Durch eine Modifikation am c't-Bot läßt sich das Busy Signal an PC5 abfragen.
Portbelegung
| Port | Funktion | Anmerkung |
| P0 | LCD1 | Datenbus Bit0 |
| P1 | LCD2 | Datenbus Bit1 |
| P2 | LCD3 | Datenbus Bit2 |
| P3 | LCD4 | Datenbus Bit3 |
| P4 | LCD5 | Datenbus Bit4 |
| P5 | LCD6 | Datenbus Bit5 |
| P6 | LCD7 | Datenbus Bit6 |
| P7 | LCD8 | Datenbus Bit7 |
Das LCD-Modul selbst wird über einen 16poligen (2x8) Wannenstecker angeschlossen. Die Belegung entspricht dem üblichen Standard der meisten LCD-Module. Über einen Jumper (BR1) kann man die Hintergrundbeleuchtung an/abschalten.
Steckerbelegung ST4
| Pin | Bezeichnung | Beschreibung |
| 1 | GND | Masse |
| 2 | VCC | Spannungsversorgung +5V |
| 3 | VEE | Kontrast Poti 0..0,5V |
| 4 | RS | Register Select, 1=Daten schreiben / 0=Kommando senden. |
| 5 | R/W | 1=Read / 0=Write zum lesen / schreiben in das Display RAM |
| 6 | Enable | Fallende Flanke -> Übertragen des Kommandos oder der Daten, H-Pegel -> Lesen von Daten aus dem Display |
| 7 | DB0 | Datenbus Bit0 LSB |
| 8 | DB1 | Datenbus Bit1 |
| 9 | DB2 | Datenbus Bit2 |
| 10 | DB3 | Datenbus Bit3 |
| 11 | DB4 | Datenbus Bit4 |
| 12 | DB5 | Datenbus Bit5 |
| 13 | DB6 | Datenbus Bit6 |
| 14 | DB7 | Datenbus Bit7 MSB |
| 15 | GND | Masse Hintergrundbeleuchtung |
| 16 | VCC | Spannungsversorgung Hintergrundbeleuchtung, mit Vorwiderstand |
Schaltplan
Achtung:
Fehler im Schaltplan. Der Port PC5 sollte eigentlich das Busy-Flag des LCD-Moduls abfragen. Dieses liegt aber an DB7 an, nicht an DB0. Derzeit ist die Abfrage des Busy-Flags deshalb nicht möglich. Abhilfe könnte der LCD Busy Patch bringen, dies wird derzeit aber von offizieller Seite leider nicht empfohlen. Der aktuelle c't-Bot Code arbeitet weiterhin mit Delays.
Unterschiedliche Backlight Belegung. Es gibt auch LCD-Module mit anderer Backlight Belegung. Pin 15 und 16 sind dabei getauscht. Bei Verwendung eines anderen LCD-Moduls hilft ein Blick ins Datenblatt.
LCD-Module mit negativer Kontrastspannung. Es gibt LCD-Module für den erweiterten Temperaturbereich -20°...+70°. Diese benötigen eine negative Kontrastspannung. Diese LCD-Module funktionieren hier nicht.
Signalverlauf
Weblinks
- c't-Bot Forum - Hardware Patch LCD Busy-Bit