Difference between revisions of "G4WIM PA controller"

From BATC Wiki
Jump to navigation Jump to search
(15 intermediate revisions by 2 users not shown)
Line 26: Line 26:
 
* Vdd, 100mV resolution
 
* Vdd, 100mV resolution
 
* Idd, 100mA resolution
 
* Idd, 100mA resolution
* PA temperature, 0.1C resolution
+
* PA temperature, 0.3C resolution
* Bias voltage, 10mV resolution for LDMOS, 1V for Pyro Jo
+
* Bias voltage, 10mV resolution for LDMOS  
 
* RF power (forward or reverse but not both – depends on HW implementation)
 
* RF power (forward or reverse but not both – depends on HW implementation)
 
* Fan status on or off
 
* Fan status on or off
Line 34: Line 34:
 
===Amplifier choices===
 
===Amplifier choices===
  
The design was initially conceived for a Pyro Jo PA which needs 24V DC bias to activate it, subsequently it was modified to provide a temperature compensated bias for LDMOS FET’s. Basically for the LDMOS FET use the temp compensated bias circuit and for the Pyro JO PA use the 24V DC device – one or the other NOT both.  See schematics for more detail.
+
The design was initially conceived for a Pyro Jo PA which needs 24V DC bias to activate it, subsequently it was modified to provide a temperature compensated bias for LDMOS FET’s. Basically for the LDMOS FET use the temp compensated bias circuit and for the Pyro JO PA use the 24V DC device – one or the other NOT both.   
  
* Link 3 jumper when installed configures the firmware for Pyro Jo PA and when not installed configures for LDMOS operation.
+
See CQ-TV article and schematics for more detail.
* Link 4 jumper when installed configures the firmware for SLAVE operation and when not installed configures for MASTER operation.
 
 
 
MOST IMPORTANT, links 3 & 4 only configure the firmware, additionally  if you are using LDMOS FET PA DO NOT install or use the 24V DC power module as it will instantly destroy the FET.
 
  
 
===Hardware===
 
===Hardware===
Line 45: Line 42:
  
  
[[File:G4WIM PA CONTROLLER V1-0 SS.png|400px]]
+
[[File:G4WIM PA CONTROLLER SS V2-0.png|400px]]
 +
 
  
 
For each use case firmware works differently and is jumper selected as mentioned above.
 
For each use case firmware works differently and is jumper selected as mentioned above.
Line 55: Line 53:
 
Bill of material
 
Bill of material
  
 +
[[:File:G4WIM PA CONTROLLER V2-0 BOM.xlsx]]
  
 +
Schematics
  
Schematics
+
*[[:File:G4WIM PA CONTROLLER V2-0 SHT 1 (1).pdf]]
 +
 
 +
*[[:File:G4WIM PA CONTROLLER V2-0 SHT 2 (1).pdf]]
 +
 
 +
*[[:File:G4WIM PA CONTROLLER V2-0 SHT 3 (1).pdf]]
  
 
*[[:File:PA CONTROL WIRING SHACK DISPLAY.pdf]]
 
*[[:File:PA CONTROL WIRING SHACK DISPLAY.pdf]]
Line 75: Line 79:
 
Source code
 
Source code
  
[[:File:Atmel_BATC_Unified_PA_Controller.zip]]
+
[[:File:BATC_PA_Controller_Firmware_V2.zip]]
 +
 
 +
The radio link uses an nRF905 + Atmel nano combined with some custom code in an ATmega 328.
 +
The Atmel nano code is based on this solution  http://blog.zakkemble.net/nrf905-avrarduino-librarydriver/comment-page-1/
  
The radio link uses an nRF905 and Atmel nano – this solution is a copy of this design http://blog.zakkemble.net/nrf905-avrarduino-librarydriver/comment-page-1/ but with minor code changes.  It is very easy to build / modify using the Arduino environment.  The only minor code change required is to remove the “TO” time out message being sentIf this line is not commented the atmega 328 thinks the link is still good as it’s getting traffic.
+
IMPORTANT - after building several of these links it became apparent that the timings required for the nRF905 are not the same for all modules.  To fix this issue I've created a new improved version of Zak's C code for the Atmel Nano.  The code for the ATmega328 has also been changed to match.   
 +
