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


Bezugsquellen:
Bausatz
Leerplatine

AVR-ChipBasic2: Hardware

V1.50 (c) 2006-2015 Jörg Wolfram



1 Minimale Hardware



1.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.





1.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.





1.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)


2 Video-Adapter für den Uni-Anschluss



2.1 BAS-Signal

Dazu müssen einfach nur die Leitungen für das BAS-Signal (optional: Audio) und Masse angeschlossen werden. Hauptnachteil ist, dass die Darstellung nur in Schwarz/Weiss (Graustufen) erfolgt.





2.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.





2.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.





3 Die Schnittstellen

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





3.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)-Leitung 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.

3.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.

3.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.

3.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.

3.5 Die SPI-Schnittstelle

Die SPI-Schnittstelle ist identisch mit der Programmierschnittstelle (ISP), an die auch das Dataflash-Modul angeschlossen wird. Ab der Version 1.38 ist es möglich, bis zu 8 Geräte an den SPI-Port anzuschließen. Dazu wird folgende Hardware benötigt:
Die Funktionsweise ist dabei folgende:
  • Das 8-Bit Register (z.B. HCT374) wird so beschalten, dass es als 8 Bit Schieberegister mit Tristate- Ausgang funktioniert.
  • solange CS=HIGH ist, sind CS0...CS7 hochohmig und werden über die Pull-Ups auf HIGH gezogen.
  • SPI-Daten, die während CS=HIGH ausgegeben werden, landen im "Schieberegister" U1.
  • Wenn jetzt CS auf LOW geht, dienen die Ausgänge des Registers als CS0 bis CS7 und selektieren den gewünschten Baustein
Der Ausgang CS0 istfür den Dataflash reserviert, der Ausgang CS1 für das Clone-Programm. Die restlichen 6 Ausgänge können für eigene Zwecke verwendet werden. Für die Auswahl gibt es den Befehl SPISEL und entsprechende API-Funktionen.

4 Ein Beispiel-Leiterplattenlayout



4.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 Baugruppe doch recht nützlich. Die Leiterplatte 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 Leiterplattenlayout zu machen.

4.2 Bestückung der Leiterplatte

Die Leiterplatte 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).





4.3 Die Erweiterung auf 16 Farben

Die Original-Leiterplatte 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 Leiterplatte ist in der derzeitigen Version nur auf 8 Farben ausgelegt. Mit 4 zusätzlichen Widerständen lässt sich die Baugruppe 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.63 © 2006-2013 Joerg Wolfram