Texas Instruments SN76489

From Infogalactic: the planetary knowledge core
(Redirected from Texas Instruments SN76496)
Jump to: navigation, search
File:TI SN76489 pinout.svg
Pinout of the standard Texas Instruments SN76489 chip. The packaging is a standard 16-pin DIP.

The SN76489 Digital Complex Sound Generator (DCSG) is a TTL-compatible programmable sound generator chip from Texas Instruments. It contains three square wave tone generators and one white noise generator, each of which can produce sounds at various frequencies and sixteen different volume levels.[1] Its main application was the generation of music and sound effects in game consoles, arcade games and home computers (such as the Texas Instruments TI-99/4A, the BBC Micro and the IBM PCjr), existing alongside the competing and similar General Instrument AY-3-8910.

Overview

The SN76489 was originally designed to be used in the TI-99/4 computer, where it was first called the TMS9919 and later SN94624, and had a 500 kHz max clock input rate. Later, when it was sold outside of TI, it was renamed the SN76489, and a divide-by-8 was added to its clock input, increasing the max input clock rate to 4 MHz, to facilitate sharing a crystal for both NTSC colorburst and clocking the sound chip. A version of the chip without the divide-by-8 input was also sold outside of TI as the SN76494, which has a 500 kHz max clock input rate.[1]

The frequency of the square waves produced at each channel is derived by two factors: the speed of the external clock and a value provided in a control register for that channel (called N). Each channel's frequency is arrived at by dividing the clock by 4 (after the div-by-8 stage, if present, for a total divider of 32 in those cases), and then dividing the result by N;[1] thus the overall divider value is from 4 to 4096 (or 32 to 32768), and the tone frequency range at maximum input clock rate is from 122 Hz to 125 kHz (or typically 108 Hz to 111.6 kHz, with an NTSC Colorburst clock input - ranging from roughly A2 (A below middle A) through to 5-6 times the generally accepted limits of human audio perception).

There are two versions of the SN76489: the SN76489 (Narrow DIP version labeled SN76489N) and the SN76489A (Narrow DIP version labeled SN76489AN). The former was made around 1980-1982 and the latter from 1983 onward. They differ in that the output of the SN76489 is the inverse of the expected waveform (the waveform 'grows' towards 0 V from 2.5 V), while the SN76489A the waveform is not inverted. The pseudorandom noise feedback in the both versions is generated from an XNOR of bits 12 and 13 for feedback, and bit 13 being the noise output. The pseudorandom generator is cleared to 0s (with the feedback bit set to 1) on writes to chip register 6, the noise mode register.[1]

Sega used real SN76489AN chips in their SG-1000 game console and SC-3000 computer, but used SN76489A clones in their Master System, Game Gear, and Mega Drive/Sega Genesis game consoles. These modified sound chips were incorporated into the system's video display processor. Although basic functionality is almost identical to that of the original SN76489A sound processor, a few small differences existed: the randomness for the noise channel is generated differently, and the Game Gear's version includes an extension for stereo audio output. The periodic noise is also 16 stages long on the Sega-made clones; this makes a significant difference for music/programs which use periodic noise, as sounds will play at 6.25% lower pitch than on the TI-made chips.[2]

Another clone is the NCR 8496, used in some models of the Tandy 1000 computer. Later Tandy 1000 machines (notably the SL, TL and RL series) integrated the SN76496's functionality into the PSSJ ASIC.

It is worth noting that the SN76489A seems to be totally identical to the SN76496 in terms of the outputs produced, but the latter additionally features an "AUDIO IN" pin (on pin 9) for integrated audio mixing.[3]

Usage

Arcade games

Home hardware

See also

References

  1. 1.0 1.1 1.2 1.3 Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.

External links