3

I'm interested in creating low frequencies using a high-frequency oscillator. For example - using a 12Mhz oscillator to create 1Khz, 2Khz waves.

I've been said that using a Binary adder(oops) counter it could be accomplished.

Anyone could please help me to understand how this can be done? Also, I should use a low-pass filter for Sine(ish) waves. How does this come into place?

The target is to create about 5 distinct frequencies and "stream" them out of the circuit. The circuit should be very cheap - so no mC could be used.

Many thanks for the help :)

stevenvh
  • 145,145
  • 21
  • 455
  • 667
roman
  • 409
  • 2
  • 5
  • 9
  • what kind of high-frequency oscillator are you using - or have you not chosen one yet? – Jim Jul 23 '11 at 09:14
  • If you're looking at creating a sine wave, this question may be of help -http://electronics.stackexchange.com/questions/16512/is-this-a-suitable-sine-wave-osc-how-would-i-control-the-frequency You might be surprised by how low cost a micro controller may be once you've added everything up. – Jim Jul 23 '11 at 09:19
  • It was a Binary *Counter* I suggested, not a Binary *Adder*. The two are very different. Read the data sheet for the '4040' CMOS chip. – Majenko Jul 23 '11 at 09:53
  • sorry - really was the Counter :) – roman Jul 23 '11 at 10:39
  • @roman - I mention a counter in my answer for the non-microcontroller solution, but it does actually what the uC also does, but then in software. – stevenvh Jul 23 '11 at 10:45

1 Answers1

4

Yes, that was Matt who told you about the filtering to get a sine from a square wave; unfortunately he forgot to tell you how to do this. :-)
Well, it's not easy. A 1kHz square wave will have a 3kHz harmonic with 1/3 amplitude, a 5kHz with 1/5 amplitude, etc. That's a lot of energy in the harmonics which you want to get rid of. You need a sharp low-pass filter to be sure that the 3kHz is attenuated enough. That's possible, but not so easy to make it variable; for the 2kHz sine you want a higher cut-off frequency.

enter image description here

The plot shows that the signal still looks more like a square wave than a sine even with all except the third of the harmonics removed.
All this suggests that this may be an easy approach to generate different crystal-stable frequencies from a single 12MHz oscillator, but not sines. For sines there are analog solutions like the Wien bridge, but these aren't so frequency stable.

Like I said in my other answer DDS really is the way to go; you get the best result for the money. If you don't want to use a microcontroller you can use a lookup ROM programmed with a sine waveform, let a counter run over all addresses, and feed the output to a DAC. That requires a little bit of logic, but no uC. The clock you use for the counter will be a multiple of the sine, so feeding a different clock frequency will give you a different sine frequency.
All this said, this may cost as much as a microcontroller; there's no reason to dismiss a microcontroller because it would be too expensive. uCs are dirt cheap these days and often a more economical solution that analog alternatives. You won't find anything simpler than Jesper's generator (was linked here http://www.myplace.nu/avr/minidds/index.htm, link now broken)

If you want to generate the 5 signals simultaneously and mix them the DDS solution is even more cost-effective: you'll need only one (1), vs 5 oscillators in an analog solution.

edit
If you only need 5 fixed frequencies you might want to switch them on and off selectively, so that you can mix them. Easy with the DSS uC: instead of keeping one phase accumulator (expensive word for "counter"), you just keep 5 of them, and add the sine values before sending them to the external DAC. You could use 5 switches to turn them on and off. You don't need the MAX232 then. Like I said: cheap.

Neil_UK
  • 158,152
  • 3
  • 173
  • 387
stevenvh
  • 145,145
  • 21
  • 455
  • 667
  • I'm not sure the OP wants the Oscillators to be adjustable - "The target is to create about 5 distinct frequencies" It may be that they just want fixed frequencies, which would be a lot easier to filter – Jim Jul 23 '11 at 09:23
  • @Jim - I really need only 5 FIXED frequencies. No need for dynamic generation or stuff like that. – roman Jul 23 '11 at 10:29
  • @Stevenvh - thanks for the great answer. I'm going to check the DDS solution (though it seems little expensive). I'm looking for max 3$ solution. better even less. – roman Jul 23 '11 at 10:30
  • 3
    @roman - the microcontroller used (actually its successor, the ATtiny2313) costs 2 euro, and you hardly need anything else. The MAX232, for instance only if you want to connect to a PC. But you can use pushbuttons to control it if you want. – stevenvh Jul 23 '11 at 10:33
  • @stevenvh - I guess the uC can only generate a square wave, where I need a sine wave for a FFT on a PC to be able to analyze and get the frequency (the square wave has too much ' – roman Jul 23 '11 at 10:37
  • noise) - pushed the submit too fast :) – roman Jul 23 '11 at 10:37
  • 3
    @roman - if you take a look at Jesper's page you'll see that it can do sines too. It uses a sine lookup table and a DAC (cheap, just resistors). If you tweak the software a bit you can even generate several different sines added together. – stevenvh Jul 23 '11 at 10:40
  • I agree with Stevenvh- it will be relatively cheap to use DDS, the analogue components are likely to cost more. – Jim Jul 23 '11 at 10:44
  • Maybe there is another, cheaper, way to generate a wave that the FFT can analyze? I very much need it to be cheap and be able to mix waves. the DDS seems like a costly solution (I guess about 3-4$ at least) – roman Jul 23 '11 at 10:49
  • @roman - I already edited my answer. You'll need the 2 euro microcontroller, 5 switches and a few resistors. That's all. – stevenvh Jul 23 '11 at 10:55
  • @stevenvh - Great. Thank you very very much! Going to try and build one :) – roman Jul 23 '11 at 10:57