LM386 Audio Op Amp
Common Sound Circuits?
Driving Linear Amp Input Node
Tone Generator (timer 2) output
Enabled using bit 1 of I/O port 0061h set to 1. (For information
about timer 2 see Programmable Timers.)
System Channel, using the 'audio
sum node' signal.
Audio Subsystem Block Diagram
Each audio driver must have a 1200-ohm source impedance, and a 7.5-kilohm or greater impedance is required for each audio receiver. Volume control is provided by the driver. Output level is a function of the number of drivers and receivers that share the AUDIO line.
The logic ground is connected to AUDIO GND at the amplifier.
Single channel analog audio signal . Synthesized voice or music generated on a Micro Channel adapter can be routed as a complex analog waveform directly to the amplifier and speaker inside the computer. The Micro Channel allows expansion cards on the channel to exchange and independantly process audio signals.
Audio Signal Group
Audio Sum Node (Signal pin B02)
Audio Gnd (Signal Pin B01)
Audio Source for Audio Over MCA
On MCA systems the audio signals supplied by certain cards (M-ACPA namely) is sampled on the bus on the auxiliary audio channel and fed to the onboard audio amplifier. Therefore the ACPA *does* playback sounds via system speaker even with no external speakers connected. At least OS/2 supports this feature.
Main problem with the faint beeps on later machines is the tiny SMD-version of the LM386M (or compatible) audio amplifier they used - along with a SMD 47µF (or similarly small) output capacitor and pretty high input resistors. That adds to a mere whisper rather than a real good beep at all. The audio amplifier is good for 0.5W output - enough to beat the crap out of these 8 Ohms "Taiwan" speakers - but the signal is dampened too much on the input side ... and the tiny output capacitor cannot transfer the required energy to the speaker.
For the always curious: on the 95A board the audio amp
sits bottom / left at position U5, close to panel and FDD connectors. I
*think* the 220µF cap C26 is the output capacitor, but I haven't
verified that. So the output stage should have reasonable good energy transfer.
I'm going to analyze the rest of the audio amp later.
Don Hills wrote:
>But on some machines the beep is rather faint.
This is for a good reason...
Back in the days of the PC-AT, I was intrigued by a driver that played WAV files (or their precursors) over the internal speaker. I found some technical details and wrote my own, learning a lot about the PC timer chip in the process. PC-AT systems had a good speaker and plenty of drive to it, as did the first series of PS/2 systems (50/60/70/80). The M30s didn't have a speaker as such, just a tiny (1 American cent) size "squeaker". Later models had progressively more wimpy sound systems.
I think the reason the beep started out loud and got fainter in succeeding models was that in the first machines, there was no affordable alternative for producing sounds. Games, in particular, benefited from a good speaker system, even for the limited range of effects that could be achieved. Trouble was, customer feedback said that too loud a "beep" wasn't welcome in corporate applications. So as sound cards became available for those who really wanted sound, the volume of the internal speaker dropped to a suitable level for "corporate" beeps. It was cheaper to do this than put in a volume control.
I still have all the code (for real mode DOS) for driving internal speakers, and the sound card option for the original 10 MHz 286 PS/1 systems, and the Disney Sound Source, and the basic "resistor network on the parallel port" sound adapter. I'll make a distribution of it if anyone's interested.