Showing posts with label Parallax. Show all posts
Showing posts with label Parallax. Show all posts

Sunday, December 23, 2012

PA-47 At Only 1 Watt

Original PA-47
with Large Heat Sink, 
Matching Transformer
and FET IRF510
In keeping with my goal of making my Homebrew projects as small as my abilities allow and using the same previously created PCB board (see previous post on my PA-47 Power Amplifier)

I have reduced the size of the output matching transformer and changed the output FET from a IRF510 (TO-220) to a 2N7000 (TO-92).

New PA-47  Running at
1 Watt Output

Knowing that the 2N7000 would not produce the same 4.7 Watts of the replaced IRF510 with its large heat sink, I planned to reduce the supply voltage; from 12.6 Volt down to 9 Volts, and reduce the size and turns ratio of the matching transformer form 1:3 to 1:2.



New Replacement Parts
of the Original PA-47
are the 2N7000 and 

Smaller Matching Transformer

Initial test produced 1 Watt RF output, and a Very Hot 2N7000 FET. A small 3/4 inch sq piece of aluminum flashing was super-glued to the FET which solved the heat build-up problem. Just in case, I also installed a pin socket for each leg of the FET (which means I can easily replace the FET, if I inadvertently cause it to release its Magic Blue Smoke :-).

For this first test, the DC input was 8.5 Volts (not a very fresh battery set) at 360 mAmps: or 3.06 Watts DC Input, which suggests the PA at only about 32% efficient (more work is maybe needed to increase this). The standby current (no RF input) is about 13 mAmps, and most of that is used to drive the green Power-On LED.

30 Meter Low Pass Filter

Without the FAN and Large Heatsink that was used in the initial PA-47, this PA is silent.

Like the original PA-47 an outboard Low Pass Filter is necessary and was used for this experiment.


TR Relay Mounted Under the PCB

The yellow-tag jumper on the header turns on the TR Relay, which is mounted on the under side of the PCB. Normally transmitter control from the exciter would be connected to this header.

The RF voltage measured at the 50 Ohm Load via the scope: 20 Volts PP, (20/2*.707)^2/50 => 1 Watt, or as per the web  RF calculator.

This smaller and lower power PA will be perfect for my ongoing Propeller 30 Meter Beacon efforts.

After I correct the PCB layout (see previous discovered errors),  and if there is interest, I may make the PA-47  board available, or as a complete Kit (but, as a board or kit, this would not be suited for first time builders, nor a builder without a Microscope).

The Exciter (Driver)
The Exciter
Outputs 12 mWatts

For this experiments and as explained previously, I used my Propeller Transmitter as the exciter which provides 12 mWatts of drive. The Propeller is the second board in the stack.

--

Monday, December 26, 2011

30m Beacon - a 20 min Effort

So how easy was it to Program a CW and QRSS FSK Beacon with the Propeller? See previous post.

Well here is the code of the Main program, followed by the supplied Synthesizer Library. Note: in the Propeller "Spin"Programming Language, line indents (i.e., TABs or spaces) are important. They define the programming constructs for loops and other structures.

The Main Program


CON

  _CLKMODE = XTAL1 + PLL16X
  _XINFREQ = 5_000_000

  RFPin  = 27

  ReceiverDial = 10_138_700
  TuneOffset   =      1_300

  Frequency = ReceiverDial + TuneOffset          'DC to 128MHz


VAR

OBJ
  Freq : "Synth"
  
PUB Main | i
  repeat
    ' Send my Call via CW
    sendCWstr(string("de WA0UWH"))
    delay(2000)

    ' For fun, Generate 5 QRSS tones
    repeat i from 0 to 4
       sendTone(50+2*i)
       delay(3000)
       noTone
       delay(3000)

    delay(12000)

PUB delay(ms)
  waitcnt(cnt + clkfreq/1000 * ms)

PUB sendCWstr(stringptr)
  repeat strsize(stringptr)
      sendCWchr(byte[stringptr++])

PUB sendCWchr(char)    'A lookup Table of CW character

  case char
   " ":
    noTone
    delay(700)
    return

   "A", "a":
    dot
    dash
   "B", "b":
    dash
    dot
    dot
    dot
   "C", "c":
    dash
    dot
    dash
    dot

    . . . .

   "9":
    dash
    dash
    dash
    dash
    dot
   "0":
    dash
    dash
    dash
    dash
    dash

   "@":
    dot
    dash
    dash
    dot
    dash
    dot

  noTone
  delay(300)   ' Delay between each character

PUB sendTone(tone)
  Freq.Synth("A",RFPin, Frequency + tone)

PUB noTone
 Freq.Synth("A",RFPin, 0)


PRI dot
    sendTone(50)
    delay(100)
    noTone
    delay(100)


PRI dash
    sendTone(50)
    delay(300)
    noTone
    delay(100)



Here is the supplied Libaray


