2

I'm building an audio circuit that will play VGM files (Video Game Music).

I have it working with two different "vintage" IC's such as the SN76489 and the AY-3-8912.

Currently, my design is using an Arduino Micro and two shift registers for the data buses and direct pins for the control pins on the audio IC's.

On average, an audio IC has 8 pins for the data bus and 4 pins for the control or address bus. This varies per IC. Some might be 3, some 4, some 6, etc.

Bottom line, even with the 20 IO pins on the Arduino, I will quickly run out of pins. I thought about serializing many shift registers and basically pass 64 or 128 bit numbers to spread out to the multiple IC's but this sounds ugly.

I'd like to be able to support maybe 6 IC's which could be 60-80 pins.

I also have an Arduino DUE which has many more IO pins. But then I have to deal with the 3.3v limit and I only have 4 level shifters (16 pins).

Any suggestions on how to handle this?

Thanks.

asked Feb 27, 2015 at 3:44
6
  • Get a ATmega128A and learn how to do MMIO. Commented Feb 27, 2015 at 3:46
  • A quick search reveals that MMIO "seems" to be very similar to how the Apple IIe handled the 7 slots. Each slot has a /IOSEL pin that is normally HIGH. When you access an address like $CNXX where N is the slot number, /IOSEL goes low and the slot becomes active. Each slot has a 16bit address bus and 8bit data bus. Is MMIO a similar technique? So basically all IC's would be on the same address/data bus but different addresses would activate them separately? If so, where can I find some info for doing this with Arduino? Commented Feb 27, 2015 at 3:55
  • Also, I should note that many of the IC's would not need to be disabled as they could be playing a note at the time. So, I'm thinking that they all would share a common data bus. Then, the address bus would be mapped to each IC so that certain ranges would turn the data bus on/off for them. Would this be the job of an octal bus transceiver? Commented Feb 27, 2015 at 4:03
  • Neither the Atmega328P, ATmega1280, nor ATmega2560 have an external memory bus, so you'd have to look at something like the ATmega64A or ATmega128A. Many chips have a "select" or "enable" line as well as their data and command buses; if all of yours do then all you need to do is make sure that only one chip is enabled per address or range of addresses. Commented Feb 27, 2015 at 4:09
  • Thanks, that was an initial thought I had but I'm not sure yet how each IC will respond to being disabled while it's playing a note. The AY-3-8912, for example, can be set to INACTIVE so I will have to see what that does. I think it puts the address/data bus in high impedance mode. But I don't know, yet, what that will do to the note(s) playing. Commented Feb 27, 2015 at 4:18

1 Answer 1

1

There are other ways,but for a brute force many pin driver solution:

Back at the beginning of time when steam driven IC's were all the vogue there was the awesome MM5450. 40 pin DIP. 34 on/off outputs. 3 pin control. Or the really keen could do it with 1` pin control and some basic RC timing. I was. I did.

Its day has passed. but, fortunately. neither Micrel or Digikey know this.

MM5450 datasheet
In stock Digikey 5ドル.46/1

It's a very benign beat to drive once you get to know it. There is no reset (inless you buy bare dies) so you have to start off getting it synchronised - it's not hard, just not quite usual. Works well.

For single GPIO pin control the pin acts as data out and clock with some RC timing.
Fot ICs with clock/data/load you can do all 3 with RC timing on one pin.

And there is a 44 pin PLCC pkg version available.


AND!

SN74LS673 16 bit SR, 24 pins http://www.ti.com/product/sn74ls673

ICM7243 http://www.ebay.com/itm/ICM7243BIPL-HARRIS-40-Pin-DIP-LED-DISPLAY-DRIVER-ICM7243-7243A-/390402848376

And others http://www.ebay.tv/sch/i.html?_sop=7&_nkw=led+driver+ic&_frs=1

answered Feb 27, 2015 at 6:14
0

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.