Difference between revisions of "CoCoDEV"

From Davebiz Wiki
Jump to: navigation, search
(SD Card)
(SD Card)
Line 63: Line 63:
 
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.
 
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.
  
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks a 8GB Transcend Micro SD card at 1MB=3.15 seconds or about 325MB/sec.
+
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325MB/sec.
  
 
=== Real Time Clock ===
 
=== Real Time Clock ===
  
 
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.
 
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.

Revision as of 20:59, 18 February 2020

The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit Motorola 6809 CPU. The name "CoCoDEV" comes from its similarity to the Tandy Color Computer (aka CoCo). However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, and digital I/O lines.

Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in BASIC or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board.

In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.


CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen and is expected to be available for purchase in March 2020.

CoCoDEV with RS232 serial port


Design Objectives

The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that will run either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.

CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system.

A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage.

Features

MC6809 core

The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer John Kent. It runs at a bus speed of 25 MHz.

512K Static RAM

Fast 10ns Static RAM
The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock.

Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space.


1MB Flash Memory

Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the 512KB system RAM. Configuration options allow either the Disk Extended Color BASIC firmware to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well.

In addition to containing the firmware the flash memory may also contain various fonts for the Video Display Generator that can be loaded in at boot time.

Industry Standard VGA

The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once. Plans for a 640x480x256-color graphics mode are in the works.

PS/2 Keyboard Interface

USB to PS/2 adapter
A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.




DC Power Supply

The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.

Serial Port

A TTL serial port is available on a four-pin header. The serial port supports data rates to 115,200 bits-per-second with no handshaking.

WiFi

USB to PS/2 adapter
An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware.




SD Card

A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.

NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325MB/sec.

Real Time Clock

The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.