Projekt
Hardware
Bedienung
BASIC (1)
BASIC (2)
BASIC (3)
Interna
Beispiele
Erweiterungen
Bibliotheken
Treiber
Programme

Download:



Bezugsquellen:
Bausatz
Leerplatine

AVR-ChipBasic2: Hardware

V1.28 (c) 2006-2010 Jörg Wolfram



1 Allgemeines


1.1 Rechtliches
Das Programm unterliegt der GPL (GNU General Public Licence) Version 3 oder höher, jede Nutzung der Software/Informationen nonkonform zur GPL oder ausserhalb des Geltungsbereiches der GPL ist untersagt!
Die Veröffentlichung dieses Projekts erfolgt in der Hoffnung, daß es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, auch ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK.
Alle im Text genannten Marken sind Eigentum des entsprechenden Inhabers. Alle im Text genannten Marken sind Eigentum des entsprechenden Inhabers.

2 Minimale Hardware


2.1 Schwarzweiss BAS Version
Für eine minimale Beschaltung reicht schon ein Steckbrett, eine Streifenleiter- oder eine Lochrasterplatte aus. Lediglich die Steckverbinder passen in den meisten Fällen nicht. Bei Problemen mit der Tastatur empfiehlt es sich, für die Clock (PB0) und Datenleitung (PD0) jeweils einen Pullup-Widerstan von ca. 4,7K vorzusehen.





2.2 Farbversion (SCART)
Damit lässt sich allerdings nur ein Graustufenbild ausgeben. Für Farbe auf dem TV benötigt man entweder einen FBAS-Encoder oder einen Scart-Anschluss. Letzterer ist die einfachere Lösung und lässt sich einfach realisieren. Über den 180-Ohm-Widerstand an Pin 18 des Scart-Steckers wird dem TV mitgeteilt, dass es die RGB-Eingänge nutzen soll. Bei manchen TVs mit mehreren Scart-Eingängen geht RGB nur am ersten, in dem Falle wird dann ein Graustufenbild dargestellt.





2.3 Die Universalversion
Um flexibler zu sein, wurde bei der Platine eine 9-polige SUB-D Buchse als Videoanschluss gewählt. Hier können sowohl monochrom BAS, Scart, ein FBAS-Encoder oder auch ein PAL-/NTSC taugliches TFT angeschlossen werden. Der Anschluss 9 der Buchse sollte nur bei Verwendung des CPLD-FBAS-Encoders belegt werden, da es andernfalls eventuell zu Bildstürungen kommen kann. Aus dem gleichen Grund dürfen an diesem Anschluss auch keine längeren Leitungen angeschlossen werden.



Um selbst Adapter entwickeln zu können ist es wichtig, die Belegung der 9-poligen SUB-D Buchse zu kennen:


Anschluss Signal
1 Video Blau
2 Video Rot
3 Video Grün
4 VSYNC
5 HSYNC/CSYNC
6 +5V
7 Audio
8 Video BAS
9 Clock Sync
Gehäuse GND (0V)


3 Video-Adapter für den Uni-Anschluss


3.1 BAS-Signal
Dazu müssen einfach nur die Leitungen angeschlossen werden.





3.2 SCART-Anschluss
Über den 180-Ohm-Widerstand an Pin 18 des Scart-Steckers wird dem TV wieder mitgeteilt, dass es die RGB-Eingänge nutzen soll. Bei manchen TVs mit mehreren Scart-Eingängen geht RGB nur am ersten, in dem Falle wird dann bei Nutzung eines anderen Scart-Eingangs nur ein Graustufenbild dargestellt.





3.3 TFT-Display
Das Beispiel zeigt beispielhaft den Anschluss von NTSC-TFT Displays, wie sie teilweise gebraucht oder als Ersatzteile erhältlich sind. Die Beschaltung ist nur eine Minimalvariante, insbesondere fehlt jeder Schtz des Displays vor Signalausfällen. Kritisch ist dabei eigentlich das HSYNC Signal, fällt es aus (z.B. beim Flashen des Mikrocontrollers über die ISP-Schnittstelle oder bei Ausfall der 5V-Versorgung) kann es zu bleibenden Schäden am Display kommen.





4 Die Schnittstellen
Neben Tastatur, Video und ISP/SPI hat AVR-ChipBasic drei weitere Schnittstellen, um mit der "Aussenwelt" kommunizieren zu können.





4.1 Die serielle Schnittstelle
Da der USART bereits für den Tastaturanschluss verwendet wird, wird die serielle Schnittstelle in Software realisiert. Systembedingt lässt sich die TX(Sende)-Leitng aber nur 1 mal pro Bildschirmzeile aktualisieren. Daraus ergibt sich die recht niedrige Geschwindigkeit von nur 1200 bzw. 2400 Bps. Im Gegensatz zu anderen Lösungen wird dafür kein extra Schnittstellen-IC benötigt. Ein Timer-Ausgang bildet mit zwei Schottky-Dioden und zwei Kondensatoren eine Ladungspumpe, die ca. -4 V erzeugt. Diese liegt über einen Widerstand am TX-Anschluss an. Soll jetzt eine "0" ausgegeben werden, schaltet der Ausgang des Mikrocontrollers einen PNP-Transitor durch. Dadurch liegen am TX-Anschluss jetzt 5V (-Ucesat).
Empfangsseitig wird die Eingangsspannung mittels Vorwiderstand und zweier Schottky-Dioden auf 0..5V begrenzt. Das Signal am Portpin ist dadurch zwar negiert, da die Ausertung in Software erfolgt ist das aber kein Problem.
Alternativ lassen sich die Signalpegel auch so konfigurieren (Konfigurationsseite), dass ein "normaler" Schnittstellenwandler (z.B. MAX232) angeschlossen werden kann.

