Ay-3-8910 Website Links For
General
 

Information About

Ay-3-8910




It produced very similar results to the Texas Instruments SN76489 and was on the market for a similar period.

The chips are no longer made, but a declining stock is still obtainable for servicing vintage machines. A VHDL equivalent description has been written, for use in FPGA recreations of Arcade Machines and the machine like those mentioned above. The VHDL source code is available on the net, and compiles to fill about 10% of a Xilinx XC2S300 FPGA.


CHIP VARIANTS

The 8910 silicon chip was sold in three different packages.

The AY-3-8910 has two general-purpose 8-bit parallel I/O ports, A and B, and these are available in the 40-pin package of the same name.

The AY-3-8912 is the same chip in a 28-pin package, with parallel port B simply not connected to any pins. Smaller packages save cost and board space. The 8912 was the most popular version by far.

The AY-3-8913 is the same chip in a 24-pin package, with both parallel ports not connected. The small reduction in pin count over the 8912 made it less interesting.

The YM2149 chip has the same pinout as the AY-3-8910, with the minor difference that pin 26 could halve the master clock if pulled low. If left unconnected, as it would be if replacing an AY-3-8910 chip, it would be internally pulled up and not halve the master clock, just like the AY-3-8910 does.


DESCRIPTION


The 8910 was Register -based, with a set of sixteen registers controlling the sound output, programmed using a set of eight data/address pins that were controlled by the CPU (the data/address mode controlled by a pin on the chip). Six registers controlled the tones produced in the three channels, two eight-bit registers per channel but limited to 12-bits for other reasons, for a total of 4096 different tones. Another register controlled the period of a pseudo-random noise generator, with another controlling the mixing of this noise into the three channels. Three additional registers controlled the volume of the channels, as well as turning on or off the option envelope controls on them. Finally the last three registers controlled the times of the ADSR Envelope controller, by setting the lengths of time for each stage of the cycle. Unlike most systems the 8910 used fixed times for the sustain and release, and a repeatable attack and decay pattern. For instance, the system could repeat the AD cycle of the sound over and over, or alternately invert it, starting loud and reducing to the sustain level without any attack phase.


CREATIVE USES

Although the chip wasn't designed to handle raw PCM data ( Digital Samples ), the effect could be simulated. The chip used a simple OR based mixing function for combining noise and tone on its three channels and could be persuaded to produce a level non-zero wave. By altering the volume this level wave could be shaped into a waveform. Obviously, this involved more CPU usage than chips designed for this purpose (such as the Commodore Amiga 's 8364 " Paula " sound chip), but it was nevertheless a technique widely used on platforms such as the Atari ST to play sampled music, and on the Amstrad CPC to play short audio samples, in some games.

Doing the same thing fewer times per second (in the order of a hundred per second) can replace the limited envelope functionality (any envelope you can think of), and last but not least works with each of the three channels individually. This takes negligible cpu power (provided there is some timer interrupt or vertical blank interrupt) and can be used in games.

In turn, the now useless envelope functionality can be set to very high frequency, actually generating a waveform that is not the usual squarewave. The granularity by which high frequencies can be set however is low, and so music composed for the chip generally uses this technique only for bass lines.

Another method was to set one channel output to idle high, then use the volume control as a simple logarithmic 4-bit DAC. This was poor quality, because it only had 16 output levels and these were logarithmically spaced.

The most sophisticated method was to use all three channels wired together, and exploit the non-linearity of the mixing to produce many intermediate output levels. The non-linearity currently has no adequate mathematical model, and so developers had to find suitable values by experiment. Having done so, they produced an 8-bit to 3x4-bit lookup table. This allowed 8-bit audio samples to be played fairly adequately, though not as well as a proper 8-bit Digital-to-Analog Converter .


FURTHER DEVELOPMENT


Yamaha used YM-2149 core to produce whole family of the music chips which was used in the mobile phones, video games etc. For example YM-2203 (a.k.a OPN) is a YM-2149 plus FM , YM-2612 is a "dual" YM-2203.


EXTERNAL LINKS