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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.