4.2 Die zweite serielle Schnittstelle (nur ATMega644P)


Ab Version 1.25 kann auch die zweite serielle Schnittstelle des ATMega644P genutzt werden. Hier können z.B. Pegelwandler oder auch ein MIDI-Interface angeschlossen werden. Diese Schnittstelle lässt sich aber nicht als System-Schnittstelle nutzen. Zu beachten ist, dass das Eingangssignal der System-Schnittstelle dafür nunmehr an PD1 (Pin 15) anliegt und nicht mehr an PD3 (Pin 17). Diese Änderung ist leider notwendig geworden, um den zweiten UART des ATMega644P nutzen zu können. Über die Konfigurationsseite lässt sich zwischen beiden Pin-Varianten umschalten, wobei die zweite serielle Schnittstelle nur dann nutzbar ist, wenn der Eingang der ersten auf PD1 liegt. Diese Beschaltung lässt sich natürlich auch mit dem ATMega644 nutzen.

4.3 Die parallele Schnittstelle
mit der parallelen Schnittstelle lassen sich nicht nur Drucker ansteuern, es können auch digitale Signale ausgegeben und abgefragt werden. Ausserdem können auch analoge Spannungen im Bereich 0-5V gemessen werden. Die beiden Steuersignale (Strobe und Busy) lassen sich aus dem BASIC heraus nicht direkt steuern sondern werden nur zum Anschluss von Druckern benötigt. An Pin 16 (/INIT) kann die interne +5V Spannung herausgeführt werden, damit können kleinere I/O Aufgaben auch mit der internen Stromversorgung gelöst werden. Alle Datensignale sind über Widerstände zur Strombegrenzung im Kurzschlussfall nach aussen geführt.

4.4 Die I2C-Schnittstelle
Die I2C-Schnitstelle nutzt das TWI-Interface im Mega644. Dieses ist identisch zu I2C, heisst aber aus lizenzrechtlichen Gründen anders.
Der Signalautausch findet über zwei Leitungen, SCL (Serial Clock) und SDA (Serial Data) statt. Darüber können serielle EEPROMs, Temperatursensoren etc. angeschlossen werden. Damit die angeschlossene Peripherie nicht in jedem Fall eine extra Stromversorgung braucht, sind am I2C Anschluss auf der Platine auch +5V ond GND verfügbar.
Ebenfalls auf der Platine befinden sich zwei 8-polige Sockel für serielle EEPROMs der Typen 24C64 ...24C512 wobei die Adressen 0 und 1 vorverdrahtet sind. Die genutzte Adresse lässt sich im Konfigurationsmenü einstellen, wobei XPOKE und XPEEK nur mit der voreingestellten Adresse funktionieren.

4.5 Die SPI-Schnittstelle
Die SPI-Schnittstelle ist identisch mit der Programmierschnittstelle (ISP), an die auch das Dataflash-Modul angeschlossen wird. Dataflash-Modul angeschlossen wird.

5 Die Platine


5.1 Das Beispiel-Layout
Auch wenn die Schaltung so einfach ist, dass sie problemlos auf einem Steckboard oder einer Lochraster- bzw. Streifenleiterplatte aufgebaut werden kann, ist für den dauerhaften Betrieb und zum anschließen von Erweiterungen eine kompakte Platine doch recht nützlich. Die Platine ist als 8-Farben Version für den Universalanschluß ausgelegt und funktioniert sowohl mit dem Mega16 (AVR-ChipBasic) als auch mit dem Mega32 (AVR-ChipBasic32) und natürlich mit dem Mega644 (AVR-ChipBasic2), wobei die beiden ersteren einen 16MHz Quarz anstelle des beim Mega644 verwendeten 20MHz Quarzes benötigen. Das Layout wurde mit dem Programm "PCB" erstellt, die entsprechende Datei ist im Ordner hardware zu finden, ebenso eine PNG-Datei mit 300dpi Auflösung. Natürlich ist jedem freigestellt, sich sein eigenes Platinenlayout zu machen.

5.2 Bestückung der Platine
Die Platine enthält bis auf ein paar Ausnahmen, die für die Funktion nicht zwingend erforderlich sind, nur bedrahtete Bauelemente. Die SMD Kondensatoren und der 4K7 Widerstand für die RESET-Leitung verbessern aber die Stabilität und sollten, wenn möglich, auch mit bestückt werden. Zusätzlich befindet sich auf dem Board ein einfacher Spannungsregler für die 5V, damit kann die Versorgungsspannung in etwa zwischen 6,5 und 15V liegen. Bei höheren Spannungen als 9V und beim Anschluß von Zusatzhardware empfiehlt sich ein Kühlblech oder Kühlkörper für den Spannungsregler (7805).





5.3 Die Erweiterung auf 16 Farben
Die Original-Platine war/ist universell auf 8 Farben ausgelegt, da die Varianten mit dem Mega16 und dem Mega32 sowie ältere ChipBasic2 Versionen den 16-Farb Modus nicht kennen. Auch die Käuflich erhältliche Platine ist in der derzeitigen Version nur auf 8 Farben ausgelegt. Mit 4 zusätzlichen Widerständen lässt sich die Platine aber einfach auf 16 Farben "aufrüsten", die entsprechenden Punkte sind bereits auf dem Bestückungsplan violett markiert. Der 10 KOhm Widerstand vom Punkt (A) nach +5V hat keinen Einfluss auf die Funktion und braucht nicht entfernt zu werden.





created with latex2web.pl v0.57 © 2006-2010 Joerg Wolfram