Hi,
I just stumbled across this brilliant hack, wherein people are turning the Raspberry PI into a FM radio transmitter:
https://www.youtube.com/watch?v=GXedC5dQyNk
This works by using the Spread-Spectrum Clock Generator feature (SSCG) of whatever chip the Pi uses (Cortex A7 or A53?). If I understand it correctly, the clock is tuned to an FM-band speed (88-106 Mhz). That clock is then used to PWM an output pin at a steady 50% duty cycle, creating the FM carrier frequency, and then digital audio data is used to tweak that clock speed, directly modulating the carrier frequency.
Hackers have dived into that project, and apparently it's working quite well on the Pi. They just wire a GPIO pin directly to an antenna, and it works! No other circuitry necessary. (I have to wonder whether this generates any ugly harmonic interference in higher frequencies.)
I'm curious if the Cortex-M4 in the newer Teensy could do this same trick. I see that the chip includes some sort of SSCG* feature, but I haven't been able to decode just how much control it gives. I'm not even sure whether the main PLL can be tuned to the 100Mhz-ish FM broadcast bandwidth region or not -- tho the spec sheet I read says it can go both faster and slower.
(If this is possible, I'm still not sure if I'd need to do it. A Pi is a cheap enough board, for which the software is already written and available. But on the other hand, it's fun to hack on the Teensy ... and the codebase for the Pi version is thick with all sorts of tedious arguing-with-the-operating-system code. I'd think a Teensy version could be much simpler.)
-mykle-
* You probably already knew this: Spread-Spectrum Clock Generation (SSCG) is a modern chip feature that lets you modulate the frequency of the chip's timers to reduce RF noise timer-driven circuits can create.
I just stumbled across this brilliant hack, wherein people are turning the Raspberry PI into a FM radio transmitter:
https://www.youtube.com/watch?v=GXedC5dQyNk
This works by using the Spread-Spectrum Clock Generator feature (SSCG) of whatever chip the Pi uses (Cortex A7 or A53?). If I understand it correctly, the clock is tuned to an FM-band speed (88-106 Mhz). That clock is then used to PWM an output pin at a steady 50% duty cycle, creating the FM carrier frequency, and then digital audio data is used to tweak that clock speed, directly modulating the carrier frequency.
Hackers have dived into that project, and apparently it's working quite well on the Pi. They just wire a GPIO pin directly to an antenna, and it works! No other circuitry necessary. (I have to wonder whether this generates any ugly harmonic interference in higher frequencies.)
I'm curious if the Cortex-M4 in the newer Teensy could do this same trick. I see that the chip includes some sort of SSCG* feature, but I haven't been able to decode just how much control it gives. I'm not even sure whether the main PLL can be tuned to the 100Mhz-ish FM broadcast bandwidth region or not -- tho the spec sheet I read says it can go both faster and slower.
(If this is possible, I'm still not sure if I'd need to do it. A Pi is a cheap enough board, for which the software is already written and available. But on the other hand, it's fun to hack on the Teensy ... and the codebase for the Pi version is thick with all sorts of tedious arguing-with-the-operating-system code. I'd think a Teensy version could be much simpler.)
-mykle-
* You probably already knew this: Spread-Spectrum Clock Generation (SSCG) is a modern chip feature that lets you modulate the frequency of the chip's timers to reduce RF noise timer-driven circuits can create.