SN76489 arduino shield – part 1 testing the chip

23/11/2013 By Jean-Luc Deladriere Off
I always loved to play with sound making chip back in the ’80 (I made a synthesizer with the SN76477 in `79 which is sill working)
Today it is still possible to buy some SN76489 on ebay and a few website are decribing how to connect the chip to an Arduino.
The most advanced code is offered by http://little-scale.blogspot.be/ for the Teensy and for the Arduino

Clock

The SN76489 needs a clock signal that must be provided by an external oscillator. As I coudn’t find one, I decided to program an Attiny45 to do the job.
The code offered here is for the Attiny15 but the Attiny45 can be configured into an Attiny15 by programming the CKSEL fuses to ‘0011’ (see the datasheet)
The AVR assembler code need to be slightly adapted to calibrate the timing of the signal with the help of a frequency counter. I plan to play midi note in tune with other devices, but if you don’t need an exact tuning you can use the file as it is : the Attiny45  is providing a clock signal at around 2Mhz on pin 6.
I am using gasvr on the Mac to assemble the .asm file into an .hex that it uploaded to the Attiny with AVRfuses.
(Download the compiled clock file here and rename the it to clock.hex and use it to flash the ATtiny45)

Wiring

Connecting the Arduino and the SN76489 is described in the Arduino code here
Testing
Now we need to send midi data to the Arduino via the usb port
There is ready made solution for Mac, Windows and Linux : the Hairless midi to serial bridge !
(Don’t forget to adapt the baud rate in the preferences to the one you are using in the Arduino code)
If you don’t have midi sequencing program you can use midi virtual keyboard like : http://vmpk.sourceforge.net
Here is a first sequence I sended to the chip with Ableton live (a midi file found here http://efmidi.com :