Using Zak Kemble code in the Arduino environment might work - but it is better to use his C code version with my modifications as documented and provided in the above source code link.
  
Comment out line 110 as per below:
+
When programming the hex files make sure the fuse /8 is unchecked and that fuse for external 8MHz xtal is selected as the clock source.
 +
If building your own code from source using Atmel Studio V7.0 set optimisation to -OS  (optimise for size).
  
if(timeout) // Timed out
+
Any chips supplied by the BATC shop will have the correct code installed for both the ATmega and Nano - you cannot mix and match Arduino code with the ATmega C code.
{
 
Serial.println(F("TO"));
 
break;
 
}
 

Revision as of 19:08, 18 October 2019

An advanced PA controller design by Tim G4WIM and described in CQ-TV 265 - PCB's will be available from the BATC shop.

Introduction

This project came about as a result of needing to remote control and monitor a 2.4GHz power amplifier for the QO-100 satellite up link. In the case of G4WIM the amplifier is at the end of 75 metres of cable directly beneath the feed point of a 1.2 metre dish. So running from the shack to the PA was not an option!

It has evolved from a simple controller which relied on either 5 or 12 Volts being sent up the coax to set off, standby or transmit modes into a multi-purpose design.

Configurations

The resulting system can be configured in three ways:

  • Full remote control of the PA and shack monitoring of vital signs – using radio link.
  • When PA is in the shack, local control and monitoring - no radio link.
  • Remote control of PA by means of DC down the coax – no radio link or remote monitoring

The most likely use cases are 1 and 2. In this article I refer to the PA with associated control and telemetry hardware as the MASTER and the remote display / control in the shack as the SLAVE. When used as #2 above there is no SLAVE and the MASTER serves as control and display.

Monitoring

In all cases it allows monitoring of the following analogue signals:

  • Vdd, 100mV resolution
  • Idd, 100mA resolution
  • PA temperature, 0.3C resolution
  • Bias voltage, 10mV resolution for LDMOS
  • RF power (forward or reverse but not both – depends on HW implementation)
  • Fan status on or off
  • Standby status on or off

Amplifier choices

The design was initially conceived for a Pyro Jo PA which needs 24V DC bias to activate it, subsequently it was modified to provide a temperature compensated bias for LDMOS FET’s. Basically for the LDMOS FET use the temp compensated bias circuit and for the Pyro JO PA use the 24V DC device – one or the other NOT both.

See CQ-TV article and schematics for more detail.

Hardware

The design uses the same PCB in all cases but populated slightly differently for each of the three use cases above. The BoM and schematics indicate what needs to be fitted for each use case.


G4WIM PA CONTROLLER SS V2-0.png


For each use case firmware works differently and is jumper selected as mentioned above.

Note, if RF power is not being monitored then the RF power sensor input on pin 1 of J3 must be connected to ground to disable the function. Normally RF power will only be shown when on transmit and above a certain threshold.

Documentation

Bill of material

File:G4WIM PA CONTROLLER V2-0 BOM.xlsx

Schematics

Source code

File:BATC_PA_Controller_Firmware_V2.zip

The radio link uses an nRF905 + Atmel nano combined with some custom code in an ATmega 328. The Atmel nano code is based on this solution http://blog.zakkemble.net/nrf905-avrarduino-librarydriver/comment-page-1/

IMPORTANT - after building several of these links it became apparent that the timings required for the nRF905 are not the same for all modules. To fix this issue I've created a new improved version of Zak's C code for the Atmel Nano. The code for the ATmega328 has also been changed to match. Using Zak Kemble code in the Arduino environment might work - but it is better to use his C code version with my modifications as documented and provided in the above source code link.

When programming the hex files make sure the fuse /8 is unchecked and that fuse for external 8MHz xtal is selected as the clock source. If building your own code from source using Atmel Studio V7.0 set optimisation to -OS (optimise for size).

Any chips supplied by the BATC shop will have the correct code installed for both the ATmega and Nano - you cannot mix and match Arduino code with the ATmega C code.