Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changing the drive level of tune doesn't work. #279

Closed
on3vna opened this issue Jun 11, 2016 · 22 comments
Closed

Changing the drive level of tune doesn't work. #279

on3vna opened this issue Jun 11, 2016 · 22 comments

Comments

@on3vna
Copy link

on3vna commented Jun 11, 2016

When setting the TUNE level in the transmit options to 10 we would assume that the output power would be 10% of the maximum output level.
There is no change at all in the output level it is always fulll transmit power.

@pavel-demin
Copy link
Owner

I don't think that I can do anything about this problem. It's a known limitation of the Red Pitaya board.

Red Pitaya does not have any hardware for the drive control. I suppose that some kind of variable or fixed amplifier or attenuator should be used to adjust the output level. I've seen a nice set of fixed value SMA attenuators at the FUNKAMATEUR online shop:
http://www.box73.de/advanced_search_result.php?keywords=Dampfungsglied+sma

Another idea discussed on the Red Pitaya forum was to use the OUT2 output to control an external amplifier:
http://forum.redpitaya.com/viewtopic.php?t=265&p=5292#p5292

@on3vna
Copy link
Author

on3vna commented Jun 13, 2016

Maybe this could be used : AD8321 or a replacement for it. I have still 2 in the my junkbox.

@on3vna
Copy link
Author

on3vna commented Jun 13, 2016

AD8324 could be used 3.3V supply or AD8325 5V supply.

@pavel-demin
Copy link
Owner

pavel-demin commented Jun 13, 2016

A discussion of a variable attenuator based on BAP70Q (quad PIN diode attenuator) can be found at this link.

@on3vna
Copy link
Author

on3vna commented Jun 13, 2016

Advantage of the ADXXXX is that it is to be programmed by SPI.

@pavel-demin
Copy link
Owner

I've just found an interesting article about a variable attenuator based on HSMP-3816.

Looks like it works quite well between -4 and -20 dB.

@pavel-demin
Copy link
Owner

pavel-demin commented Jun 13, 2016

Advantage of the ADXXXX is that it is to be programmed by SPI.

I think that a pin diode attenuator could be combined with a small SPI or I2C DAC like AD5601 or AD5602.

@on3vna
Copy link
Author

on3vna commented Jun 13, 2016

Both solutions could be tried out and see what is best. Always available for testing -;)

@on3vna
Copy link
Author

on3vna commented Jun 13, 2016

Pavel,
I was looking around and found this:

PE4302 Digital RF step attenuator.

This could be used in the TX path and also in both receiver paths and is not so expensive.
you can find them on ebay .
http://www.aliexpress.com/store/product/PE4302-Digital-RF-Attenuator-Module-High-Linearity-0-5dB/1829717_32473840163.html

@on3vna
Copy link
Author

on3vna commented Jun 14, 2016

Hello Pavel,

http://wiki.redpitaya.com/index.php?title=Command_line_utilities

Here i found that via the command line utility it is possible to set the amplitude of the generated signal:

redpitaya> generate
generate version 0.90-299-1278

Usage: generate   channel amplitude frequency <type>

       channel     Channel to generate signal on [1, 2].
       amplitude   Peak-to-peak signal amplitude in Vpp [0.0 - 2.0].
       frequency   Signal frequency in Hz [0.0 - 6.2e+07].
       type        Signal type [sine, sqr, tri].

Is that not something that can be implemented in the transceiver also for the output drive ?

Rgds
Johan

@pavel-demin
Copy link
Owner

pavel-demin commented Jun 14, 2016

The generate program scales the signal digitally before it's sent to the DAC.

In case of SDR applications, I don't think that scaling the input to the DAC is a good idea. It decreases the effective DAC resolution, SNR, etc.

Then it depends on what exactly you want to achieve.

If it's just for the test signals, then it's possible to generate digitally scaled test signals with via Setup/Tests. Level controls amplitude. Freq # 1 and Freq # 2 can be set to 0 to generate only one frequency.

If it's for the transmitted signals, then with Radio Model set to HPSDR the signals can be digitally scaled with the Drive slider.

@on3vna
Copy link
Author

on3vna commented Jun 14, 2016

Well we had a discussion here at the QRL and indeed scaling the DAC, you will pay in resolution SNR etc.

So you say that with the type of radio set to HPSDR iso hermes the output level can be changed with the drive slider ?

@pavel-demin
Copy link
Owner

pavel-demin commented Jun 14, 2016

So you say that with the type of radio set to HPSDR iso hermes the output level can be changed with the drive slider ?

Here is what is written in HPSDR - USB Data Protocol :

When using Hermes or PennyLane the Transmitter output level is set by the drive level value (C0 = 0b0001001x, C1 = 0x00 to 0xFF) and not by the amplitude of the I&Q signals. These are held to a peak value of +/-1.0 by AGC action in the PC DSP code. When using Penelope the amplitude of the I&Q signals controls the output level. Set the drive level (C1) to 0x00 when Penelope is selected and whilst the transmitter is not active.

