it seems to me that the magic sequence pwm method is the best. if I
sample a 200hz sinewave at 1MHz and turn it into a bitstream which
matches an rc filter response, the results are very good (at least,
eyeballing it in excel). This would only take 5000 BITS of storage, a
1MHz clock, and an rc filter, so its cheapy weepy. Okay, and now, I
will cheat: I dont really need the 1Hz accuracy anymore. I originally
thought I needed it because I have to have two tones seperated by a
certain frequency which was only a few hertz to begin with. But the way
I will implement this, with a parallel flash or eprom, will 'lock' the
two tones together, so even if the clock is inaccurate, the tones will
track each other because they will both experience the same error from
the clock. So now the solution is:
cheap 16kbit (or whatever size, only need 10kbit) parallel eprom/flash
(whichever is cheaper)
1MHz RC oscillator (few passives and digital gate)
RC output filter
the tones (200hz/210hz) will each be sampled at 1MHz and encoded into a
bitstream which takes into account the response of the output rc
filter, to reproduce the tones. the bitstream will be burnt into the
eprom, into the upper or lower two bits (or whatever two bits) of each
byte, so that clocking the eprom data out will simultaneously clock
both tones out.
tada!
i assume in 100k+ quantities this will be less than 1$
oh and sorry for totally changing the requirements.