Sonsivri
 
*
Welcome, Guest. Please login or register.
Did you miss your activation email?
April 29, 2024, 02:49:30 14:49


Login with username, password and session length


Pages: [1]
Print
Author Topic: I need an idea for MCU controlled AM (A3E)  (Read 2327 times)
0 Members and 1 Guest are viewing this topic.
LithiumOverdosE
Senior Member
****
Offline Offline

Posts: 350

Thank You
-Given: 374
-Receive: 569


« on: November 26, 2023, 01:54:37 13:54 »

I have to make a programmable amplitude modulator (DSB, A3E) with possibility of sweeping the carrier with fixed modulating wave and separately of sweeping the modulating wave with fixed carrier.
The carrier frequency should be 500 kHz -10 MHz and the modulating frequency should be 1 Hz - 5 MHz (obviously always lower than carrier freq).

Since this is a part of testing circuity I just have to produce carrier with both sidebands present and no information will be used for modulation wave.
The simplest way to achieve that is to push depth of modulation to 100%.

The size of the circuit and number of components should be as low as reasonably possible and that is where things got complicated.

The idea is to use STM32F401RE to control DDS IC like AD9834 with software calculated sweep.
I'm aware that some DDS ICs have programmable sweep but they're significantly more expensive, larger, and less available so that's not an option and implementing sweep in firmware is not a problem.

My fist thought was to simply control AD9834 with the MCU to generate sine wave of desired frequency and then to periodically turn its output on and off periodically at modulation wave frequency (using timer interrupts of the MCU).
Effectivelly it should emulate 100% depth of modulation but sims show something else.
In theory at the output only the carrier and sidebands should be produced.
For example with sine wave carrier is 2 MHz and modulation wave (in this case switching frequency) of 100 kHz what one should observe is 2 MHz and sidebands (LSB 1.9, 1.8, 1.7. 1.6, 1.5 etc and USB 2.1, 2.2, 2.3, 2.4, 2.5 etc).
However in spectrogram what I observed 2 MHz carrier and only odd harmonics in sidebands (LSB 1.9, 1.7. 1.5 etc. and USB 2.1, 2.3, 2.5 etc.).

So, for the moment it seems that such approach is not good although I'm not sure why (RF design is not my stronger suite).

The other option is to use two AD9834 and balanced modulator such as MC1496 but that increasingly increases the number of components, number of used pins of MCU and size of the entire circuit (2 x SOIC20 + SOIC14 + OSC + LPF + output OPAMP).

So, I wonder if someone has some better idea to suggest?
Logged
h0nk
Senior Member
****
Offline Offline

Posts: 256

Thank You
-Given: 210
-Receive: 230



« Reply #1 on: November 27, 2023, 01:57:36 13:57 »

Hello LithiumOverdosE,

i would suggest to use a FPGA.

Quartus/Altera has easy to use IP-Blocks for DDS.
Other vendors should have similar building blocks in their software.
You can do all the needed math on VHDL/Verilog-Level inside the FPGA.
The only needed external circuit is a fast DAC, a Nyquistfilter and an amplifier.

Best Regards
Logged
rtm
Junior Member
**
Offline Offline

Posts: 54

Thank You
-Given: 91
-Receive: 77


a.k.a. klug


« Reply #2 on: November 27, 2023, 03:24:13 15:24 »

LithiumOverdosE,

you are confusing 100% AM modulation with ASK (Amplitude Shift Keying).

There is a 100% AM modulation with a sinewave signal:



and there is an ASK modulation:



In second case (ASK), you are using meander signal for modulation and this signal has odd harmonics:



As a result, you should have that spectre that you described : (LSB 1.9, 1.7. 1.5 etc. and USB 2.1, 2.3, 2.5 etc.)

So, if you need the digital modulation (ASK) then you have it done. But to obtain the analog modulation you need a more complicated system than you are trying to use. Your second option with 2 generators and a modulator is suitable for it.
Logged
sadman
Hero Member
*****
Offline Offline

Posts: 686

Thank You
-Given: 1757
-Receive: 2637


Sow The Seeds of Love


« Reply #3 on: November 27, 2023, 03:57:16 15:57 »

hope this will help you

https://www.sp6gk.com/AM_modulator_DDS1.html


https://maker.pro/forums/threads/am-modulator-with-mc1496-project-problem.220878/


https://maker.pro/forums/threads/designing-differential-signal-modulator.294593/
« Last Edit: November 27, 2023, 04:05:05 16:05 by sadman » Logged
LithiumOverdosE
Senior Member
****
Offline Offline

Posts: 350

Thank You
-Given: 374
-Receive: 569


« Reply #4 on: November 27, 2023, 10:33:07 22:33 »

Quartus/Altera has easy to use IP-Blocks for DDS.
Other vendors should have similar building blocks in their software.
You can do all the needed math on VHDL/Verilog-Level inside the FPGA.
The only needed external circuit is a fast DAC, a Nyquistfilter and an amplifier.

