FeelElec - FY6900 Voltage source project  - Page 1
Forum section: electronics / projects

author: threephase03
author_rank: Contributor
timestamp: July 07, 2025, 05:57:48 am
content: Hi EveryoneI've created a Low Power voltage source using two function generators and power amplifiers. I've coded 90% of what I need to do and just need to find out how to code for the arbitrary wave function. I want to be able to create sinewave's with harmonics for testing of PQ meters.This is just for stuffing around at home, nothing professional. I use a Omicron CMC at work, and would like something to play with at home.Link to the project if anyone is interestedhttps://youtu.be/LVukvrYTjocThanks in advance for any help

author: dmendesf
author_rank: Frequent Contributor
timestamp: July 07, 2025, 06:28:58 am
content: A good way to do the arbitrary functions generator would be to use the stm32f334. It has 3 DACs that can run at least at 1MSPS. It also has DMA to ger the data from the buffer and output it to the DACs without intervention. I think there's a nucleo board for it. This month freight is free at ST store for development boards.

author: threephase03
author_rank: Contributor
timestamp: July 07, 2025, 06:31:20 am
content: Thanks ill check it out

author: radiolistener
author_rank: Super Contributor
timestamp: July 07, 2025, 09:21:52 am
content: You can generate a 3-phase arbitrary waveform using three high-speed DACs driven by an FPGA implementing NCOs (Numerically Controlled Oscillators) in Verilog. This allows precise control of waveform shape, frequency, and phase.The main challenge lies in achieving clean, low-distortion output. This requires:- A sufficiently high sampling rate to avoid aliasing and preserve waveform fidelity,- DACs with good dynamic range and linearity,- Well-designed reconstruction filters,- And high-linearity power amplifiers for driving loads.Proper synchronization and careful PCB layout are also critical to minimize jitter, crosstalk, and phase imbalance between the channels.In reality, this is not as straightforward as it may seem. Generating a basic 3-phase signal is relatively easy - even low-speed DACs on an STM32, as mentioned earlier, can handle that. However, its output will be very noisy, with relatively high distortions and unwanted harmonics (much worse than cheap FY6900) which is not good for power meter calibration. If your application requires low distortion and high signal purity include harmonics, achieving that becomes significantly more complex. STM32-based solutions are not suitable for such tasks due to their low sampling rate, low dynamic range and relatively high jitter.Therefore, if you take a look inside your FY6900 signal generator, you'll find that it uses high-speed DACs operating at a 250 MHz sample rate (in your case overclockedDAC904), with waveform data generated by an FPGA - specifically, a Cyclone IV, if I recall correctly.Professional-grade signal generators, on the other hand, employ more advanced architectures, typically using 16-bit DAC running at 1.25 GHz or even above 2 GHz to achieve superior signal fidelity and ultra-low distortion.In summary, if you don't have prior experience in this area, it's reasonable to start experimenting with a simpler STM32-based solution to learn the fundamentals. Once you're familiar with the basics, you can gradually move on to more advanced FPGA-based implementations with high speed DACs.Since your accuracy requirements are not very stringent, a lower-quality signal generated by an STM32 might be sufficient for your purposes.As an option, you could consider repurposing the FPGA and DAC boards from an FY6900 generator by replacing the control board with your own. However, reverse-engineering the existing hardware might turn out to be more complex than designing a custom board with similar functionality from scratch.

author: coromonadalix
author_rank: Super Contributor
timestamp: July 08, 2025, 06:42:16 am
content: and some based dds sig gen ? could they be good ? there's one model shield on ebay for arduino mega, 4 outputs, you can sync them, play with phase etcsure you need output stages for higher power ?