RadioBanter

RadioBanter (https://www.radiobanter.com/)
-   Homebrew (https://www.radiobanter.com/homebrew/)
-   -   PIC operated FSK modem (https://www.radiobanter.com/homebrew/27106-pic-operated-fsk-modem.html)

[email protected] January 16th 05 10:24 PM

PIC operated FSK modem
 
I'm interested in building a FSK modem around a PIC microcontroller,
and am wondering how most FSK receivers convert the frequency to bits.
I'm open to a unique solution, and I've seen some frequency to voltage
converters that may work, but would like to know what some current
techniques are that may be a lot more reliable and simpler.
Thanks in advance!
Dave


John Miles January 21st 05 06:55 AM

In article . com,
says...
I'm interested in building a FSK modem around a PIC microcontroller,
and am wondering how most FSK receivers convert the frequency to bits.
I'm open to a unique solution, and I've seen some frequency to voltage
converters that may work, but would like to know what some current
techniques are that may be a lot more reliable and simpler.
Thanks in advance!
Dave



Honestly, the way I'd do (and have done) this is by selecting an RF/IF
circuit (which you'll need anyway) that includes a quadrature
discriminator. The Philips SA604/605 family is ideal for that purpose,
but there are plenty of other choices. Quadrature tank components for
common IF frequencies are available off-the-shelf.

My suspicion is that PICs are a bit underpowered for all the DSP hackery
that the other guys are talking about. I could be wrong, though; I have
limited experience with them.

-- jm

------------------------------------------------------
http://www.qsl.net/ke5fx
Note: My E-mail address has been altered to avoid spam
------------------------------------------------------

Joel Kolstad January 21st 05 04:38 PM

"John Miles" wrote in message
...
My suspicion is that PICs are a bit underpowered for all the DSP hackery
that the other guys are talking about. I could be wrong, though; I have
limited experience with them.


It's true that 'regular old PICs' are pretty slow, but for a low speed
(couple thousand bits per second) FSK modem, a processor with a MIP or so
could do the job using the 'cheap and sleazy' approach I outlined.

Ubicom does has some PIC clones that run at =50MIPS, although I'm not sure
if they have hardware multipliers. The TI MSP430 line of microcontrollers
have models that, while they're running at some tens of MIPS, have a
slightly weird but completely workable hardware multiplier/accumulator and a
many channel ADC and duals DACs -- a very nice 'hacker's modem on a chip' if
I've ever seen one.

Hmm... I wonder if there's anyone doing QRP PSK31 work out there...

---Joel Kolstad



NM3R January 21st 05 09:03 PM

Check out Mike Berg's website, he has an interesting modem detector
using zero-crossing principle.
http://www.ringolake.com/pic_proj/zcd/zcdmodem.html


Anthony Fremont January 21st 05 10:38 PM


"NM3R" wrote

Check out Mike Berg's website, he has an interesting modem detector
using zero-crossing principle.
http://www.ringolake.com/pic_proj/zcd/zcdmodem.html


I did something like this a few months ago on a 16F628. I was
attempting to build a line-powered caller-id box. I got it real close,
but could never quite get 100% copy on the data. I could get better
than 99%, but even one bit error is one too many. Since I couldn't use
an o-scope (no isolation transformer or probe set), I don't know for
sure what the problem was. I do know one thing, it was the busiest PIC
program I ever wrote. ;-) I really need a logic analyzer or DSO to
debug this thing. It's possible (due to a recent project having issues
that I resolved) that my bit errors were due solely to noise coming from
the LCD. Sometimes it would get the data copy perfect, but most of the
time there was 1 or 2 bit errors in the burst. Very occaisionally, you
couldn't make anything out. :-(

I used the CCP module and TMR1 to measure the width of the top-half of
the incoming sound. Based upon the width, I would toggle a PIC pin
effectively ouputing a 1200 baud serial stream on that pin. That didn't
look to good (0 vs 1 bit width distortion because of my technique), so I
retimed the bits using another timer (TMR2). I then fed that pin to
another pin that was a bit-banged serial receiver (RB0 int for start
bit, tmr0 for the rest) that stuffed the received bytes into a circular
queue. The main level code only looked for data to appear in the
circular buffer and then printed it on an LCD. 90% of the time was
spent in ISR routines. The whole thing consumed like 3mA. The PIC ran
at 4Mhz and 5V using a Zener diode for regulation. IME, 2400 BAUD would
not have been possible without using a higher speed crystal.

I have never tried sending modem tones from a PIC, but AIUI it's
entirely possible.




All times are GMT +1. The time now is 08:07 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
RadioBanter.com