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