PHASING SSB_EXCITER
Note: all files and sketches on my M0IFA site
I have fiddled about before to use a Teensy 3.2 processor to create 0/90deg audio outputs, using Hilbert filters, and then mixing these with RF 0/90deg from a Si5351 synthesiser (inspired by ZL2CTM). I got fairly good results using a Teensy 3.2 processor. But I could not improve the filters which used just 100 taps in the filters. This caused the +/-45deg phase shifts to fall off at lower frequencies, which in turn lead to unwanted opposite sideband generation at lower audio frequencies.
The solution to this I think is to increase the number of Hilbert taps, to 200-400 say. I have now mapped out a new design:
1. A Teensy 4.0 will both generate the 0/90 deg audio, but also scan the rotary encoder and drive a small OLED display - showing frequency, tuning step and sideband selection LSB/USB.
2. Use commercial mixers, a pair of ADE-1+'s and a combiner (see blog post above). This will drive an output amplifier which will be an MMIC such as the MAR-6 or ERA-1.
Here's a pretty poor hand drawn circuit I will try out - this is in no way definitive, just to give you an idea of my thinking...
USB/LSB switching is in the Teensy audio chain.
The Si5351 two outputs CLK0 & CLK1 have a 0/90 deg phase shift, programmed in software and good across the HF bands, though initially I target to test them out at 7.1MHz. These feed through a couple of pi attenuators to set the drive and impedance to the mixers (target +7dBm). The audio inputs to the mixers are via a couple of diplexers. I am looking into combiner designs for the two outputs of the mixers - see next blog post, but will try out first a single transformer with windings of 7+7/10turns.
The Teensy connections are
Teensy 4.0 and Audio board
The Teensy is very flexible with the function of the pins and great care has to be taken to use the right ones. Several are dedicated to communication with the Digital Audio interface board. The Rotary encoder is on pins 2 CLK, 3 DT, 4 SW as usual. And the OLED shares the Audio board I2C serial bus in pins 17 SDA, 18 SCL. The Teensy will be supplied by a 5V regulated supply and the Encoder and OLED run from the 3V3 output. Pin 15 is brought out by the audio board as a "vol" pin.
The first effort software uses the Arduino IDE with the Teensyduino (on
PRJC web site) add-on installed. And,
1. The Teensy Audio library, installed when you install the Arduino Teensyduino app above
2. The digital audio development web site,
here to define the architecture of the DSP processing
3. Hilbert filter design software,
here3. My OLED header, Oled.h defines the graphic library used (u8g2lib) and a range of display init & functions
4. The actual code is SSB_EXCITER. This includes the Hilbert filter taps (HT_45_200.h).
Hilbert filter taps are generated by the filter design program, and the floating point values are cut and pasted to a spreadsheet, this is output as a CSV file to comma delimit the values. These are then pasted into the sketches HT_45_200m or p. The outputs on the serial monitor of these sketches is code that is put into a single "HT_45_200.h" text file for use in the SSB_EXCITER sketch. Bit comploicated but it works.
The DSP organisation is simple, mixer1 has a gain of +/-1 to switch sidebands.
And the Audio System design Tool outputs the headers and wiring as a header you can paste into the SSB_EXCITER.ino sketch.
I will update my progress as I get to grips with the hardware build.
And progress is being made, here's the PCB on which I am building the SSB Exciter, lots of wiring and soldering to go... going to be a forest of wire, but hey ho...
Progress - decided not to mount transformer in the middle as gets in the way of wires, will find another spot for them
Close up of board, massive bus board needed! For SCL, SDA, GND, 3V3 & 5V
And it works, it tunes, it displays it selects sidebands & Si5351 outputs signals
Working board, so far
Output at 7.1MHz
And now it has been tested with audio MIC input and generates 0/90 audio outputs. (Note if you are following that new code is now on my web site
here, as the first code had wrong DSP signal paths.
When running the Teensy with the SSB_EXCITER.ino sketch and an audio input to the MIC connection it gives these audio outputs with a phase shift of 0/90 deg for LSB or USB transmission, the BW is around 100Hz to 3kHz.
DISASTER: made a huge mistake when wiring board: connected PSU 5V to 3.3V rail. Blew up everything. So project stopped for now... and may never start again... expensive to buy another Teensy...