@on3vna
Copy link
Author

on3vna commented Jun 16, 2016

Pavel,

The output of the DAC could be changed by putting in serie with the resistors used in AVIRES and BVIRES (R47 and R48 ) a FET like is done with some DDS chips. Hence it would be possible to drive the fet with a DC voltage and control the output voltage of the DAC and still keep the resolution etc.

Much simpler then using the AD chips or PIN diodes. Of course this needs some soldering on the red pitaya.

Rgds
Johan

@pavel-demin
Copy link
Owner

Yes, it's similar to how it's done on the Hermes board:

If I'm not mistake FSADJ is similar to AVIRES and BVIRES.

@on3vna
Copy link
Author

on3vna commented Jul 3, 2016

I have given the info to RED PITAYA team concerning the implementation with the FET. I would love to try it out but the components on the pba are to small for my tools and eyes. I don't want to screw up my red pitaya.

Finally i did the hardware modification but with a DS1803-10.
So now I can change the drive level of the red pitaya.
The DS1803 has two 10K resistors that are I2C controlled, either separate of both the same value can be applied. This means that this mod also can be used in pure red pitaya applications in order to change the output levels independently .
I also added a screen shot from the spectrum analyser showing min and max output power from the RED
Some pictures of the HW change (Tnx Giovanni for the artwork)
002 2
002
003
004
005
spectrum_output_power

@on3vna
Copy link
Author

on3vna commented Sep 2, 2016

code changed for the HW modification.

@pavel-demin
Copy link
Owner

Great! I've added this code with a few minor changes to my repository: 384c6b0.

I've just replaced the 8-bit command 0xAF with the 16-bit command 0xA9.

@on3vna
Copy link
Author

on3vna commented Sep 15, 2016

Pavel,
I think we can close this now as we have 3 ways of setting the drive level.
2 hardware solutions and 1 software solution

73 de ON3VNA
rgds
Johan

@on3vna on3vna closed this as completed Sep 15, 2016
@ka6s
Copy link

ka6s commented Sep 17, 2016

Pavel,

You have us all very curious. I was wondering if you could publish a
future pin-out utilization possibly?

  1. You have checked--in connecting the A/Ds recently - what are these going
    to source SWR F/R?? What is the pin assignment?
  2. If you are going to bring in/out I2S channels for an external Codec -
    what is the pin assignment there?
  3. What is the Software solution for the Drive?

Inquiring minds are REALLY curious!

Thanks,

Steve KA6S

On Thu, Sep 15, 2016 at 1:14 AM, on3vna notifications@github.com wrote:

Pavel,
I think we can close this now as we have 3 ways of setting the drive level.
2 hardware solutions and 1 software solution

73 de ON3VNA
rgds
Johan


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
#279 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABsJOCiINCnQu0KWJZ-52IaOUKpmajemks5qqP5rgaJpZM4Izkir
.

@pavel-demin
Copy link
Owner

  1. You have checked--in connecting the A/Ds recently - what are these going to source SWR F/R?? What is the pin assignment?

Yes, the slow analog inputs are used for the Fwd and Rev power measurement. Fwd - Analog input 0, Rev - Analog input 1.

  1. If you are going to bring in/out I2S channels for an external Codec - what is the pin assignment there?

The I2S interface is sharing pins with the ALEX interface. So, the two can't be used simultaneously.

  1. What is the Software solution for the Drive?

It's what I didn't want to implement initially but after all I've added a multiplier just before the DAC interface. This way the DAC samples are scaled down digitally. The scale factor is controlled by the Drive slider in PowerSDR mRX PS.

@ka6s
Copy link

ka6s commented Sep 18, 2016

Thank you Pavel - that helps greatly!

Steve

On Sat, Sep 17, 2016 at 2:28 PM, Pavel Demin notifications@github.com
wrote:

  1. You have checked--in connecting the A/Ds recently - what are these
    going to source SWR F/R?? What is the pin assignment?

Yes, the slow analog inputs are used for the Fwd and Rev power
measurement. Fwd - Analog input 0, Rev - Analog input 1.

  1. If you are going to bring in/out I2S channels for an external Codec
  2. what is the pin assignment there?

The I2S interface is sharing pins with the ALEX interface. So, the two
can't be used simultaneously.

  1. What is the Software solution for the Drive?

It's what I didn't want to implement initially
#279 (comment)
but after all I've added a multiplier just before the DAC interface. This
way the DAC samples are scaled down digitally. The scale factor is
controlled by the Drive slider in PowerSDR mRX PS.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#279 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABsJOK6QFLXPJXcyjt06dFV1To3lBcarks5qrFuHgaJpZM4Izkir
.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants