Homebrew 8080 Computer

[ Home ] [ Schematics ] [ Pictures ] [ 8088 Computer ] [ MIDI ] [ Z80SBC ] [ Pong ] [ Downloads ] [ Links ] [ Contact ]

[22-DEC-2011] New: Arduino SID Interface

For a second attempt, I used an ATmega8 and a MOS 6581 SID. At the moment all options are controlled by defines in the C source code, which means you need to recompile and reprogram the AVR when you want to change something. This keeps the component count down but makes things more tricky. Currently the only components required are the ATmega8, the SID and a 74LS374.

Interfacing a SID to the ATmega has a few hurdles. First, the SID has a synchronous bus, and the clock used also drives the internal oscillators. I used Timer1 to generate a 1MHz clock output on the OC1A pin from the internal 8MHz RC oscillator. Then it's just a matter of writing data to the bus and holding Chip Select low until a bus cycle is finished. It doesn't really matter if more than one write is performed because the data isn't changing.

But, because OC1A is part of Port B I had to redirect bit 1 to port D through software. It's a little ugly but it works.

Software Features:

Things to do:

This is the same as the OGG below.

C Source code
Sample file
Bach's Brandenburg Concerto No. 5 on a SID

The goal of this project was to control a SN76496 with MIDI and as few external components as possible. I think I did quite well, the only other component is an Atmel AVR (AT90S2313) and its support components.

Source Code
Sample audio (Tetris)