content/eip545b_3.rst

Fri, 06 Dec 2019 00:59:03 +0100

author
David Douard <david.douard@sdfa3.org>
date
Fri, 06 Dec 2019 00:59:03 +0100
changeset 125
669eb33e410b
parent 115
6b6e13653348
child 128
aba381b2bac9
permissions
-rw-r--r--

Add a log post on opentallyligt

76
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
1 ========================================
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
2 EIP 545B RF Frequency Counter - Part 3
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
3 ========================================
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
4
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
5 :author: David Douard
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
6 :Category: Electronics
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
7 :Tags: test equipment, RF, EIP, 545B, counter
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
8 :series: EIP545B Frequency Counter
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
9 :series_index: 3
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
10
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
11
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
12 Default settings
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
13 ================
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
14
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
15 One of the annoying thing with this 'SPECIAL' edition of the firmware are the
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
16 default settings:
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
17
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
18 - Frequency Offset -160MHz
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
19 - Resolution 5 digits
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
20
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
21 One of my goals while disassembling the formware was to 'fix' these defaults
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
22 settings. I was wondering wether they where located in an undocumented part of
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
23 the EEPROM or directly as hardcoded values in the firmware itself.
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
24
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
25 I have partially understood the setup routine, the one called from the RST
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
26 vector; the interrupt vector is located at addresses 0xFFF2-0xFFFF, with the
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
27 RST routine address being at 0xFFFE. In my case, the RST handler is located at
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
28 0x5F19:
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
29
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
30 ::
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
31
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
32 FFF2 svec_SWI3 FDB hdlr_SWI3 ;08 20
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
33 FFF4 svec_SWI2 FDB hdlr_SWI2 ;9E 90
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
34 FFF6 svec_FIRQ FDB hdlr_FIRQ ;48 45
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
35 FFF8 svec_IRQ FDB hdlr_IRQ ;70 F1
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
36 FFFA svec_SWI FDB hdlr_NMI ;00 00
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
37 FFFC svec_NMI FDB hdlr_NMI ;00 00
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
38 FFFE svec_RST FDB hdlr_RST ;5F 19
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
39
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
40
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
41 But completely disassembling the whole RST routine is slow and difficult. At
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
42 some point, I found that a smarter approach would be to compare the content of
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
43 the RAM after a fresh start and after having modified some configuration
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
44 values, like the Frequency Offset.
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
45
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
46 The RAM addresses where the offset values are documented in the Service Manual,
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
47 unfortunately, each model as its how address map, and no available Service
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
48 Manual covers the EIP 545B. So I first needed to find where the frequency
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
49 offset is stored in RAM so I can then look where this area is modified in the
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
50 firmware.
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
51
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
52 Thanks to the TEST10 allowing to read any address in the address space (be it
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
53 RAM, EEPROM, EPROM or even I/O registers), I wrote a simple Python script to
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
54 read the whole content of the RAM via GPIB.
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
55
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
56 It's very slow, since I did not find a way using GPIB commands to read 2 memory
77
9ba7fe3d0a22 [eip545B] part 3: few improvements about digits resolution
David Douard <david.douard@logilab.fr>
parents: 76
diff changeset
57 addresses without quitting the TEST10 mode between two reads. And I had to add
76
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
58 several sleep() since the EIP is pretty slow to respond to GPIB commands. A
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
59 complete dump of the 2ko RAM took somethin like 15 or 20 minutes.
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
60
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
61 I did not even wrote a script, in fact, just throw some code in an IPython
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
62 session. However, the crude code looks like:
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
63
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
64
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
65 .. code-block:: python
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
66
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
67 import serial
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
68 cnx = serial('/dev/ttyUSB0', baudrate='115200')
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
69 cnx.write('++addr 17\r\n')
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
70
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
71 def rd(x):
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
72 cnx.write('TA10\r\n')
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
73 time.sleep(0.1)
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
74 cnx.write('%04X\r\n' % x)
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
75 time.sleep(0.1)
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
76 cnx.write('++read\r\n')
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
77 time.sleep(0.05)
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
78 r = cnx.read_all()
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
79 cnx.write('TP\r\n')
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
80 return r
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
81
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
82 def getmem(n=0x800):
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
83 out = []
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
84 for x in range(n):
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
85 v = rd(x).strip()
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
86 v = v.split('-')
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
87 out.append(v)
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
88 time.sleep(0.5)
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
89 return out
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
90
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
91 ramcontent = getmem()
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
92 # [...] write ramcontent in a file
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
93
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
94
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
95 This allowed me to quickly find where the Frequency Offset is stored:
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
96 0x0276-0x027C (using the format described in the service manual).
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
97
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
98 For the number of digits, I'm not sure yet, but it looks to be located at
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
99 0x0045 or 0x0046.
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
100
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
101 So I could then look for this Freq. Offset address (OxO276) in the firmware:
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
102 It's used directly only a couple of times in the code, one of them lloking
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
103 like:
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
104
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
105 ::
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
106
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
107 6118 LDX #M0276 ;8E 02 76
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
108 611B LDA #$01 ;86 01
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
109 611D STA ,X ;A7 84
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
110 611F STA $02,X ;A7 02
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
111 6121 LDA #$60 ;86 60
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
112 6123 STA $03,X ;A7 03
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
113
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
114
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
115 in which we can see that the value 0x01 (from register A) is stored at address
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
116 0x0276 and 0x278 (thanks to the STA $02,X instruction, with X being 0x0276 when
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
117 this former instruction is executed, it stores the content of A (0x01) at
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
118 addres 0x0276+2=0x278), and the value 0x60 is stored at 0x0279 (STA $03,X).
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
119
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
120 It worth noting that this snip of code is executed shortly after intializing the
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
121 RAM content to zero.
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
122
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
123 So the result of this piece of code is that the content of the RAM at this
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
124 0x0276 address is:
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
125
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
126 ..
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
127
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
128 01 00 01 60 00 00 00
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
129
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
130 ie., conververted in frequency: -160MHz, the initial value I want get rid of!.
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
131
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
132 So I just have to replace these code by NOP instructions and it should be fine
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
133 for the Frequency Offset, which I haven't done yet (I was waiting for a cheap
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
134 EPROM eraser from eb, which just arrived).
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
135
77
9ba7fe3d0a22 [eip545B] part 3: few improvements about digits resolution
David Douard <david.douard@logilab.fr>
parents: 76
diff changeset
136 Concerning the resolution, some clue can be found just after the previous
9ba7fe3d0a22 [eip545B] part 3: few improvements about digits resolution
David Douard <david.douard@logilab.fr>
parents: 76
diff changeset
137 routine::
9ba7fe3d0a22 [eip545B] part 3: few improvements about digits resolution
David Douard <david.douard@logilab.fr>
parents: 76
diff changeset
138
9ba7fe3d0a22 [eip545B] part 3: few improvements about digits resolution
David Douard <david.douard@logilab.fr>
parents: 76
diff changeset
139 6125 LDX #M005D ;8E 00 5D
9ba7fe3d0a22 [eip545B] part 3: few improvements about digits resolution
David Douard <david.douard@logilab.fr>
parents: 76
diff changeset
140 6128 LDA #$0D ;86 0D
9ba7fe3d0a22 [eip545B] part 3: few improvements about digits resolution
David Douard <david.douard@logilab.fr>
parents: 76
diff changeset
141 612A STA $01,X ;A7 01
9ba7fe3d0a22 [eip545B] part 3: few improvements about digits resolution
David Douard <david.douard@logilab.fr>
parents: 76
diff changeset
142 612C LDA #$05 ;86 05
9ba7fe3d0a22 [eip545B] part 3: few improvements about digits resolution
David Douard <david.douard@logilab.fr>
parents: 76
diff changeset
143 612E STA >M0045 ;B7 00 45
9ba7fe3d0a22 [eip545B] part 3: few improvements about digits resolution
David Douard <david.douard@logilab.fr>
parents: 76
diff changeset
144
9ba7fe3d0a22 [eip545B] part 3: few improvements about digits resolution
David Douard <david.douard@logilab.fr>
parents: 76
diff changeset
145 In which the value 0x0D is written at RAM address 0x005E (0x005D + 0x01 from
9ba7fe3d0a22 [eip545B] part 3: few improvements about digits resolution
David Douard <david.douard@logilab.fr>
parents: 76
diff changeset
146 the opcode ``STA $01,X``), and the value 0x05 is written at RAM address 0x0045,
9ba7fe3d0a22 [eip545B] part 3: few improvements about digits resolution
David Douard <david.douard@logilab.fr>
parents: 76
diff changeset
147 which we identified previously as a candidate for the digits resolution
9ba7fe3d0a22 [eip545B] part 3: few improvements about digits resolution
David Douard <david.douard@logilab.fr>
parents: 76
diff changeset
148 setting; pretty consistant with the 0x05 value written there. Not sure what the
9ba7fe3d0a22 [eip545B] part 3: few improvements about digits resolution
David Douard <david.douard@logilab.fr>
parents: 76
diff changeset
149 0x0D is used for at address 0x005E.
76
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
150
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
151
82
4d8bca9ff106 [eip545b] few typos
David Douard <david.douard@logilab.fr>
parents: 77
diff changeset
152 .. _sensitivity-problem:
4d8bca9ff106 [eip545b] few typos
David Douard <david.douard@logilab.fr>
parents: 77
diff changeset
153
76
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
154 The sensitivity problem
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
155 =======================
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
156
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
157 I have also investigated a bit the sensitivity problem I have on band 3: I can
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
158 hardly detect signals lower than -10dBm at 1 or 2GHz, where it should be able
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
159 to catch a -30dBm.
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
160
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
161 I've tried to recalibrate (on that frequency range) the YIG filter, it did not
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
162 help.
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
163
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
164 Following the advise of HighPrecision on the eevblog forum, I did give a check
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
165 at the SMD capacitors in the IF amplifier/detector detector part of A201. I
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
166 still need to investigate more, but I haven't found an obvious culprit in
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
167 there.
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
168
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
169 But since I had disassembled the A203 unit, I also gave a closer look at the
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
170 YIG filter itself, taking pictures with my small USB microscope.
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
171
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
172 On one side is the ceramic support for connections from the output YIG coupling
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
173 loop:
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
174
115
6b6e13653348 content: use {static} instead of {filename} in image paths
David Douard <david.douard@sdfa3.org>
parents: 82
diff changeset
175 .. image:: {static}images/eip545b/yig_top.jpg
76
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
176 :alt: Top view of the YIG filter
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
177
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
178 On the bottom side, we can see the YIG spheres and the coupling loops:
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
179
115
6b6e13653348 content: use {static} instead of {filename} in image paths
David Douard <david.douard@sdfa3.org>
parents: 82
diff changeset
180 .. image:: {static}images/eip545b/yig_bottom.jpg
76
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
181 :alt: Top view of the YIG filter
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
182
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
183 So this filter consists in a 2 stage bandpass filter (with input and output
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
184 couplig loops at 90° each other).
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
185
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
186 Having a closer look, the problem appears:
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
187
115
6b6e13653348 content: use {static} instead of {filename} in image paths
David Douard <david.douard@sdfa3.org>
parents: 82
diff changeset
188 .. image:: {static}images/eip545b/yig_broken.jpg
76
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
189 :alt: Broken stage 1 of the YIG filter
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
190
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
191 As can been seen there, the YIG sphere took off the holding rod. Tha cage made
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
192 of the 2 coupling loops is small enough the sphere stayed there, but it is not
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
193 at the center of the 2 loops any more, nor it is correctly orientated. No
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
194 surprise the input signal is so low (in fact the suprise is that is still works
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
195 somehow).
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
196
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
197 I tried to move the sphere a bit, using a sharp (as sharp as possible) wooden
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
198 stick under the USB microscope, but it is really hard to orientate the sphere
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
199 (which diameter is around 0.1 or 0.2mm).
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
200
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
201 I'll try again, just in case, since I can see the mark of the rod on the
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
202 sphere, I think I may be able to roughly reorientate the sphere, but it is
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
203 really hard to do without micrometric actuators.
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
204
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
205 Meanwhile, I've bought on eb a cheap (20$) A203 assembly. It's not exactly the
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
206 same model (it's probably one for the 26.5GHz version, according to
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
207 HighPrecision), we'll see if it works. I hope it's a 127MHz version, otherwise
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
208 I'll have to replace the YIG filter (A201) on my A203 unit with this one.
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
209
77
9ba7fe3d0a22 [eip545B] part 3: few improvements about digits resolution
David Douard <david.douard@logilab.fr>
parents: 76
diff changeset
210 By the way, for thoses interested, I found these 2 simple documents interesting
9ba7fe3d0a22 [eip545B] part 3: few improvements about digits resolution
David Douard <david.douard@logilab.fr>
parents: 76
diff changeset
211 to begin to understand how a YIG oscillator and a YIG filter works:
76
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
212
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
213 - `YIG TUNED OSCILLATORS`_
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
214 - `YIG TUNED FILTERS`_
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
215
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
216 .. _`YIG TUNED FILTERS`: http://www.microlambdawireless.com/uploads/files/pdfs/ytfdefinitions2.pdf
aa1c62f79518 [eip545b] part 3
David Douard <david.douard@logilab.fr>
parents:
diff changeset
217 .. _`YIG TUNED OSCILLATORS`: http://www.microlambdawireless.com/uploads/files/pdfs/ytodefinitions2.pdf

mercurial