Shop OBEX P1 Docs P2 Docs Learn Events
Direct FM receive questions — Parallax Forums

Direct FM receive questions

pedwardpedward Posts: 1,642
edited 2012-01-06 23:52 in Propeller 1
So I had an idea of how to do Direct FM reception. I'm generating a carrier on one counter, then gating it in A&B or A==B mode into the second counter. I then sample the counter at the desired sample rate, which is bufsize samples per second.

I'm getting something recognizable, but not legible.

Perhaps someone could give me some ideas?

--Perry
CON

  _clkmode = XTAL1 + PLL16X
  _xinfreq = 5_000_000
'  magicnum = 491_715_550
  magicnum = 491_740_200
  bufsize = 7680

OBJ
  pst: "Parallax Serial Terminal"

VAR
  long buffer[bufsize]

PUB Main | p, time, x
  pst.Start(115_200)
  pst.Clear
  DIRA[0]~~
  FRQA:= magicnum
  CTRA:=010_111 << 23 + 0
  FRQB:= 1
  CTRB:=001_000 << 23 + 2 << 9 + 1

  x:=clkfreq/bufsize
  time := cnt
  p:=0
  repeat bufsize
    buffer[p++] := PHSB
    PHSB:=0
    'pst.Bin(p,32)
    'pst.Newline
    waitcnt(time += x)

  CTRB:=0
  CTRA:=0
  FRQA:=0
  DIRA[3]~~
  CTRA:=110 << 26 + 3
  repeat
    time := cnt
    repeat p from 0 to bufsize-1
      FRQA:=buffer[p] << 16
      waitcnt(time += x)

'    waitcnt(clkfreq + x)

Comments

  • VIRANDVIRAND Posts: 656
    edited 2012-01-06 23:52
    Legible or audible?
    I think this method might work on an IF, but not directly demodulating a 100 MHz broadcast. What prevents all the other stations from interfering?
Sign In or Register to comment.