Interesting.
I considered using FPGA for one other project a year back (arbitrary waveform generator) but the problem was that at that point I realized that I can achieve reasonably high sampling rate only with the fastest FPGAs (Xilinx, Altera) and the lead times were over 56 weeks.

Do you have any suggestions as to which Altera, Quartus FPGAs would be suitable enought considering the calculation speed (sin function is PITA and I even considering implementing fixed point arithmetics)?

Posted on: November 27, 2023, 10:03:17 22:03 - Automerged

LithiumOverdosE,

you are confusing 100% AM modulation with ASK (Amplitude Shift Keying).

There is a 100% AM modulation with a sinewave signal:



and there is an ASK modulation:



In second case (ASK), you are using meander signal for modulation and this signal has odd harmonics:



As a result, you should have that spectre that you described : (LSB 1.9, 1.7. 1.5 etc. and USB 2.1, 2.3, 2.5 etc.)

So, if you need the digital modulation (ASK) then you have it done. But to obtain the analog modulation you need a more complicated system than you are trying to use. Your second option with 2 generators and a modulator is suitable for it.


Actually, I don't need to do any modulation for the purpose of information transfer.
I just have to provide fixed carrier with its LSB and USB harmonics (both odd and even) present at all times.
Frequency sweep will be there just for the purpose of shifting the same spectrum relationship up or down.

Posted on: November 27, 2023, 10:11:38 22:11 - Automerged


The first one is pretty much one of the approaches that I had in my description (using MC1496 as modulator and DDS IC for carrier sythesis).
Using the LPF to convert PWM signal provided by MCU may not be suitable to cover the required bandwidth of the modulating signal but I will check it out in sim since the precision is not of highest importance considering that what I need is just to provide signal with appropriate spectrum content.

That said, a while ago I modeled MC1496 in Proteus based on its internal schematic presented in the datasheet so if someone needs it I can upload it (nothing special but may save time for somebody).
Logged
h0nk
Senior Member
****
Offline Offline

Posts: 256

Thank You
-Given: 210
-Receive: 230



« Reply #5 on: November 27, 2023, 10:40:57 22:40 »

Interesting.
I considered using FPGA for one other project a year back (arbitrary waveform generator) but the problem was that at that point I realized that I can achieve reasonably high sampling rate only with the fastest FPGAs (Xilinx, Altera) and the lead times were over 56 weeks.

Do you have any suggestions as to which Altera, Quartus FPGAs would be suitable enought considering the calculation speed (sin function is PITA and I even considering implementing fixed point arithmetics)?

I use for my hobby, which is limited to audio signal processing, the usual easy to get
devices from Altera: EP1C3, EP2C5, EP3C25, EP4CE6, EP4CE10 and 10M08.
So i do not need that much speed and could give no advice which device to use.

But You should try to instantiate a DDS on a device of Your choice.
For a 10 MHz signal a clock of 50 to 100 MHz should be sufficient.
This is not that fast. You should test the result and test how well it works.

DDS means not the calculation of sin. Its only a lookup in a table.
Maybe some linear calculation to interpolate and a Nyquistfilter after this.
The same is valid for Your modulation generator.
The modulation itself is a simple multiplication of both signals with
a offset for the modulation to achieve 100 % modulation.

Doing linear sweeps is also only simple math. Determine the control word for
the start frequency and how fast to increment this control word.


As a proof of concept i made once a "state oscillator" on a Cyclone 1 with a
synthesized (soft-)multiplier and 100 MHz clock derived from a PLL which
outputs 10 MHz (sine).
This oscillator calculates every 10 ns the next value of sine.
But they could not easily sweeped, so they are not for You.

Good luck, and

Best Regards
Logged
sadman
Hero Member
*****
Offline Offline

Posts: 686

Thank You
-Given: 1757
-Receive: 2637


Sow The Seeds of Love


« Reply #6 on: November 28, 2023, 11:13:13 11:13 »


That said, a while ago I modeled MC1496 in Proteus based on its internal schematic presented in the datasheet so if someone needs it I can upload it (nothing special but may save time for somebody).


yes please

sadman
Logged
LithiumOverdosE
Senior Member
****
Offline Offline

Posts: 350

Thank You
-Given: 374
-Receive: 569


« Reply #7 on: November 28, 2023, 11:10:41 23:10 »

yes please

So, here is Proteus sim model for MC1496.
The model behaviour is close enough to the real life device.
« Last Edit: November 29, 2023, 05:57:33 17:57 by LithiumOverdosE » Logged
Pages: [1]
Print
Jump to:  


DISCLAIMER
WE DONT HOST ANY ILLEGAL FILES ON THE SERVER
USE CONTACT US TO REPORT ILLEGAL FILES
ADMINISTRATORS CANNOT BE HELD RESPONSIBLE FOR USERS POSTS AND LINKS

... Copyright © 2003-2999 Sonsivri.to ...
Powered by SMF 1.1.18 | SMF © 2006-2009, Simple Machines LLC | HarzeM Dilber MC