1691 |
kaklik |
1 |
NEWS |
1661 |
kaklik |
2 |
==== |
1691 |
kaklik |
3 |
|
|
|
4 |
11.11.2010 |
|
|
5 |
|
|
|
6 |
Firmware was edited to work without bootloader falashing tool. |
|
|
7 |
So simply program PIC18F4550.hex in to PIC18F4550v01A module with 20MHz crystal. |
|
|
8 |
Connect it via I2C to CLKGEN01A. And you have wide tunable LO compatible with DG8SAQ USB Si570 synthesiser! |
|
|
9 |
|
|
|
10 |
|
1661 |
kaklik |
11 |
14 Apr 2009 |
|
|
12 |
|
|
|
13 |
The UBW has 1 power indicator LED, and 2 blinking LED's usually used to indicate the |
|
|
14 |
status of USB connections with the PC. |
|
|
15 |
|
|
|
16 |
Charles (and maybe some of you) finds the blinking LED's to be too bright and |
|
|
17 |
distracting. |
|
|
18 |
|
|
|
19 |
So I have implemented a toggle switch (the PRG button) function for you to turn |
|
|
20 |
the blinking on or off. |
|
|
21 |
|
|
|
22 |
Once turned on or off, the setting is stored in EEPROM, so it will continue to |
|
|
23 |
behave this way when you power off and next power on the UBW. |
|
|
24 |
|
|
|
25 |
The default setting is LED blinking ON. So when you (re)flash the firmware, the |
|
|
26 |
default is active. |
|
|
27 |
|
|
|
28 |
14 Mar 2009 |
|
|
29 |
|
|
|
30 |
I have just released the latest version of my UBW Emulator firmware. It now |
|
|
31 |
has (almost) all the functionalities of Fred (PE0FKO)'s v15.10 firmware for |
|
|
32 |
ATTINY45 and ATTINY85. All the functions are accessible with Winrad with Fred's |
|
|
33 |
ExtIO_Si570_v0.8.dll, including the wonderful option of setting of the |
|
|
34 |
filter crossover points from the software. The crossover points are stored |
|
|
35 |
in the UBW EEPROM so it will persist until changed again. Another new feature |
|
|
36 |
is the setting of floating point offset and multiplier in the firmware. This |
|
|
37 |
complements the setting of offset and (usually) integer multiplier in the PC |
|
|
38 |
SDR software. |
|
|
39 |
|
|
|
40 |
Winrad/ExtIO can be used to calibrate the UBW/Si570 (2 methods are available - |
|
|
41 |
calibrating the default freq, or against a known station freq, eg. WWV). |
|
|
42 |
Once calibrated, there is no need to calibrate other software - both set |
|
|
43 |
freq by value and set freq by register will give the correct calibrated |
|
|
44 |
freq now. In PowerSDR, leave the fxtal freq at the default 114.285 Mhz. |
|
|
45 |
|
|
|
46 |
The new UBW Emulator works perfectly with Rocky v3.6, PowerSDR-sr40, |
|
|
47 |
and PowerSDR-IQ. (set the Fxtal freq in the setup tab to the default 114.285 Mhz). |
|
|
48 |
|
|
|
49 |
With Fred's v15.10 firmware in the ATTINY, users can use the ATTINY based USB |
|
|
50 |
interfaces to do auto band switching of the mobo for Rx. To be able to do both Rx |
|
|
51 |
and Tx BPF switching, Rx/Tx switching (PTT), and external LPF switching, from a |
|
|
52 |
single USB connection, there are only 3 uC solutions that I know of: |
|
|
53 |
|
|
|
54 |
1. The UBW (or UBW32) with this UBW firmware |
|
|
55 |
2. Dave Brainerd's HSUSB, with firmware by Christos |
|
|
56 |
3. Arduino board (or clone), with PE0FKO firmware modified by Loftur TF3LJ. |
|
|
57 |
See Message #31623 |
|
|
58 |
|
|
|
59 |
|
|
|
60 |
UBW EMULATOR |
|
|
61 |
============ |
|
|
62 |
This is the UBW emulator firmware for emulating the AVR based |
|
|
63 |
DG8SAQ USB Si570 synthesiser, and Tony's USB-i2C Interface. |
|
|
64 |
It emulates most of the functions of the orginal DG8SAQ firmware. |
|
|
65 |
In addition, it emulates the new functions of the PE0FKO firmware (v15.10) |
|
|
66 |
by Fred, with smooth tune, calibration, setting of Auto BPF crossover |
|
|
67 |
points, setting of startup freq etc. After calibration of the UBW, |
|
|
68 |
both set freq by value (used by Rocky) and set freq by register (used by |
|
|
69 |
PowerSDR-sr40, with the fxtal freq set to the default 114.285 Mhz) will |
|
|
70 |
give the correct calibrated freq output from the Si570. No further |
|
|
71 |
calibration with the PC software is required. |
|
|
72 |
|
|
|
73 |
I would like to thank Joe Hopster who wrote the original UBW Si570 |
|
|
74 |
code, Tom DG8SAQ for the AVR synthesiser code, Mike Collins who has |
|
|
75 |
been invaluable in helping with the debugging and testing, John Fisher |
|
|
76 |
for the code example on Si570 slide, Edson for advice on BPF selection coding, |
|
|
77 |
bug fixing and testing, Fred for help to emulate his v15.7 firmware, |
|
|
78 |
and others who have contributed so much to Softrock and Si570. |
|
|
79 |
|
|
|
80 |
The emulator firmware HEX file is loaded in the UBW (either PIC |
|
|
81 |
18F2455, 18F2550 or 18F2553 version) by the Microchip USB bootloader. |
|
|
82 |
See UBW website for more details about the bootloader. |
|
|
83 |
|
|
|
84 |
Before starting the firmware (via the reset button, or on power up by |
|
|
85 |
plugging in the USB), the UBW should be connected via i2c interface to |
|
|
86 |
an Si570. Power up the Si570 before the UBW. |
|
|
87 |
|
|
|
88 |
There are several ways for connecting the UBW with the Si570. |
|
|
89 |
|
|
|
90 |
(1) Connection is with 4 wires, +5V, Gnd, SCL, SDA, to an i2c |
|
|
91 |
level converter, and then to Si570 with 4 wires, +3V3, Gnd, SCL, and |
|
|
92 |
SDA. If you use the WB6DHW Si570 board, it has the level converter built-in. So |
|
|
93 |
You can just connect the 4 wires to the header pins on the WB6DHW board. Note |
|
|
94 |
that the order of the 4 wires on the UBW is: GND, VCC, RB0, RB1. The order |
|
|
95 |
of the 4 header pins on WB6DHW board is: +5V, GND, SDA, SCL. |
|
|
96 |
|
|
|
97 |
(2) If you are not using an IC such as GTL2002 for +5V to +3V3 conversion, you |
|
|
98 |
can use discretes with the Philips (see AN97055 from Philips) |
|
|
99 |
i2c level converter circuit using 2 BS170's. |
|
|
100 |
|
|
|
101 |
(3) The UBW Emulator firmware sets up the SCL and SDA pins as open collector outputs. |
|
|
102 |
So you can just connect 3 wires from the UBW to the +3v3 Si570 on the Softrock: |
|
|
103 |
GND, SCL and SDA. The SCL and SDA lines will have pullup resistors to +3V3 on the |
|
|
104 |
Softrock pcb. This has been tested to work. HOwever, there is the risk that |
|
|
105 |
if the UBW firmware malfunctions for some reason (eg loading the wrong firmware instead |
|
|
106 |
of the Emulator firmware), the RB0 and RB1 (SDA and SCL) pins may go to output high of |
|
|
107 |
+5V, which may damage the Si570 or other +3V3 chips. |
|
|
108 |
|
|
|
109 |
|
|
|
110 |
The PC will detect the new USB device as a DG8SAQ-I2C device and as |
|
|
111 |
far as the PC is concerned, the UBW behaves almost exactly like the |
|
|
112 |
USB Si570 synthesiser (which is based on the AVR uController). When |
|
|
113 |
prompted by the PC to install the driver for this device, you install |
|
|
114 |
the AVR USB driver (from the USB Si570 synthesiser software download). |
|
|
115 |
You will also need the libusb0.dll and libusb0.sys files installed |
|
|
116 |
for the PC software to work (available also from the USB Si570 synthesiser |
|
|
117 |
software package). |
|
|
118 |
|
|
|
119 |
The following PC software programs have been tested with the UBW emulation so far: |
|
|
120 |
|
|
|
121 |
1. SI570_USB_Test.exe from the USB Si570 synthesiser software package |
|
|
122 |
2. USB_Synth.exe from the USB Si570 synthesiser software package |
|
|
123 |
2. Rocky v3.6 |
|
|
124 |
3. Guido's PowerSDR v1.9.0 sr40 |
|
|
125 |
4. WinRad with Fred's ExtIO_Si570_v0.8.dll |
|
|
126 |
5. Christos's PowerSDR-IQ v1.12.20 |
|
|
127 |
|
|
|
128 |
SI570_USB_Test.exe can be used test the USB communication and UBW |
|
|
129 |
functions,and for calibrating the UBW-Si570 ie. |
|
|
130 |
|
|
|
131 |
(1) Click "Read Si570 Register" - the default Si570 startup frequency |
|
|
132 |
and register values will be displayed |
|
|
133 |
|
|
|
134 |
(2) If you know the actual startup frequency of your Si570 (which is |
|
|
135 |
close to but generally not equal to the nominal startup freq of 56.32 |
|
|
136 |
Mhz), you can do the calibration now by inputting the actual freq in the |
|
|
137 |
text box to the left of the "cal on startup freq", and then hit "cal |
|
|
138 |
on startup freq". The UBW-Si570 is now calibrated for "set freq by |
|
|
139 |
value". The calibration is stored in the EEPROM of the UBW and you do |
|
|
140 |
not need to re-calibrate again unless you reload the UBW firmware from |
|
|
141 |
the .hex file. |
|
|
142 |
|
|
|
143 |
(3) Now you can input any freq desired in the text box and hit either |
|
|
144 |
"set freq by value" or "set freq by register". The si570 should now |
|
|
145 |
output the freq set by you. It should be accurate as set, and can be |
|
|
146 |
confirmed with an external freq counter. |
|
|
147 |
|
|
|
148 |
|
|
|
149 |
Many of the functions of the SI570_USB_Test.exe have been implemented, |
|
|
150 |
including Paddle input, RXTX level, etc. |
|
|
151 |
|
|
|
152 |
Both the "old" and "new" (with new icon) versions of USB_Synth.exe work in setting |
|
|
153 |
the Si570 freq. The old version uses set freq by value, and the new version |
|
|
154 |
(with enhancements) uses set freq by register. |
|
|
155 |
|
|
|
156 |
If the SI570_USB_Test run is OK, you can fire up Rocky v3.6 to use the |
|
|
157 |
Si570-USB functionality. Rocky uses the "set freq by value" method. You can use |
|
|
158 |
the Rocky calibration function with the UBW, but it should not be necessary and should |
|
|
159 |
be avoided. Use the calibration method in WinRad (see below under Calibration) or |
|
|
160 |
the SI570_USB_Test.exe method (see above). |
|
|
161 |
|
|
|
162 |
PowerSDR works by "set Freq by Register" method. You can change freq by the band buttons |
|
|
163 |
or sliding the freq up and down with the mouse. Leave the Fxtal |
|
|
164 |
freq in PowerSDR "Setup" to the default 114.285 Mhz. There is no need for |
|
|
165 |
further calibration. |
|
|
166 |
|
|
|
167 |
To use Winrad, you have to download the ExtIO_Si570.dll by Fred PE0FKO. Put the v0.8 |
|
|
168 |
dll in the same directory as Winrad (usually installed in "c:\Program Files\Winrad" directory). |
|
|
169 |
|
|
|
170 |
|
|
|
171 |
Calibration |
|
|
172 |
=========== |
|
|
173 |
You can use Winrad (with ExtIO_Si570_v0.8.dll by Fred) to do the calibration. This is the |
|
|
174 |
easier (and preferred method). There are two calibration methods in ExtIO_Si570.dll. One is |
|
|
175 |
calibrating to the factory default freq of the Si570 (a value close to 56.32 Mhz). The |
|
|
176 |
other method is to tune Winrad to a known frequency station, eg. the WWV stations broadcasting |
|
|
177 |
at 2.5 Mhz, 5.0 Mhz, 10.0 Mhz, 15.0 Mhz etc., and then put in the actual frequencies. For |
|
|
178 |
example, you may find a good signal of WWV at 10.023 Mhz. So the "tuned" freq is 10.023 Mhz, |
|
|
179 |
but the "real" freq is 10.000 Mhz. So you enter this real freq in the box and the hit "calibrate" |
|
|
180 |
botton. |
|
|
181 |
|
|
|
182 |
Si570 calibration can also be done with SI570_USB_Test.exe software, |
|
|
183 |
to calibrate the startup freq accurately once after loading (or reloading) |
|
|
184 |
of the firmware .hex file. The calibration data are then stored in the UBW EEPROM. |
|
|
185 |
|
|
|
186 |
|
|
|
187 |
If UBW is not connected to the Si570 |
|
|
188 |
==================================== |
|
|
189 |
I have eliminated the readstartupconfiguration() step. So now the UBW will NOT hang |
|
|
190 |
when it is not connected to the i2c bus on startup. On connection to USB it will be |
|
|
191 |
recognized by the PC. |
|
|
192 |
|
|
|
193 |
Of course, if you try to communicate with the Si570 it will hang and disconnect from |
|
|
194 |
the USB if you don't have the Si570 connected at this time. |
|
|
195 |
|
|
|
196 |
Restoring EEPROM to factory default condition |
|
|
197 |
============================================= |
|
|
198 |
|
|
|
199 |
After the UBW EEPROM is corrupted (eg. by mis-calibration), you can restore the factory default |
|
|
200 |
by reloading the .hex file. (Thanks to Mike for the suggestion.). Alternatively, you can use |
|
|
201 |
SI570_USB_Test.exe to sent 41 (hex) in the "request" box, and ff (hex) in the "Value" box, |
|
|
202 |
then click "USB ctrl msg Data to Host". This then clears the EEPROM in the UBW to the default |
|
|
203 |
condition and when you reset the UBW (hit the reset botton on the uBW, or by powering off |
|
|
204 |
and then on again). |
|
|
205 |
|
|
|
206 |
Using Winrad, there is a "reset" botton at the "calibrate" tab which will do the same thing. |
|
|
207 |
|
|
|
208 |
|
|
|
209 |
Download |
|
|
210 |
======== |
|
|
211 |
|
|
|
212 |
The UBW emulation firmware and the source files can be found in |
|
|
213 |
Files->9V1AL->UBW emulation. |
|
|
214 |
|
|
|
215 |
|
|
|
216 |
|
|
|
217 |
IO Port Pin assignment |
|
|
218 |
====================== |
|
|
219 |
|
|
|
220 |
|
|
|
221 |
Pin assignments for the UBW are as follows: |
|
|
222 |
|
|
|
223 |
Pin Name Input/Output Active Remarks |
|
|
224 |
|
|
|
225 |
RA0 BPF_SO O H BPF select S0 |
|
|
226 |
RA1 BPF_S1 O H BPF select S1 |
|
|
227 |
S1,S0 selects 1 of 4 BPF's for Softrock |
|
|
228 |
|
|
|
229 |
RA2 RXTX O H PTT, H = Transmit |
|
|
230 |
|
|
|
231 |
RB0 SDA Open Collector For i2c connection to Si570 |
|
|
232 |
RB1 SCL Open Collector may need conversion to +3v3 |
|
|
233 |
in case of firmware failure |
|
|
234 |
(eg wrong firmware loaded) |
|
|
235 |
then RB0 and RB1 may be set |
|
|
236 |
to logic high output of +5V |
|
|
237 |
|
|
|
238 |
RB6 PADDLE_DIT I L Paddle DIT Input, active low |
|
|
239 |
RB7 PADDLE_DAH I L Paddle DAH Input, active low |
|
|
240 |
As internal pullup is enabled, |
|
|
241 |
there is no need to add external |
|
|
242 |
pullup resistors. Just ground the pin |
|
|
243 |
to activate. |
|
|
244 |
|
|
|
245 |
RA3-5, RB2-5 LPF_x O H LPF select pins |
|
|
246 |
This has to be customised for |
|
|
247 |
the LPF bank you use. |
|
|
248 |
Email me (lee188@singnet.com.sg) |
|
|
249 |
and I will sent you a customised hex file |
|
|
250 |
|
|
|
251 |
|
|
|
252 |
Connections to SR v6.3 and Mobo v3.6 |
|
|
253 |
===================================== |
|
|
254 |
|
|
|
255 |
|
|
|
256 |
UBW SRv6.3 Mobo v3.6 External Paddle |
|
|
257 |
|
|
|
258 |
RA0 - P7 Pin 1 - |
|
|
259 |
RA1 - P7 Pin 2 - |
|
|
260 |
RA2 PTT_I K6 Pin 1 - |
|
|
261 |
RB0 SDA - - |
|
|
262 |
RB1 SCL - - |
|
|
263 |
GND GND P10 Pin 2 Paddle Common |
|
|
264 |
RB6 - - Paddle dot (dit) |
|
|
265 |
RB7 - - Paddle dash (dah) |
|
|
266 |
- +5V P10 Pin 1 - |
|
|
267 |
|
|
|
268 |
|