Forum: Projekte & Code Atmega 328P 20MHz PAL Video Terminal 60x30 Zeichen mit PS/2


von Stefan K. (x2701)


Angehängte Dateien:

Lesenswert?

Schönen Nachmittag,

ich möchte hier eine Weiterentwicklung eines früheren Projektes 
vorstellen.
Grundlage für die Entwicklung war 
Beitrag "Atmega8 VGA - SPI mit 16 statt 18 Takten pro Zeichen"

Es handelt sich hierbei um ein PAL Videoterminal mit 60x30 Zeichen. Der 
Pixeltakt beträgt 10MHz. Das Bild wird in Kombination mit dem SPI Modul 
und PB0 erzeugt. Während das SPI Modul 8 Pixel ausgibt wird im 
Hintergrund Pixel 9 berechnet und nach exakt 16 Prozessortakten für 2 
Prozessortakte ausgegeben. Danach übernimmt wieder das SPI Modul.

In dieser Version kann bereits eine PS/2 Tastatur an INT0 (Data) und 
INT1 (Clock) angeschlossen werden. Ein Schaltplan befindet sich im 
Anhang. Dadurch steht der UART für eine Kommunikation mit einem Host zur 
Verfügung. Das Timing funktioniert wie Folgt: Während des Bildaufbaus 
wird die Clock Leitung auf low gezogen um der Tastatur mitzuteilen, dass 
derzeit keine Zeichen empfangen werden können. Nachdem ein Halbbild 
aufgebaut ist und die vertikale Synchronisierung durchgeführt wird, 
schaltet die Software die Clock Leitung hochohmig. Eine Kommunikation 
mit der Tastatur kann jetzt stattfinden.

Folgende Terminalfunktionen sind implementiert:

Insgesammt können 60x30 Zeichen dargestellt werden

Empfangen von Zeichen per UART mit 115200 8 N 1

Scrolling durch Bildpointerverschiebung. Dies spart Rechenzeit, da immer 
nur 1 Zeile gelöscht werden muss und kein Kopiervorgang notwendig ist.

Line Feed

Carriage Return

Backspace

Tab

Clear Screen

Zeichen werden von der Tastatur eingelesen und per UART übermittelt. 
Derzeit ist nur ein US Tastaturlayout verfügbar.

Blinkender Cursor (die Frequenz kann eingestellt werden).

Bauteil Parameter:

R1 470 Ohm
R2 1kOhm
R3 10kOhm
R4 10kOhm
Q1 20MHz
C1 22pF
C2 22pF
C3 100nF

Im Anhang ist eine Bootsequenz eines VDSL Modems zu sehen, welches über 
die serielle Schnittstelle mit dem Atmega 328P verbunden ist. Als 
Levelshifter (3.3V->5V) habe ich Sparkfun #12009 verwendet.

: Bearbeitet durch User
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.