Direct FM receive questions
pedward
Posts: 1,642
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
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
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?