CoCoDEV

From Davebiz Wiki
Jump to: navigation, search

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" harks from its similarity to the TRS-80 Color Computer. The board is roughly akin to the Tandy Color Computer 3 (aka CoCo 3). 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, the CoCoDEV board is also appealing 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 sports 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 was created and launched in July of 2019 by Dave Philipsen.

CoCoDEV bare PCB


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 control board 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.

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 standard RS232 serial port is available on a female DB9 connector using the (DTE or DCE??) pinout. 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 is mounted to the underside of the board and uses the popular ZiModem firmware.




SD Card

A micro-SD card socket is available on the underside of the board. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both.

Real Time Clock

A real time clock module is mounted to the underside of the board with battery backup. It is based upon the popular DS1213 chip. Also included with the module is 1K of non-volatile RAM for storage of configuration variables.