Frequency generator for several FSK waveforms?

Morning all,

I've been thinking about building some more test equipment for work. From what I've read I'm sure it's within an Arduino's capabilities (if not my own coding abilities). At this stage I just want to know if it's plausible.

I want to produce a FSK'd sine wave output at, say, a nominal 6kHz. I need to FSK the nominal frequency between an upper and lower limit, let's say +/- 50Hz. The waveform needs to shift between the upper and lower limits at a rate of 50Hz (so in essence it's toggling between 5950Hz and 6050Hz, 50 times a second).

The amplitude needs to be variable up to a maximum of 3.5V peak to peak. The amplitude can be controlled externally if necessary.

Can an arduino reliably produce such an output? If so, can it also produce another 10 such waveforms at different nominal frequencies? Only one needs to output any one time, so that's more a question of having enough memory rather than a hardware limitation. Naturally the arduino's output will be DC (or an AC wave with a DC offset, if that floats your boat). I would need to remove the DC portion somehow, perhaps with a coupling cap.

A second nice-to-have feature would be to receive a similar waveform on an input, measure it's amplitude and write it to, say, an LCD / LED display (that's probably the easy bit).

Is all this possible?

Thanks

Can an arduino reliably produce such an output

Yes

can it also produce another 10 such waveforms at different nominal frequencies

No.

Is all this possible?

Probably not.

You need some help with things, like an external D/A and some frequency generator chips.

Ok, thanks.

Can you elaborate please on why it can produce one waveform but not ten?

Just to be clear, at any one time I only need one of the nominal frequencies out of the ten options. I.e. I will only be using one analogue output pin, and it will only output one sine wave at a time.

It’s doable, all you need is to run inverse FFT on arduino, than send data to external DAC. R2R resistors network may be o’k.
Max number of freq. you can reach is 256 with arduino UNO, and phase resolution 1 degree or so.

Simple solution is 'd be this generator Lab3 - Laboratory for Experimental Computer Science
just update frequency regularly. Than you have to find a way to determine a phase at the other end

dj777: Ok, thanksJust to be clear, at any one time I only need one of the nominal frequencies out of the ten options. I.e. I will only be using one analogue output pin, and it will only output one sine wave at a time.

So now you tell me. If only one is being output than you are not generating more than one signal so you can do it, you just change the parameters you are feeding things with.

MasterT - you seem to specialists in rubbish advice. Please only reply to a post if you have some clue as to what you are talking about.

I did say one signal at a time in the original post ;)

Thank you for your help.

dj777:
I did say one signal at a time in the original post

But then you changed things and did not say it was only one at once.

Grumpy_Mike: But then you changed things and did not say it was only one at once.

Could you point out where I changed direction please? I'm struggling to see it. Thanks