Projekt Project
Hardware Hardware
Bedienung Operation
BASIC (1) BASIC (1)
BASIC (2) BASIC (2)
BASIC (3) BASIC (3)
Interna Internals
Beispiele Examples
Erweiterungen Extensions
Bibliotheken Libraries
Treiber Driver
Programme Programs


Bezugsquellen: Where to buy:
Bausatz Kit
Leerplatine Empty board

AVR-ChipBasic2 - Hardware-Erweiterungen AVR ChipBasic2 - Hardware Extensions

V1.45 (c) 2006-2012 Jörg Wolfram V1.45 (c) 2006-2012 Jörg Wolfram



1 Das Dataflash-Modul 1 The data flash module

Das erste Zusatzmodul ist ein ATMEL DataFlash und wird auf den (normalerweise freien) ISP-Steckverbinder gesteckt. The first add-on module is an ATMEL DataFlash and is set to the (normally open) is plugged ISP connector. Auf dem Modul können wie auf einer Diskette oder einem USB-Stick (als Analogie zum PC) Dateien gespeichert werden. On the module can as a floppy disk or a USB flash drive (as an analogy to the PC) files. Entweder BASIC- oder Binärprogramme, aber auch USER-Dateien, zB für Datenlogger. Either BASIC or binaries, but also USER files, eg for data logger. Das Ganze funktioniert mit dem AT45DB041B (512 kBytes) und dem AT45DB081B (1MByte). This works with the AT45DB041B (512 Kbytes) and the AT45DB081B (1MB). Der Unterschied zwischen beiden Bausteinen liegt nur in der Anzahl der verfügbaren Pages (2048/4096). The difference between the two devices is just the number of pages available (2048/4096). Die D-Typen sollten auch funktionieren, wurden aber nicht getestet. The D-types should work, but have not been tested.



1.1 Schaltbild 1.1 diagram

Da der Dataflash 2,7-3,3 Volt Versorgungsspannung braucht, wird diese einfach durch eine in Reihe geschaltete grüne oder gelbe LED mit ca. 1,8V Durchlassspannung erzeugt. Since the DataFlash needs 2.7 to 3.3 V supply voltage, this is simply generated by a series-green or yellow LED with about 1.8 V forward voltage. Ein Widerstand mit 3,3kOhm bildet die Grundlast für die LED, parallel dazu liegt ein Abblock-Kondensator. A resistor of 3.3 ohms is the base load for the LED, there is a parallel blocking capacitor. Dieser sollte nicht zu klein sein, damit es beim Schreiben in den Flash keine Probleme wegen des differentiellen Widerstands der LED gibt. This should not be too small to make it in writing to the flash is no problem because of the differential resistance of the LED.





1.2 Leiterplattenlayout 1.2 PCB Layout

Die Leiterplatte besteht aus 0,4mm Epoxy, damit sie zwischen die zwei Reihen eines zehnpoligen Buchsenteils für die ISP-Schnittstelle passt. The board consists of 0.4 mm epoxy to fit between the two rows of a ten-pin connector part for the ISP interface. Die Kontakte auf der Leiterseite werden direkt aufgelötet, die auf der anderen Seite befindlichen Kontakte müssen mittels kurzen Drähten mit den Anschlüssen auf der Leiterplatte verbunden werden. The contacts on the printed page to be directly soldered, which are on the other side by means of short wires contacts must be connected to the terminals on the circuit board. Dadurch steht die Leiterplatte zwar nach oben, lässt sich aber recht gut stecken und auch wieder entfernen. Thus, the circuit board is indeed up, but can be stuck pretty well and remove it again.
Die Leiterplattenversion 2 benutzt "Leiterplatten-Steckverbinder", wird waagerecht eingebaut und liegt dann über dem Mikrocontroller. The PCB version 2 uses the "PCB", is mounted horizontally and is then transferred to the microcontroller. Aufgebaut habe ich sie aber nicht, da ich Version 1 bevorzuge. I've built it but not because I prefer version 1.



Über dem Dataflash im SOIC-28 Gehäuse ist die SMD-LED zu sehen, links ein keramischer 10uF Kondensator und ein 3,3KOhm Widerstand als Grundlast für die LED. About the Data Flash in SOIC-28 housing the SMT LEDs can be seen on the left, a ceramic 10uF capacitor and a 3.3 Kohm resistor as the base load for the LED.



Auf der gegenüberliegenden Seite befinden sich nur 5 Drahtbrücken für den Steckverbinder. On the opposite side, only 5 jumpers are for the connector.



BASIC-Computer mit gestecktem Dataflash-Modul. BASIC computer with connected data flash module.

2 Die 64K Speichererweiterung XRAM64 2 The 64K memory expansion XRAM64

Das XRAM64 Modul stellt 64 KBytes zusätzlichen Speicher (XMEM) zur Verfügung. The XRAM64 module provides 64 Kbytes of memory (XMEM) available. Angeschlossen wird es am Parallelport, dieser ist darurch für andere Anwendungen nicht nutzbar. It is connected to the parallel port, this is not darurch for other applications. Binärprogramme können sowohl direkt auf den externen Speicher zurückgreifen als auch die entsprechenden Treiberroutinen benutzen, für BASIC Programme muss auf Programmplatz 8 ein Treiber mit der notwendigen Funktionalität geladen sein. Binaries can access both directly to the external memory and the appropriate driver routines use must for BASIC programs to channel 8, a driver with the necessary functionality to be loaded.