PUB Synth(CTR_AB, Pin, Freq) | s, d, ctr, frq

  Freq := Freq #> 0 <# 128_000_000     'limit frequency range
  
  if Freq < 500_000                    'if 0 to 499_999 Hz,
    ctr := constant(100 << 26)      '..set NCO mode
    s := 1                             '..shift = 1
  else                                 'if 500_000 to 128_000_000 Hz,
    ctr := constant(010 << 26)      '..set PLL mode
    d := >|((Freq - 1) / 1_000_000)    'determine PLLDIV
    s := 4 - d                         'determine shift
    ctr |= d << 23                     'set PLLDIV
    
  frq := fraction(Freq, CLKFREQ, s)    'Compute FRQA/FRQB value
  ctr |= Pin                           'set PINA to complete CTRA/CTRB value

  if CTR_AB == "A"
     CTRA := ctr                        'set CTRA
     FRQA := frq                        'set FRQA                   
     DIRA[Pin]~~                        'make pin output
     
  if CTR_AB == "B"
     CTRB := ctr                        'set CTRB
     FRQB := frq                        'set FRQB                   
     DIRA[Pin]~~                        'make pin output

PRI fraction(a, b, shift) : f

  if shift > 0                         'if shift, pre-shift a or b left
    a <<= shift                        'to maintain significant bits while 
  if shift < 0                         'insuring proper result
    b <<= -shift
 
  repeat 32                            'perform long division of a/b
    f <<= 1
    if a => b
      a -= b
      f++           
    a <<= 1


This 30m Beacon is running on; a Parallax Propeller, a 9Volt Battery, and two short 3 inch wires for the antenna.

--

Sunday, December 25, 2011

A Propeller for Christmas

I got a VERY unexpected surprise for Christmas, . . . even though I ordered it for myself.

I have been playing with micro processors for the last few months, with the idea that at some point they will control my beacons or other Amateur Radio Projects and Devices. So far, I have been using the Arduino and Teensy micros for most of my exploration and learning.

One of the Blogs that I follow is Wardy's Projects, he posted about a new device for him. It is the Propeller from Parallax. My initial reaction was; yeah, right, . . another "me-too micro". And, it was made by same people that made the Stamp? The Stamp is one micro that I just never got around to exploring. But, as per Wardy, the Propeller promises to have some interesting capabilities that I would find useful.

Note: while writing the post, the Parallax site appears to be down, what's with that!

After doing a little more reading/research, I decided to order a Propeller "Gadget Gangster" it was about $50.00 and it appeared similar to the Arduino Shield that I had been using. I picked up the order at the post box on Christmas eve.

Some of the attributed of the Propeller Micro Processor that I though would be interesting, are:
  • The processor has 8 cores, known as COG's, each is an independent processor which can run it's own code.
  • The master clock can run up to 80mHz (or much slower, to save power), and some people over clock it even faster.
  • Each COG can control two Frequency Synthesizers, from DC, to an amazing 120mHz.

Some of my concerns were; it does not use "C", it has it own languages called "Spin" and "pasm", although Spin looks a little like "C", . . . it's just another new language to learn.

The Propeller Processor looks like it maybe an ideal Amateur Radio RF Frequency Synthesizer, just ideal for my planned Transmitters, Receivers and Beacons. The raw Propeller Chip is available in DIP and SMT format, for about $8.00.

It took a bit to get the Propeller running (i.e., I am familiar with the Arduino, which obtains its power from the USB cable). By adding a 9Volt Battery and Clip, the hardware installation was complete. Installation of the Propeller IDE software was easy, a download and a few mouse clicks. It did not run, under WINE on my Ubuntu system, it ERRORd with something about the USB could not find the ports. But, there is a download for Linux and it installed quickly. The example and library directories are easily found in the MS directory structure of the first install that I did under WINE.

I clicked on the Frequency Synthesizer example, and its required library, which were loaded into two source TABs on the IDE GUI.

The source files were short and simple, I could see in the source file where "they" set the desired frequency, so therefore, with a quick edit, I picked my favorite frequency: 10.14mHz (typed as "10_140_000", the compiler ignores the under-bars).

I pressed F11, an ERROR! The compiler could not find the USB, pressing F7 fixed the problem. Pressing F11 once again --- out of the speaker across the room came a TONE!!! I had my HF receiver set for upper sideband on 10.1387mHz (the normal QRSS and WISPR receive frequency). - IT WORKED !!

My very unexpected Christmas surprise? - It was so simple.

After modifying the programs a little, I now have a Beacon sending my Call sign with CW, and sending multi-level FSK QRSS signals. Before going live with an antenna, I will need to build a low pass (or band pass) filter for the output. Currently it is just; a Battery, the Propeller, and two short 3 inch wires for an antenna.

And just think, I am only using one of 8 COGs and one of the 16 frequency synthesizers on the processor! I can do a lot more with this thing. Spin is going to take some time to learn, but I think I can like it.

The only downside that I currently see is the Propeller is not 5v TTL, it is a 3.3v CMOS processor. If real TTL levels are necessary; an input 5v TTL can be connected via a 4.7K resistor, for output a TTL driver circuit maybe necessary, and yet some TTL device will work with the CMOS 3.3v output.

I am just getting started with this thing. I am going to have fun with my Propeller in the coming mouths, . . .

Thanks to Wardy, and Santa!

--