hamster

FM Transmitter

Recommended Posts

So I've just finished my latest project - an FPGA based FM transmitter that beeps out SOS in Morse code. All you need is a wire and 60 lines of VHDL!

http://hamsterworks....ndex.php/FM_SOS

Fm_xmit.png

I was musing over it all day and decided to give it a try.

There I was feeling extra clever at how well it works, and upload the a video of it in operation to Youtube. As soon as it finished it recommends that I might want to watch another video - it is somebody transmitting music on FM using only an FPGA. I don't feel so clever now!

This post has been promoted to an article

  • Like 1

Share this post


Link to post
Share on other sites

Well, I think it's pretty freaking clever, and useful too. It was pretty cool to see your yard over there in beautiful New Zealand. :)

Oh, and I watched the other FM transmitter video, the guy had almost the same radio that you have too! Weird.

Jack.

Share this post


Link to post
Share on other sites

So I've just finished my latest project - an FPGA based FM transmitter that beeps out SOS in Morse code. All you need is a wire and 60 lines of VHDL!

http://hamsterworks....ndex.php/FM_SOS

Fm_xmit.png

I was musing over it all day and decided to give it a try.

There I was feeling extra clever at how well it works, and upload the a video of it in operation to Youtube. As soon as it finished it recommends that I might want to watch another video - it is somebody transmitting music on FM using only an FPGA. I don't feel so clever now!

This post has been promoted to an article

Hello Hamster ! After seeing this device i am really confused, and i cant's give you any advice or solution related to FPGA based FM transmitter.

But I have an question,why i used pulse width modulator (RFPWM) for transmitting the signal ?

Share this post


Link to post
Share on other sites

The simple answer is it isn't using PWM - it is generating a signal that looks to be a 1 bit approximation of the FM signal. (i.e. if this was the desired signal would it be >0 at this point in time?)

 

 If you were to FFT the resulting signal you would have about 50% of the power at the desired frequency (which is what the FM radio can pick up), plus the rest of it is RF junk somehow related to the desired frequency and the FPGA clock frequencies.

  • Like 1

Share this post


Link to post
Share on other sites

Good evening Mr Hamster :)
The project is very interesting. I am a student and if u Could you help me?. I want to send audio. You said, audio with 16-bit resolution high quality mono. 1221381325 + / - 1.000.000

but I don´t understood very well that I add audio input in the process.,and what signal I use.

This would be:

if beep_counter(19) = '1' then
phase_accumulator <= phase_accumulator + 1222381325;
else
phase_accumulator <= phase_accumulator + 1220381325;
end if;
else
phase_accumulator <= phase_accumulator + 1221381325; -- +/-1000000
end if;

This is my email: rafael_u_r@hotmail.es

my fpga is DE2-115 Cyclone IV and the audio codec is WM8731:

Audio Codec, Signal name:

 

AUD_ADCLRCK --Audio CODEC ADC LR Clock

AUD_ADCDAT    --Audio CODEC ADC Data

AUD_DACLRCK  --Audio CODEC DAC LR Clock

AUD_DACDAT  --Audio CODEC DAC Data

AUD_XCK  --Audio CODEC Chip Clock

AUD_BCLK --Audio CODEC Bit-Stream Clock

 

I2C_SCLK  --I2CClock

I2C_SDAT  --I2CData

 

My apologies if I ask too much, but it's a project, I'm doing at my university.

I look forward to hearing from you soon.

Yours sincerely

 

Rafael Urquizo from Peru.

  • Like 1

Share this post


Link to post
Share on other sites

Hi Rafael,

 

For a frequency I chose the modulation values used was something like 1221381325 +/-1000000, so when transmitting the positive side of the square wave I used 1222381325, and for the negative side I use 1220381325. This gives the required depth of frequency modulation (a frequency change of approximately 75kHz).

 

If you have an audio stream of signed 16-bit samples A(n), You could use 1221381325 + 32 * A(n) for your modulation. Actually getting the values from A(n) from the CODEC is a different project!

  • Like 1

Share this post


Link to post
Share on other sites

Dear Mr hámster.

So, I could use the NIOS II program to configure the codec wm8731 records in "C", to obtain signed 16-bit samples A(n), I think so.

And What more should know?
 

Thank you!. your replies are very helpful me. :)
 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now