2.1 Schaltbild 2.1 diagram

Die 64K Speichererweiterung besteht im Wesentlichen aus zwei SRAM mit 32 Kbyte und einem CPLD und wird an den Parallelport angesteckt. The 64K memory expansion consists primarily of two with 32 Kbytes SRAM and CPLD and is plugged into the parallel port. Dabei müssen aber die +5V an Pin 14 der parallelen Schnittstelle liegen, bei der Originalversion muss dies nachgerüstet werden. It must, however, be the +5 V on pin 14 of the parallel port, the original version, this must be retrofitted.



Beim CPLD funktioniert auch das relativ langsame XC9536-15-PC44, bei den SRAM sollte die Zugriffszeit unter 50ns liegen, ansonsten müssen in die Treiberroutinen evtl. Waitstates eingebaut werden. When CPLD works the relatively slow XC9536-15-PC44, in the SRAM access time should be less than 50ns, otherwise in the driver routines may need to wait states are inserted. Die genauen Werte der Blockkondensatoren sind unkritisch. The exact values ​​of the blocking capacitors are not critical.

2.2 Leiterplattenlayout 2.2 PCB Layout

Das Leiterplattenlayout ist wieder einseitig, dafür müssen allerdings 7 Drahtbrücken bestückt werden. The PCB layout is again one-sided, however, it must be equipped 7 jumpers. Natürlich wäre auch ein zweiseitiges Layout möglich, aber einlagige Leiterplatten lassen sich mit weniger Aufwand selbst herstellen. Of course, a two-page layout would be possible, but single layer PCBs can be produced with less effort itself. Über den JTAG Stecker kann das CPLD programmiert werden. Via the JTAG connector, the CPLD can be programmed.





2.3 Ansteuerung 2.3 Control

Für die Realisierung stand nur der Parallelport zur Verfügung, dadurch müssen die Adressleitungen zwischengespeichert werden. For implementing only the parallel port was available, thus, the address lines are buffered. Die ließe sich auch durch zwei Register realisieren. The goal could be achieved by two registers. Eine Besonderheit ist aber der schnelle inkrementale Zugriff, der für Lese- und Schreibzugriffe effektiv nur jeweils 3 Prozessortakte benötigt. A special feature is the fast incremental access, the need for effective reading and writing requests each only 3 processor cycles. Somit ist zum Beispiel eine Videoauflösung von 320x240 bei 16 gleichzeitig darstellbaren Farben möglich. Thus, for example, a video resolution of 320x240 at 16 simultaneously displayable colors is possible. Um das Modul mit eigenen Routinen im Rahmen eines Treibers oder eines Binärprogrammes ansteuern zu können, sind nachfolgend die verschiedenen Zyklen beschrieben. In order to control the module with their own routines in a driver, or can Binärprogrammes, the various cycles are described below.

  • Mit der fallenden Flanke von STROBE wird das Kommando von den Datenleitungen eingelesen. With the falling edge of STROBE command is read from the data lines. Derzeit wird nur Bit 0 benutzt, um zwischen Lesen (1) und Schreiben (0) zu wählen. Currently only bit 0 is used to select between reading (1) and writing (0).
  • Mit der fallenden Flanke von BUSY werden bei STROBE=LOW die oberen 8 Adressbits von den Datenleitungen eingelesen und in einem Register zwischengespeichert. With the falling edge of BUSY = LOW STROBE the upper 8 address bits are read from the data lines and stored in a register.
  • Mit der steigenden Flanke von BUSY werden bei STROBE=LOW die oberen 8 Adressbits vom Register und die unteren 8 Adressbits von den Datenleitungen in den Adresszähler geschrieben. The rising edge of BUSY = LOW STROBE the upper 8 address bits from the register and the lower 8 address bits are written from the data lines in the address counter.
  • Mit der steigenden Flanke von BUSY wird bei STROBE=HIGH der Adresszähler um 1 erhöht. The rising edge of BUSY with STROBE = HIGH, the address counter is incremented by 1.
  • Die Signale OE , WE , CS1 und CS2 werden nur aktiv, wenn BUSY=LOW und STROBE=HIGH sind. The signals OE, WE, CS1 and CS2 are active only when BUSY = LOW and STROBE = HIGH.


Beim Lesezyklus muss beachtet werden, dass das Einlesen der Portpins in den AVR eigentlich schon einen Takt früher erfolgt. When read cycle must be noted that the reading of the port pins in the AVR actually already done a clock earlier. Ein Readzyklus ist damit zwangsläufig mindestens einen Taktzyklus länger, aber in dieser Zeit kann zB der aus Registern gebildete Adresszähler im ATMega inkrementiert werden. A read cycle is inevitably at least one clock cycle longer, but at this time as the formed from the ATMega registers address counter is incremented.



In den XRAM64 Treibern findet man auch Codesequenzen zum Lesen und Beschreiben, die sich auch für eigene Ansteuerungen verwenden lassen. In XRAM64 drivers there are also sequences code for reading and writing, which can be used for your own controls.

created with latex2web.pl v0.62 © 2006-2011 Joerg Wolfram Created with latex2web.pl v0.62 © 2006-2011 Joerg tungsten