0

I am fiddling a bit with building some kind of programmable sound generator using simple components. I got something more or less working now as a proof of concept:

enter image description here

Here, the 555 is wired as an oscillator (like in this page) with RA being fixed and RB built up by two resistors, in this case R2 and R3. By using the transistors, I can enable or disable each resistor separately. When using an 8 bit register, I could (at least I think, in theory) be able to control the frequency in 256 steps.

I built it, and it kind of works, I can see different frequencies when setting/resetting the outputs of the 74x273.

Question is if this is some kind of okay design, or am I doing something completely stupid here?

  • 2
    The problem is that your transistors don't have their emitters grounded through a low resistance, so control becomes difficult, more so the more transistors you use. – Hearth May 21 '22 at 20:14

3 Answers3

1

I suspect that the circuit is operating much differently than you think. Usually NPN transistors have their emitters pointing towards ground (or negative). You have yours indirectly connected to V+.

enter image description here

Figure 1. Base current paths.

I suspect that what's happening is that when the base is switched high that current is flowing as shown by the arrows in Figure 1. This is enough to upset the 555 oscillation and give you the changes that "kind of works".

If you want to bridge transistors in and out of circuit something like the CMOS 4016 analog switches might be more appropriate. From memory these are about 100 Ω when enabled and GΩ when disabled.


Drawing the schematic in the conventional way with current flow from top to bottom might have revealed the "oddness" of your transistor arrangement more easily. If you're interested in improving your skills in this area then Rules and guidelines for drawing good schematics on this site is quite educational.

Transistor
  • 168,990
  • 12
  • 186
  • 385
1

Think in terms of what currents are flowing. Instead of trying to analog-switch the resistors, just switch the currents flowing through the resistors.

This isn't the most trivial thing, as the current is flowing both ways: up through R6, and down through DIS. We can use some approximations to simplify further.

I'm guessing from your relatively large value of R6, you aren't too concerned with the duty cycle? In that case, consider using a resistor from C1 to DIS as the discharge path, and a pull-up from +V to C1 for the charge path. (We must have Rpu > 2*Rdis or it won't fully discharge and cycle.) Then we can vary Rpu to vary frequency. And the easiest way to do this, is switching multiple Rpu's from your bus latch.

schematic

simulate this circuit – Schematic created using CircuitLab

Note that CMOS devices are preferred here (LMC555, 7555, etc.; 74HC(T)xxx); TTL won't have enough output voltage to pull up here (even with schottky diodes). Alternately, use a PNP or P-ch to switch the high side of the pull-up resistor.

Tim Williams
  • 22,874
  • 1
  • 20
  • 71
1

You can change the frequency of a 555 based oscillator by using the control voltage.

See my answer here for an example of this, and this question with more information and formulas for frequency.

GodJihyo
  • 17,628
  • 1
  • 16
  • 45