Jump to content
IGNORED

TIA usb midi interface with PIC MCU


universal2600

Recommended Posts

Hello i was wondering if i can use either a pic16LF84A or pic24F08KA101 micro-controller to gain midi control over a atari 2600 tia chip to have it play notes (and possibly display visuals)? the whole interface would be controlled by usb. I also should have a Coolrunner II cpld if should need any extra logic components. the pic16LF84A is a 18 pin pdip with a max clock speed of 20MHz and the pic24F08KA101 is in a 20 pin pdip package and can achieve a max clock of 32MHz. so is this possible using either chip to do this if not which PIC microcontroller would be suitable for this project?

 

any help will be appreciated thanks

Link to comment
Share on other sites

I can't offer any hardware or technical help, but there has been at least one MIDI interface for the 2600-- possibly two, although I can't find any solid information about the second one. I think the schematics and such for the first one (which is listed in the AtariAge store) were posted on the guy's web site after he decided to discontinue selling it-- if you search for MIDI and Atari 2600 together you should be able to find it. That interface used a standard MIDI plug, then connected to the 2600 via the two controller ports, since the two joysticks are read from the same address and by reading the two joystick inputs together you get an 8-bit value ranging from 0 to 255.

Link to comment
Share on other sites

I can't offer any hardware or technical help, but there has been at least one MIDI interface for the 2600-- possibly two, although I can't find any solid information about the second one. I think the schematics and such for the first one (which is listed in the AtariAge store) were posted on the guy's web site after he decided to discontinue selling it-- if you search for MIDI and Atari 2600 together you should be able to find it. That interface used a standard MIDI plug, then connected to the 2600 via the two controller ports, since the two joysticks are read from the same address and by reading the two joystick inputs together you get an 8-bit value ranging from 0 to 255.

 

 

 

Thanks for the reply but is it possible to control the tia directly using a PIC + cpld + a pc usb port (maybe lpt or rs232)?

Edited by universal2600
Link to comment
Share on other sites

Thanks but it still requires a 2600 system i only have the chips no system

If all you have are the chips then I'm not sure how you'll do it. The TIA (NTSC version) requires (expects) the following inputs to be connected to the following pins:

 

Ground -- connected to pins 1, 21*, 22, and 24* (see Note 1)

+5 volts power -- connected to pins 20 and 23

Color delay -- connected to pin 10

Oscillator signal -- connected to pin 11 (see Note 2)

Data bit 0 -- connected to pin 14

Data bit 1 -- connected to pin 15

Data bit 2 -- connected to pin 16

Data bit 3 -- connected to pin 17

Data bit 4 -- connected to pin 18

Data bit 5 -- connected to pin 19

Data bit 6 -- connected to pin 33

Data bit 7 -- connected to pin 34

R/W signal -- connected to pin 25

PHI-2 clock signal -- connected to pin 26 (see Note 3)

Address bit 0 -- connected to pin 32

Address bit 1 -- connected to pin 31

Address bit 2 -- connected to pin 30

Address bit 3 -- connected to pin 29

Address bit 4 -- connected to pin 28

Address bit 5 -- connected to pin 27

Input bit 0 -- connected to pin 40

Input bit 1 -- connected to pin 39

Input bit 2 -- connected to pin 38

Input bit 3 -- connected to pin 37

Input bit 4 -- connected to pin 36

Input bit 5 -- connected to pin 35

 

Note 1: Pins 21 and 24 are chip selects connected to two of the 6507's address lines, but if you aren't using a 6507 and have the TIA connected to something else, you could just connect these two pins to ground so the TIA will always be ready to receive instructions.

 

Note 2: For normal operation the oscillator cycle should be 3579575 Hz. If you use a different ocillator rate it will affect the rates of the TIA's two audio clocks.

 

Note 3: The oscillator signal is "divided by 3" to produce the PHI-0 clock signal, which the TIA sends to the 6507 via pin 4, then the 6507 sends back the PHI-2 clock signal via pin 26. So in addition to feeding an oscillator signal to pin 11, you'll also need to feed a PHI-2 clock signal to pin 26, with PHI-2 being one-third the rate of the oscillator.

 

You should be able to ignore pin 10 (color delay) and pins 40 through 35 (the input bits), since they have no relation to the audio circuitry.

 

And if you're going to always be writing to the TIA instead of reading from it, then you might be able to connect pin 25 (R/W) to ground so it's always set to write (I think).

 

However, you'll need to use the address pins and data pins to set the TIA's internal audio registers to the values you want. If you're wanting to produce your own waveforms instead of having the TIA generate them, you should set AUDC0 and AUDC1 to 0, which will tell the TIA to output a steady stream of 1s for the audio bits. Then you would need to repeatedly set the AUDV0 and AUDV1 registers to form your own waves by varying the volume. On the other hand, if you're wanting the TIA to generate the waveforms then you'll need to use AUDC0 and AUDC1 to select the desired waveforms, use AUDF0 and AUDF1 to select the desired frequencies, and use AUDV0 and AUDV1 to select the desired volumes. The only way to set these registers is to send the appropriate address values over the address lines and send the desired data values over the data lines.

 

Presumably the only output pins you'll be interested in are pins 13 and 12 (AU0 and AU1, the two audio outputs). In the console these go to a modulator.

Link to comment
Share on other sites

  • 4 months later...

@Yogi Thank you, You're everywhere! Nice! ;)

 

@Universal2600, Yogi is true this hardsynth is functional, the things i still develop are optional functions like wavetables(for drum kit and internal sequencer) and sampling. All other still works.

You can make your own circuit, and find all the information and method to build it here : http://www.midibox.o...?id=midibox_tia, when it's done you will find some tools to test it then ask me for the firmware, it's a beta version and I have not yet published it.

Or you can wait for the next pcb run, and own your cartridge cased version midi synth.

Here a demo:

You will hear that TIA responds to note, velocity and full ADSR etc... It's a real complete synth which responds to a lot of Midi CC# too. Transpose, portamento, LFOs, enveloppes and many more.

Not only pushing values in the limited TIA registers, the PIC firmware is a full midi and synth engine. So a full synth features.

http://youtu.be/X_zqexm03XY

Edited by Antichambre
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...