FPGA: Speaker
Ok, so I bought an FPGA. Now what?
The
Burched.biz B5-X
super value pack comes loaded with goodies. But, sadly, no
speaker. (The buzzer in the
B5 Peripheral
Connectors plug-on module is a buzzer, not a speaker.)
But, the Apple II was a
great game machine and its speaker
hardware was very simple. So, I modeled a speaker driver from what I
knew about the Apple II.
Basically, what the Apple II had was a single bit state for the
speaker. The state of the bit was only toggle-able. You could not
set it or clear it and you could not check its state. To be clear,
the address decode logic would convert access to $C030 into a toggle
of the speaker state. Either a store or fetch would cause the toggle.
The store results were dropped on the floor, and a fetch would pick up
garbage. This was called a 'soft switch' in Apple documentation.
(For more on the Apple II history, see The Apple II History
web site.)
Armed with that knowledge, I decided that what I wanted was a
simple transistor driving a head phone. The transistor would be
driven by the FPGA and would drive the head phones.
Here's a schematic:
Here's the implementation:
The inverter acts as a buffer driver here. I wanted to take care
not to blow my new toy, so I connected a buffer driver (though, just
about any TTL buffer/logic chip would have been fine). The output
from the TTL chip drove a NPN transistor (you could use any transistor
you have handy; I happened to have an audio transistor lying around).
The output from the transistor ties directly to the speaker or head
phones.