uC’s for pseudo-SDR / high accuracy high freq timers, fun bitbanging abilities? - Page 1
Forum section: electronics / general

author: radio879
author_rank: Newbie
timestamp: January 18, 2024, 08:46:42 pm
content: I am always impressed when I see people using ESP32 to generate good VGA signals in software or output RF signals with modulation. I tried out someone’s program yesterday to generate arbitrary waveforms on a RP2040 which will output complex waveforms up to 20mhz..I really like what someone created on the Raspberry Pi (classic ones) called rpitx which is a software SDR transmitter. It works perfectly and is accurate enough to do perfect sounding wideband FM, and the program can accept I and Q inputs to produce any type of modulation. The bandwidth is limited to ~250khz though. It will transmit a square wave anywhere from like 1mhz to 1500mhz. It works on the cheapest Pi boards like Pi Zero. I wonder if any of those Pi alternatives can do stuff like this? Banana Pi etc.I am just curious what other cool stuff might be out there, maybe some of the higher end STM32’s? I’m not looking for anything super specific just trying to find faster microcontrollers that allow you to tap into the timers to do cool stuff.. especially RF stuff and fast enough to do “fake SDR” wideband real time custom modulation stuff.I guess I should buy a real SDR but i like the idea of finding cheap microcontrollers that have some hidden abilities. I like when people figure out ways to do amazing things with very low cost electronics.There is another project (forget the name) where someone found a super cheap usb device that has a DAC that can run at 100+ mhz and was able to use it as a SDR for TX with 100-200mhz bandwidth. Super cool..

author: radiolistener
author_rank: Super Contributor
timestamp: February 16, 2024, 10:45:42 am
content: rpitx is a dirty hack. It produces dirty output, it works and can be listened on receiver, but if you want to implement proper good quality transmitter, it requires different approaches.There are two ways: analog or digital. Both way requires to implement modulator, filters and frequency shift. The difference is that in digital it is implemented in software as math calculations, in analog it is implemented in hardware with analog components. Digital one requires DAC with reconstruction filter. You can implement frequency shift in digital or in analog part. If you implement it in digital it requires high speed DAC and requires FPGA to implement fast enough calculations to generate data for DAC. If you implement frequency shift in analog part, you can use MCU with 48 kHz DAC and generate modulated signal at low frequency carrier on MCU, then it will be frequency shifted in analog mixer and filtered with analog filter.

author: tggzzz
author_rank: Super Contributor
timestamp: February 16, 2024, 11:20:42 am
content: Quote from: radio879 on January 18, 2024, 08:46:42 pmMake sure it doesn't have caches, since they improve the average time/performance but make the worst case even worse.Make sure it doesn't have interrupts, unless the delays they can/will introduce jitter.Ideally go for a hardware/software/tool ecosystem designed from the silicon upwards toguarantee(not measure and hope!) timing down to the clock cycle, and where multicore/multithread operation isn't a bolt-on afterthought.Such things do exist, and you can buy them at DigiKeyhttps://www.digikey.co.uk/en/supplier-centers/xmoshttps://www.digikey.co.uk/en/products/filter/embedded/microcontrollers/xmos/685?s=N4IgjCBcoLQdIDGUBmBDANgZwKYBoQA3AOygBcAnAV3xAHsoBtEADhYAYQBdAgBzKggAypQCWxAOYgAvrKAInformation dense overview:http://www.xmos.com/published/xcore-architecture-flyer?version=latestSuccinct, informative:https://www.xmos.com/published/xmos-programming-guideGood enough to capture and process 100Mb/s ethernet serial streamsin software. Whether that is a good use of silicon is a separate issue; the point is that it can be doneYes, I'm a fan. I particularly like the short hardware and software documents that don't have errata because they work as specifiedIt took me less than a day to be doing continuous I/O guaranteed to 2.5ns clock periods while simultaneously communicating with a PC over USB. That lack of pain impressed me.